Commit ba3d4e4e6762fd6b23339c3bcfd921edd33bc5a3
1 parent
5eb61220
订单促销的优化
Showing
11 changed files
with
462 additions
and
41 deletions
packageC/pages/luckyGo/luckyGo_cart_ct/luckyGo_cart_ct.js
... | ... | @@ -80,6 +80,13 @@ Page({ |
80 | 80 | bconfig: null, |
81 | 81 | showFold:true, |
82 | 82 | template_id:[], |
83 | + | |
84 | + //-- 订单促销判断积累 ---2024-2-20 | |
85 | + order_prom_map_ck: {}, | |
86 | + //能不能使用订单促销 | |
87 | + can_use_ord_prom:{}, | |
88 | + //存储订单促销的取价,按照门店进行索引 | |
89 | + show_ord_prom:{}, | |
83 | 90 | }, |
84 | 91 | |
85 | 92 | |
... | ... | @@ -513,6 +520,7 @@ Page({ |
513 | 520 | } |
514 | 521 | |
515 | 522 | |
523 | + t.data.data.shop_price_y = t.data.data.shop_price; | |
516 | 524 | t.data.data.shop_price = gg.goods_price; |
517 | 525 | //--如果是普通购买的时候-- |
518 | 526 | if (gg.is_normal == 1) { |
... | ... | @@ -569,7 +577,10 @@ Page({ |
569 | 577 | } |
570 | 578 | |
571 | 579 | |
580 | + t.data.data.goods_price=th.data.param.goods_price; | |
572 | 581 | |
582 | + //用深拷贝把商品缓存起来,方便后面使用 | |
583 | + th.data.old_bn_goods=ut.deep_cp(t.data.data); | |
573 | 584 | |
574 | 585 | th.setData({ |
575 | 586 | bn_goods: t.data.data, |
... | ... | @@ -642,6 +653,9 @@ Page({ |
642 | 653 | |
643 | 654 | } |
644 | 655 | |
656 | + t.data.data.goods_price=th.data.param.goods_price; | |
657 | + //用深拷贝把商品缓存起来,方便后面使用 | |
658 | + th.data.old_bn_goods=ut.deep_cp(t.data.data); | |
645 | 659 | |
646 | 660 | th.setData({ |
647 | 661 | bn_goods: t.data.data, |
... | ... | @@ -651,7 +665,6 @@ Page({ |
651 | 665 | bn_exp_type: et |
652 | 666 | }); |
653 | 667 | |
654 | - | |
655 | 668 | //计算价格 |
656 | 669 | th.calculatePrice2(); |
657 | 670 | } |
... | ... | @@ -842,7 +855,9 @@ Page({ |
842 | 855 | //-----------计算商品总价-------------- |
843 | 856 | //var allpice = th.data.param.goods_price; |
844 | 857 | var allpice = (th.data.act.group_price/100).toFixed(2); |
845 | - | |
858 | + if(th.data.can_use_ord_prom[th.data.bn_pick]){ | |
859 | + allpice=th.data.param.goods_price*th.data.bn_goods.buynum; | |
860 | + } | |
846 | 861 | |
847 | 862 | allpice = parseFloat(allpice).toFixed(2); |
848 | 863 | var txt = "formData.all_price"; |
... | ... | @@ -868,14 +883,18 @@ Page({ |
868 | 883 | var ord_prom=null; |
869 | 884 | var o_condition=allpice; |
870 | 885 | if(th.data.act.is_order_yh){ |
886 | + // await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { | |
887 | + // data: { store_id: os.stoid, orderAmount: o_condition, user_id: getApp().globalData.user_id } | |
888 | + // }).then(res => { | |
889 | + // if (res.data.code == 0) { | |
890 | + // ord_prom = res.data.data; | |
891 | + // } | |
892 | + // }) | |
893 | + | |
894 | + th.set_by_now_ord_prom(th.data.bn_goods); | |
895 | + th.data.order_prom_map_ck[th.data.bn_pick].goods_price_all=o_condition; | |
896 | + ord_prom=await th.get_cur_ord_prom(th.data.bn_pick); | |
871 | 897 | |
872 | - await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { | |
873 | - data: { store_id: os.stoid, orderAmount: o_condition, user_id: getApp().globalData.user_id } | |
874 | - }).then(res => { | |
875 | - if (res.data.code == 0) { | |
876 | - ord_prom = res.data.data; | |
877 | - } | |
878 | - }) | |
879 | 898 | } |
880 | 899 | |
881 | 900 | |
... | ... | @@ -964,7 +983,7 @@ Page({ |
964 | 983 | title: "物流配置未启用物流公司", icon: 'none', duration: 2000 |
965 | 984 | }) |
966 | 985 | //th.setData({ show_submit:0, }); |
967 | - th.setData({show_submit:1, submit: 0,same_ok:0 }) | |
986 | + th.setData({show_submit:1, submit: 0,same_ok:0,sub:0 }) | |
968 | 987 | return false; |
969 | 988 | } |
970 | 989 | |
... | ... | @@ -996,7 +1015,7 @@ Page({ |
996 | 1015 | wx.showToast({ |
997 | 1016 | title: "计算物流错误", icon: 'none', duration: 2000 |
998 | 1017 | }) |
999 | - th.setData({show_submit:1, submit: 0,same_ok:0 }) | |
1018 | + th.setData({show_submit:1, submit: 0,same_ok:0,sub:0 }) | |
1000 | 1019 | return false; |
1001 | 1020 | } |
1002 | 1021 | |
... | ... | @@ -1289,7 +1308,7 @@ Page({ |
1289 | 1308 | // 提交订单前弹出确认对话框 |
1290 | 1309 | submitConfirm(e) { |
1291 | 1310 | // is_show为0不显示温馨提示,为1显示温馨提示 |
1292 | - if (this.data.param.is_show == 1) { | |
1311 | + if (this.data.param.is_show == 1 && !this.data.can_use_ord_prom[this.data.bn_pick]) { | |
1293 | 1312 | wx.showModal({ |
1294 | 1313 | title: '温馨提示', |
1295 | 1314 | content: this.data.param.alert, |
... | ... | @@ -1451,6 +1470,18 @@ Page({ |
1451 | 1470 | 'prom_id': th.data.param.group_id, //促销活动id |
1452 | 1471 | }; |
1453 | 1472 | |
1473 | + | |
1474 | + if(th.data.bn_goods.discount_field){ | |
1475 | + goods.discount_field=th.data.bn_goods.discount_field; | |
1476 | + } | |
1477 | + | |
1478 | + //如果有参与非实收的订单促销,那么就相当于是普通购买 | |
1479 | + if(th.data.can_use_ord_prom[th.data.bn_pick]){ | |
1480 | + goods.is_integral_normal=1; | |
1481 | + goods.prom_type=0; | |
1482 | + goods.prom_id=0; | |
1483 | + } | |
1484 | + | |
1454 | 1485 | if (getApp().globalData.skinface_id) { |
1455 | 1486 | goods.skinface_id = getApp().globalData.skinface_id; |
1456 | 1487 | } |
... | ... | @@ -2085,9 +2116,146 @@ Page({ |
2085 | 2116 | th.calculatePrice2(); |
2086 | 2117 | }, |
2087 | 2118 | |
2119 | + //-- 获取订单促销的判断结构 -- | |
2120 | + set_by_now_ord_prom(item){ | |
2121 | + let pickid=this.data.bn_pick; | |
2122 | + let order_prom_map_ck= this.data.order_prom_map_ck; | |
2123 | + order_prom_map_ck[pickid]={ | |
2124 | + shop_price_all:0, //手店价的累计 | |
2125 | + market_price_all:0, //市场价的累计 | |
2126 | + goods_price_all:0, //实收价的累计 | |
2127 | + no_ord_price:0, //要累计上不参与订单促销的金额 | |
2128 | + goodsList:[], | |
2129 | + } | |
2130 | + | |
2131 | + let pk_ord_map=order_prom_map_ck[pickid]; | |
2132 | + pk_ord_map.shop_price_all += item.shop_price_y * item.buynum; | |
2133 | + pk_ord_map.market_price_all += item.goods_market_price * item.buynum; | |
2134 | + | |
2135 | + }, | |
2136 | + | |
2137 | + //获取当前进行中订单促销,同时带入相应的金额判断订单促销是不是运行,同时订单促销的条件不是实收价判断的话,默认的时候,订单促销是不参与运算的 | |
2138 | + async get_cur_ord_prom(pickid) { | |
2139 | + let ord_prom = null; | |
2140 | + let order_prom_map_ck = this.data.order_prom_map_ck[pickid]; | |
2141 | + if(!order_prom_map_ck) return null; | |
2142 | + | |
2143 | + //获取当前进行中的优惠促销 | |
2144 | + await getApp().request.promiseGet("/api/weshop/promorder/getPromOrder", { | |
2145 | + data: { | |
2146 | + store_id: os.stoid, | |
2147 | + orderAmount: -1, //-1为不判断金额条件 | |
2148 | + user_id: getApp().globalData.user_id | |
2149 | + } | |
2150 | + }).then(res => { | |
2151 | + if (res.data.code == 0) { | |
2152 | + ord_prom = res.data.data; | |
2153 | + } | |
2154 | + }) | |
2155 | + | |
2156 | + if (!ord_prom) return null; | |
2157 | + //用于计算订单促销的金额 | |
2158 | + let calculate_price=0; | |
2159 | + | |
2160 | + let txt1='show_ord_prom['+pickid+']'; | |
2161 | + //-- 此时判断活动的金额满足与否 -- | |
2162 | + switch (ord_prom.discount_field) { | |
2163 | + //实收价的时候 | |
2164 | + case 0: | |
2165 | + //要先还原 | |
2166 | + this.setData({ | |
2167 | + [txt1]: 0 | |
2168 | + }); | |
2169 | + | |
2170 | + if (ord_prom.money > order_prom_map_ck.goods_price_all){ | |
2171 | + return null; | |
2172 | + } | |
2173 | + break; | |
2174 | + //手店价的时候 | |
2175 | + case 1: | |
2176 | + if (ord_prom.money > order_prom_map_ck.shop_price_all){ | |
2177 | + //要先还原 | |
2178 | + this.setData({ | |
2179 | + [txt1]: 0 | |
2180 | + }); | |
2181 | + return null; | |
2182 | + } | |
2183 | + //要显示订单促销使用的按钮 | |
2184 | + this.setData({ | |
2185 | + [txt1]: 1 | |
2186 | + }); | |
2187 | + break; | |
2188 | + //市场价的时候 | |
2189 | + case 2: | |
2190 | + if (ord_prom.money > order_prom_map_ck.market_price_all){ | |
2191 | + //要先还原 | |
2192 | + this.setData({ | |
2193 | + [txt1]: 0 | |
2194 | + }); | |
2195 | + return null; | |
2196 | + } | |
2197 | + //要显示订单促销使用的按钮 | |
2198 | + this.setData({ | |
2199 | + [txt1]: 2 | |
2200 | + }); | |
2201 | + break; | |
2202 | + } | |
2203 | + //如果订单促销是不参与订单促销的,那么就直接返回null(订单促销不是实收价的时候) | |
2204 | + if(ord_prom.discount_field>0 && !this.data.can_use_ord_prom[pickid]){ | |
2205 | + return null; | |
2206 | + } | |
2207 | + return ord_prom; | |
2208 | + }, | |
2209 | + | |
2210 | + //立即购买的时候,点击订单促销的参与 | |
2211 | + set_can_use_ord_prom_now:function (e){ | |
2212 | + | |
2213 | + if(this.data.sub) return false; | |
2214 | + this.setData({ sub: 1,same_ok:1 }); | |
2088 | 2215 | |
2216 | + let pickid=this.data.bn_pick; | |
2217 | + let txt = 'can_use_ord_prom[' + pickid + ']'; | |
2218 | + let can_use = this.data.can_use_ord_prom[pickid] ? this.data.can_use_ord_prom[pickid] : 0; | |
2219 | + this.setData({ | |
2220 | + [txt]: !can_use | |
2221 | + }) | |
2089 | 2222 | |
2223 | + let th=this; | |
2224 | + let good=th.data.bn_goods; | |
2225 | + let param=th.data.param; | |
2090 | 2226 | |
2227 | + //如果有要参与订单促销的按钮点击后,要修改商品的价格 | |
2228 | + if(th.data.can_use_ord_prom[pickid]){ | |
2229 | + let discount_field=th.data.show_ord_prom[pickid]; | |
2230 | + switch (discount_field){ | |
2231 | + case 1: | |
2232 | + good.shop_price=good.shop_price_y; | |
2233 | + param.goods_price=good.shop_price_y; | |
2234 | + break; | |
2235 | + case 2: | |
2236 | + good.shop_price=good.market_price; | |
2237 | + param.goods_price=good.market_price; | |
2238 | + break; | |
2239 | + } | |
2240 | + //-- 转成普通商品 --- | |
2241 | + good.prom_type=0; | |
2242 | + good.prom_id=0; | |
2243 | + good.discount_field=discount_field; | |
2244 | + }else{ | |
2245 | + good=ut.deep_cp(th.data.old_bn_goods); | |
2246 | + param.goods_price=good.goods_price; | |
2247 | + } | |
2248 | + | |
2249 | + th.setData({ | |
2250 | + bn_goods:good, | |
2251 | + param | |
2252 | + }) | |
2253 | + wx.showLoading({ | |
2254 | + title: "处理中.", | |
2255 | + mark:true | |
2256 | + }) | |
2257 | + th.calculatePrice2() | |
2258 | + } | |
2091 | 2259 | |
2092 | 2260 | |
2093 | 2261 | }); | ... | ... |
packageC/pages/luckyGo/luckyGo_cart_ct/luckyGo_cart_ct.wxml
... | ... | @@ -100,6 +100,14 @@ |
100 | 100 | <icon color="#f23030" size="16" type="info"></icon>{{order.store_prom}} |
101 | 101 | </view> |
102 | 102 | |
103 | + <!-- 订单促销取价规则的优化 --> | |
104 | + <view class="set-mes" wx:if="{{show_ord_prom[bn_pick]}}"> | |
105 | + <view class="use-item" > | |
106 | + <icon bindtap='set_can_use_ord_prom_now' color="{{can_use_ord_prom[bn_pick]?'red':'gray'}}" size="16" type="success"></icon> | |
107 | + <view bindtap='set_can_use_ord_prom_now' class="yu_er">参与订单促销</view> | |
108 | + </view> | |
109 | + </view> | |
110 | + | |
103 | 111 | <!--阶梯团是不显示的--> |
104 | 112 | <block wx:if="{{bn_exp_type==0 && !is_default_logistics}}"> |
105 | 113 | <view class="use-item flex-space-between" wx:if="{{kt_type!=3 || is_normal==1}}"> | ... | ... |
packageC/pages/presell/cart/cart.js
packageC/pages/presell/cart/cart2.js
... | ... | @@ -134,7 +134,14 @@ Page({ |
134 | 134 | bconfig:null, |
135 | 135 | showFold:true, |
136 | 136 | |
137 | - is_fwk:0 //-- 判断是不是服务卡项订单 -- | |
137 | + is_fwk:0, //-- 判断是不是服务卡项订单 -- | |
138 | + | |
139 | + //-- 订单促销判断积累 ---2024-2-20 | |
140 | + order_prom_map_ck: {}, | |
141 | + //能不能使用订单促销 | |
142 | + can_use_ord_prom:{}, | |
143 | + //存储订单促销的取价,按照门店进行索引 | |
144 | + show_ord_prom:{}, | |
138 | 145 | }, |
139 | 146 | |
140 | 147 | |
... | ... | @@ -595,7 +602,7 @@ Page({ |
595 | 602 | }); |
596 | 603 | }, |
597 | 604 | |
598 | - //-- 获取到服务卡项的详情 -- | |
605 | + //-- 获取到商品的详情 -- | |
599 | 606 | get_goods_detail(act, prelist,gg){ |
600 | 607 | var th = this; |
601 | 608 | //--------如果goods_id一样,就是要立即购买----- |
... | ... | @@ -728,7 +735,10 @@ Page({ |
728 | 735 | } |
729 | 736 | |
730 | 737 | //这个位置要拿活动的预售价 |
738 | + t.data.data.shop_price_y = t.data.data.shop_price; | |
731 | 739 | t.data.data.shop_price = prelist.presell_money; |
740 | + th.data.old_bn_goods=ut.deep_cp(t.data.data); | |
741 | + | |
732 | 742 | th.setData({ |
733 | 743 | bn_goods: t.data.data, |
734 | 744 | bn_pickname: gg.pick_name, |
... | ... | @@ -832,6 +842,7 @@ Page({ |
832 | 842 | // } |
833 | 843 | |
834 | 844 | th.setData({dis_btn:1}) |
845 | + this.data.submit=0; | |
835 | 846 | |
836 | 847 | wx.showLoading({ |
837 | 848 | title: "处理中.",mask:true |
... | ... | @@ -901,14 +912,18 @@ Page({ |
901 | 912 | //-- 判断订单优惠的叠加 -- |
902 | 913 | var ord_prom=null; |
903 | 914 | var o_condition=allpice; |
904 | - if (o_condition > 0 && th.data.act.is_useorderyh) { | |
905 | - await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { | |
906 | - data: { store_id: os.stoid, orderAmount: o_condition, user_id: getApp().globalData.user_id } | |
907 | - }).then(res => { | |
908 | - if (res.data.code == 0) { | |
909 | - ord_prom = res.data.data; | |
910 | - } | |
911 | - }) | |
915 | + if (th.data.act.is_useorderyh) { | |
916 | + // await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { | |
917 | + // data: { store_id: os.stoid, orderAmount: o_condition, user_id: getApp().globalData.user_id } | |
918 | + // }).then(res => { | |
919 | + // if (res.data.code == 0) { | |
920 | + // ord_prom = res.data.data; | |
921 | + // } | |
922 | + // }) | |
923 | + | |
924 | + th.set_by_now_ord_prom(th.data.bn_goods); | |
925 | + th.data.order_prom_map_ck[bn_pick].goods_price_all=o_condition; | |
926 | + ord_prom=await th.get_cur_ord_prom(bn_pick); | |
912 | 927 | } |
913 | 928 | |
914 | 929 | //-----------当地址不为空,且是物流时,计算物流费用,并同时商品不是优惠活动的包邮,同时商品购买时候,服务卡项购买不计算运费---------- |
... | ... | @@ -1568,6 +1583,17 @@ Page({ |
1568 | 1583 | 'prom_id': th.data.bn_goods.prom_id, //促销活动id |
1569 | 1584 | }; |
1570 | 1585 | |
1586 | + if(th.data.bn_goods.discount_field){ | |
1587 | + goods.discount_field=th.data.bn_goods.discount_field; | |
1588 | + } | |
1589 | + | |
1590 | + //如果有参与非实收的订单促销,那么就相当于是普通购买 | |
1591 | + if(th.data.can_use_ord_prom[th.data.bn_pick]){ | |
1592 | + goods.is_integral_normal=1; | |
1593 | + } | |
1594 | + | |
1595 | + | |
1596 | + | |
1571 | 1597 | if(getApp().globalData.skinface_id){ |
1572 | 1598 | goods.skinface_id=getApp().globalData.skinface_id; |
1573 | 1599 | } |
... | ... | @@ -3179,8 +3205,148 @@ Page({ |
3179 | 3205 | url= "/pages/goods/goodsInfo/goodsInfo?goods_id="+gid; |
3180 | 3206 | } |
3181 | 3207 | getApp().goto(url); |
3208 | + }, | |
3209 | + | |
3210 | + | |
3211 | + //-- 获取订单促销的判断结构 -- | |
3212 | + set_by_now_ord_prom(item){ | |
3213 | + let pickid=this.data.bn_pick; | |
3214 | + let order_prom_map_ck= this.data.order_prom_map_ck; | |
3215 | + order_prom_map_ck[pickid]={ | |
3216 | + shop_price_all:0, //手店价的累计 | |
3217 | + market_price_all:0, //市场价的累计 | |
3218 | + goods_price_all:0, //实收价的累计 | |
3219 | + no_ord_price:0, //要累计上不参与订单促销的金额 | |
3220 | + goodsList:[], | |
3221 | + } | |
3222 | + | |
3223 | + let pk_ord_map=order_prom_map_ck[pickid]; | |
3224 | + pk_ord_map.shop_price_all += item.shop_price_y * item.buynum; | |
3225 | + pk_ord_map.market_price_all += item.goods_market_price * item.buynum; | |
3226 | + | |
3227 | + }, | |
3228 | + | |
3229 | + //获取当前进行中订单促销,同时带入相应的金额判断订单促销是不是运行,同时订单促销的条件不是实收价判断的话,默认的时候,订单促销是不参与运算的 | |
3230 | + async get_cur_ord_prom(pickid) { | |
3231 | + let ord_prom = null; | |
3232 | + let order_prom_map_ck = this.data.order_prom_map_ck[pickid]; | |
3233 | + if(!order_prom_map_ck) return null; | |
3234 | + | |
3235 | + //获取当前进行中的优惠促销 | |
3236 | + await getApp().request.promiseGet("/api/weshop/promorder/getPromOrder", { | |
3237 | + data: { | |
3238 | + store_id: os.stoid, | |
3239 | + orderAmount: -1, //-1为不判断金额条件 | |
3240 | + user_id: getApp().globalData.user_id | |
3241 | + } | |
3242 | + }).then(res => { | |
3243 | + if (res.data.code == 0) { | |
3244 | + ord_prom = res.data.data; | |
3245 | + } | |
3246 | + }) | |
3247 | + | |
3248 | + if (!ord_prom) return null; | |
3249 | + //用于计算订单促销的金额 | |
3250 | + let calculate_price=0; | |
3251 | + | |
3252 | + let txt1='show_ord_prom['+pickid+']'; | |
3253 | + //-- 此时判断活动的金额满足与否 -- | |
3254 | + switch (ord_prom.discount_field) { | |
3255 | + //实收价的时候 | |
3256 | + case 0: | |
3257 | + //要先还原 | |
3258 | + this.setData({ | |
3259 | + [txt1]: 0 | |
3260 | + }); | |
3261 | + | |
3262 | + if (ord_prom.money > order_prom_map_ck.goods_price_all){ | |
3263 | + return null; | |
3264 | + } | |
3265 | + break; | |
3266 | + //手店价的时候 | |
3267 | + case 1: | |
3268 | + if (ord_prom.money > order_prom_map_ck.shop_price_all){ | |
3269 | + //要先还原 | |
3270 | + this.setData({ | |
3271 | + [txt1]: 0 | |
3272 | + }); | |
3273 | + return null; | |
3274 | + } | |
3275 | + //要显示订单促销使用的按钮 | |
3276 | + this.setData({ | |
3277 | + [txt1]: 1 | |
3278 | + }); | |
3279 | + break; | |
3280 | + //市场价的时候 | |
3281 | + case 2: | |
3282 | + if (ord_prom.money > order_prom_map_ck.market_price_all){ | |
3283 | + //要先还原 | |
3284 | + this.setData({ | |
3285 | + [txt1]: 0 | |
3286 | + }); | |
3287 | + return null; | |
3288 | + } | |
3289 | + //要显示订单促销使用的按钮 | |
3290 | + this.setData({ | |
3291 | + [txt1]: 2 | |
3292 | + }); | |
3293 | + break; | |
3294 | + } | |
3295 | + //如果订单促销是不参与订单促销的,那么就直接返回null(订单促销不是实收价的时候) | |
3296 | + if(ord_prom.discount_field>0 && !this.data.can_use_ord_prom[pickid]){ | |
3297 | + return null; | |
3298 | + } | |
3299 | + return ord_prom; | |
3300 | + }, | |
3301 | + | |
3302 | + //立即购买的时候,点击订单促销的参与 | |
3303 | + set_can_use_ord_prom_now:function (e){ | |
3304 | + | |
3305 | + if(this.data.submit || this.data.dis_btn) return false; | |
3306 | + this.data.submit=1; | |
3307 | + | |
3308 | + let pickid=this.data.bn_pick; | |
3309 | + let txt = 'can_use_ord_prom[' + pickid + ']'; | |
3310 | + let can_use = this.data.can_use_ord_prom[pickid] ? this.data.can_use_ord_prom[pickid] : 0; | |
3311 | + this.setData({ | |
3312 | + [txt]: !can_use | |
3313 | + }) | |
3314 | + | |
3315 | + let th=this; | |
3316 | + let good=th.data.bn_goods; | |
3317 | + | |
3318 | + //如果有要参与订单促销的按钮点击后,要修改商品的价格 | |
3319 | + if(th.data.can_use_ord_prom[pickid]){ | |
3320 | + let discount_field=th.data.show_ord_prom[pickid]; | |
3321 | + switch (discount_field){ | |
3322 | + case 1: | |
3323 | + good.shop_price=good.shop_price_y; | |
3324 | + break; | |
3325 | + case 2: | |
3326 | + good.shop_price=good.market_price; | |
3327 | + break; | |
3328 | + } | |
3329 | + //-- 转成普通商品 --- | |
3330 | + good.prom_type=0; | |
3331 | + good.prom_id=0; | |
3332 | + good.integral=0; | |
3333 | + good.discount_field=discount_field; | |
3334 | + | |
3335 | + }else{ | |
3336 | + good=ut.deep_cp(th.data.old_bn_goods); | |
3337 | + } | |
3338 | + | |
3339 | + th.setData({ | |
3340 | + bn_goods:good | |
3341 | + }) | |
3342 | + wx.showLoading({ | |
3343 | + title: "处理中.", | |
3344 | + mark:true | |
3345 | + }) | |
3346 | + th.calculatePrice2() | |
3182 | 3347 | } |
3183 | 3348 | |
3184 | 3349 | |
3185 | 3350 | |
3351 | + | |
3186 | 3352 | }); | ... | ... |
packageC/pages/presell/cart/cart2.wxml
... | ... | @@ -150,6 +150,15 @@ |
150 | 150 | <icon color="#f23030" size="16" type="info"></icon>{{order.store_prom}} |
151 | 151 | </view> |
152 | 152 | |
153 | + <!-- 订单促销取价规则的优化 --> | |
154 | + <view class="set-mes" wx:if="{{show_ord_prom[bn_pick]}}"> | |
155 | + <view class="use-item" > | |
156 | + <icon bindtap='set_can_use_ord_prom_now' color="{{can_use_ord_prom[bn_pick]?'red':'gray'}}" size="16" type="success"></icon> | |
157 | + <view bindtap='set_can_use_ord_prom_now' class="yu_er">参与订单促销</view> | |
158 | + </view> | |
159 | + </view> | |
160 | + | |
161 | + | |
153 | 162 | <view class="xc-coupon-frame flex-center" data-bn="1" bindtap="open_coupon_list" data-pickid="{{bn_pick}}" hidden="{{is_fwk}}" |
154 | 163 | wx:if="{{(selected_quan_list && selected_quan_list.length>0) || get_by_quan_list!=null}}"> |
155 | 164 | <view class="work-frame flex-space-between"> | ... | ... |
packageE/pages/cart/cart2/cart2.js
... | ... | @@ -1085,16 +1085,16 @@ Page({ |
1085 | 1085 | if (gdlist && gdlist.length) { |
1086 | 1086 | //查找商品item1有没有在gdlist中,就要把商品的prom_type清理0 |
1087 | 1087 | let f_idx = gdlist.findIndex(function (ele) { |
1088 | - return ele.id == item1.id | |
1088 | + return ele.id == item.id | |
1089 | 1089 | }); |
1090 | 1090 | if (f_idx != -1) { |
1091 | 1091 | //开始变换商品的价格显示 |
1092 | - switch (th.data.show_ord_prom[item1.pick_id]) { | |
1092 | + switch (th.data.show_ord_prom[item.pick_id]) { | |
1093 | 1093 | case 1: |
1094 | - carr[i].goods_price = item1.shop_price; | |
1094 | + carr[i].goods_price = item.shop_price; | |
1095 | 1095 | break; |
1096 | 1096 | case 2: |
1097 | - carr[i].goods_price = item1.goods_market_price; | |
1097 | + carr[i].goods_price = item.goods_market_price; | |
1098 | 1098 | break; |
1099 | 1099 | } |
1100 | 1100 | |
... | ... | @@ -1108,7 +1108,7 @@ Page({ |
1108 | 1108 | break; |
1109 | 1109 | } |
1110 | 1110 | carr[i].prom_type = 0; |
1111 | - carr[i].discount_field = th.data.show_ord_prom[item1.pick_id]; | |
1111 | + carr[i].discount_field = th.data.show_ord_prom[item.pick_id]; | |
1112 | 1112 | } |
1113 | 1113 | } |
1114 | 1114 | } | ... | ... |
packageE/pages/cart/cart2_inte/cart2_inte.js
... | ... | @@ -757,7 +757,7 @@ Page({ |
757 | 757 | //---如果有选择优惠券的情况下--- |
758 | 758 | var quan_price = 0, bn_pick = th.data.bn_pick; |
759 | 759 | |
760 | - if (condition > 0 && th.data.bn_is_order_yh && !th.data.bn_goods.whsle_id) { | |
760 | + if (th.data.bn_is_order_yh && !th.data.bn_goods.whsle_id) { | |
761 | 761 | // await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { |
762 | 762 | // data: { store_id: os.stoid, orderAmount: condition, user_id: getApp().globalData.user_id } |
763 | 763 | // }).then(res => { | ... | ... |
packageE/pages/cart/cart2_pt/cart2_pt.js
... | ... | @@ -855,7 +855,7 @@ Page({ |
855 | 855 | // }) |
856 | 856 | |
857 | 857 | th.set_by_now_ord_prom(th.data.bn_goods); |
858 | - th.data.order_prom_map_ck[bn_pick].goods_price_all=condition; | |
858 | + th.data.order_prom_map_ck[bn_pick].goods_price_all=o_condition; | |
859 | 859 | ord_prom=await th.get_cur_ord_prom(bn_pick); |
860 | 860 | } |
861 | 861 | |
... | ... | @@ -1484,6 +1484,15 @@ Page({ |
1484 | 1484 | 'prom_id': th.data.bn_goods.prom_id, //促销活动id |
1485 | 1485 | }; |
1486 | 1486 | |
1487 | + if(th.data.bn_goods.discount_field){ | |
1488 | + goods.discount_field=th.data.bn_goods.discount_field; | |
1489 | + } | |
1490 | + | |
1491 | + //如果有参与非实收的订单促销,那么就相当于是普通购买 | |
1492 | + if(th.data.can_use_ord_prom[th.data.bn_pick]){ | |
1493 | + goods.is_integral_normal=1; | |
1494 | + } | |
1495 | + | |
1487 | 1496 | if (getApp().globalData.skinface_id) { |
1488 | 1497 | goods.skinface_id = getApp().globalData.skinface_id; |
1489 | 1498 | } | ... | ... |
packageE/pages/cart/cart_wk/cart_wk.js
packageG/pages/user/order_detail/order_detail.js
... | ... | @@ -1157,13 +1157,39 @@ Page({ |
1157 | 1157 | //-- 优惠促销的时候控制取价规则 -- |
1158 | 1158 | // gg.prom_type!=3 && gg.prom_type!=10 同时商品不是普通购买的时候,又参与优惠促销,阶梯促销 |
1159 | 1159 | if((gg.prom_type!=3 && gg.prom_type!=10) || gg.discount_field==undefined || gg.discount_field==0 ) { |
1160 | - if (card_field && gg[card_field] > 0) { | |
1161 | - if (good.goods_price != gg[card_field] && good.offline_cut <= 0) isok = 0; | |
1162 | - if (good.goods_price > gg[card_field] && good.offline_cut > 0) isok = 0; //如果线下价格比较贵,则不通过 | |
1163 | 1160 | |
1164 | - } else { | |
1165 | - if (good.goods_price != gg.shop_price && good.offline_cut <= 0) isok = 0; | |
1166 | - if (good.goods_price > gg.shop_price && good.offline_cut > 0) isok = 0; //如果线下价格比较贵,则不通过 | |
1161 | + | |
1162 | + //判断一下活动是不是有参与订单促销,并且订单促销的活动是不是实收取价,2024-2-23 | |
1163 | + let ordprom_price_type=0; | |
1164 | + if(order.order_prom_id && good.prom_type==0){ | |
1165 | + let p_rs= await getApp().request.promiseGet("/api/weshop/promorder/get/"+os.stoid+"/"+order.order_prom_id, {}); | |
1166 | + if(p_rs && p_rs.data.code==0 && p_rs.data.data){ | |
1167 | + let ord_p=p_rs.data.data; | |
1168 | + if(ord_p && ord_p.discount_field>0){ | |
1169 | + ordprom_price_type=ord_p.discount_field | |
1170 | + } | |
1171 | + } | |
1172 | + } | |
1173 | + if(ordprom_price_type>0){ | |
1174 | + //-- 看一下订单促销的取价规则 -- | |
1175 | + switch (ordprom_price_type){ | |
1176 | + case 1: | |
1177 | + if (good.goods_price != gg.shop_price) isok = 0; | |
1178 | + break; | |
1179 | + case 2: | |
1180 | + if (good.goods_price != gg.market_price) isok = 0; | |
1181 | + break; | |
1182 | + } | |
1183 | + | |
1184 | + }else { | |
1185 | + if (card_field && gg[card_field] > 0) { | |
1186 | + if (good.goods_price != gg[card_field] && good.offline_cut <= 0) isok = 0; | |
1187 | + if (good.goods_price > gg[card_field] && good.offline_cut > 0) isok = 0; //如果线下价格比较贵,则不通过 | |
1188 | + | |
1189 | + } else { | |
1190 | + if (good.goods_price != gg.shop_price && good.offline_cut <= 0) isok = 0; | |
1191 | + if (good.goods_price > gg.shop_price && good.offline_cut > 0) isok = 0; //如果线下价格比较贵,则不通过 | |
1192 | + } | |
1167 | 1193 | } |
1168 | 1194 | }else{ |
1169 | 1195 | if(good.prom_type==3 && good.prom_type==10){ | ... | ... |
pages/user/order_list/order_list.js
... | ... | @@ -1446,14 +1446,43 @@ Page({ |
1446 | 1446 | //-- 优惠促销的时候控制取价规则 -- |
1447 | 1447 | // gg.prom_type!=3 && gg.prom_type!=10 同时商品不是普通购买的时候,又参与优惠促销,阶梯促销 |
1448 | 1448 | if((gg.prom_type!=3 && gg.prom_type!=10) || gg.discount_field==undefined || gg.discount_field==0 ){ |
1449 | - if (card_field && gg[card_field] > 0) { | |
1450 | - if (good.goods_price != gg[card_field] && good.offline_cut <= 0) isok = 0; | |
1451 | - if (good.goods_price > gg[card_field] && good.offline_cut > 0) isok = 0; //如果线下价格比较贵,则不通过 | |
1452 | 1449 | |
1453 | - } else { | |
1454 | - if (good.goods_price != gg.shop_price && good.offline_cut <= 0) isok = 0; | |
1455 | - if (good.goods_price > gg.shop_price && good.offline_cut > 0) isok = 0; //如果线下价格比较贵,则不通过 | |
1450 | + //判断一下活动是不是有参与订单促销,并且订单促销的活动是不是实收取价,2024-2-23 | |
1451 | + let ordprom_price_type=0; | |
1452 | + if(order.order_prom_id && good.prom_type==0){ | |
1453 | + let p_rs= await getApp().request.promiseGet("/api/weshop/promorder/get/"+os.stoid+"/"+order.order_prom_id, {}); | |
1454 | + if(p_rs && p_rs.data.code==0 && p_rs.data.data){ | |
1455 | + let ord_p=p_rs.data.data; | |
1456 | + if(ord_p && ord_p.discount_field>0){ | |
1457 | + ordprom_price_type=ord_p.discount_field | |
1458 | + } | |
1459 | + } | |
1460 | + } | |
1461 | + if(ordprom_price_type>0){ | |
1462 | + //-- 看一下订单促销的取价规则 -- | |
1463 | + switch (ordprom_price_type){ | |
1464 | + case 1: | |
1465 | + if (good.goods_price != gg.shop_price) isok = 0; | |
1466 | + break; | |
1467 | + case 2: | |
1468 | + if (good.goods_price != gg.market_price) isok = 0; | |
1469 | + break; | |
1470 | + } | |
1471 | + | |
1472 | + }else{ | |
1473 | + if (card_field && gg[card_field] > 0) { | |
1474 | + if (good.goods_price != gg[card_field] && good.offline_cut <= 0) isok = 0; | |
1475 | + if (good.goods_price > gg[card_field] && good.offline_cut > 0) isok = 0; //如果线下价格比较贵,则不通过 | |
1476 | + | |
1477 | + } else { | |
1478 | + if (good.goods_price != gg.shop_price && good.offline_cut <= 0) isok = 0; | |
1479 | + if (good.goods_price > gg.shop_price && good.offline_cut > 0) isok = 0; //如果线下价格比较贵,则不通过 | |
1480 | + } | |
1456 | 1481 | } |
1482 | + | |
1483 | + | |
1484 | + | |
1485 | + | |
1457 | 1486 | }else{ |
1458 | 1487 | |
1459 | 1488 | if(good.prom_type==3 || good.prom_type==10 ){ | ... | ... |