Commit ef1f42faea76a2a19095c7191ddb6f4599d2390a
合并订单促销
Showing
19 changed files
with
1442 additions
and
141 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,34 @@ 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 | + //如果是指定门店,就要判断 | |
| 1485 | + if (th.data.bn_goods.pick_group_ids) { | |
| 1486 | + var idx0 = th.data.bn_goods.pick_up_lists.findIndex(function (e) { | |
| 1487 | + return e.pickup_id == th.data.bn_pick; | |
| 1488 | + }) | |
| 1489 | + if (idx0 < 0) { | |
| 1490 | + getApp().my_warnning(th.data.bn_goods.goods_name + "的门店不可售", 0, th); | |
| 1491 | + th.data.is_summit_ing = 0; | |
| 1492 | + th.setData({ | |
| 1493 | + submit: 0 | |
| 1494 | + }) | |
| 1495 | + return false; | |
| 1496 | + } | |
| 1497 | + } | |
| 1498 | + | |
| 1499 | + } | |
| 1500 | + | |
| 1454 | 1501 | if (getApp().globalData.skinface_id) { | 
| 1455 | 1502 | goods.skinface_id = getApp().globalData.skinface_id; | 
| 1456 | 1503 | } | 
| ... | ... | @@ -2085,9 +2132,149 @@ Page({ | 
| 2085 | 2132 | th.calculatePrice2(); | 
| 2086 | 2133 | }, | 
| 2087 | 2134 | |
| 2135 | + //-- 获取订单促销的判断结构 -- | |
| 2136 | + set_by_now_ord_prom(item){ | |
| 2137 | + let pickid=this.data.bn_pick; | |
| 2138 | + let order_prom_map_ck= this.data.order_prom_map_ck; | |
| 2139 | + order_prom_map_ck[pickid]={ | |
| 2140 | + shop_price_all:0, //手店价的累计 | |
| 2141 | + market_price_all:0, //市场价的累计 | |
| 2142 | + goods_price_all:0, //实收价的累计 | |
| 2143 | + no_ord_price:0, //要累计上不参与订单促销的金额 | |
| 2144 | + goodsList:[], | |
| 2145 | + } | |
| 2146 | + | |
| 2147 | + let pk_ord_map=order_prom_map_ck[pickid]; | |
| 2148 | + pk_ord_map.shop_price_all += item.shop_price_y * item.buynum; | |
| 2149 | + pk_ord_map.market_price_all += item.goods_market_price * item.buynum; | |
| 2150 | + | |
| 2151 | + }, | |
| 2152 | + | |
| 2153 | + //获取当前进行中订单促销,同时带入相应的金额判断订单促销是不是运行,同时订单促销的条件不是实收价判断的话,默认的时候,订单促销是不参与运算的 | |
| 2154 | + async get_cur_ord_prom(pickid) { | |
| 2155 | + let ord_prom = null; | |
| 2156 | + let order_prom_map_ck = this.data.order_prom_map_ck[pickid]; | |
| 2157 | + if(!order_prom_map_ck) return null; | |
| 2158 | + | |
| 2159 | + //获取当前进行中的优惠促销 | |
| 2160 | + await getApp().request.promiseGet("/api/weshop/promorder/getPromOrder", { | |
| 2161 | + data: { | |
| 2162 | + store_id: os.stoid, | |
| 2163 | + orderAmount: -1, //-1为不判断金额条件 | |
| 2164 | + user_id: getApp().globalData.user_id | |
| 2165 | + } | |
| 2166 | + }).then(res => { | |
| 2167 | + if (res.data.code == 0) { | |
| 2168 | + ord_prom = res.data.data; | |
| 2169 | + } | |
| 2170 | + }) | |
| 2088 | 2171 | |
| 2172 | + if (!ord_prom) return null; | |
| 2173 | + //用于计算订单促销的金额 | |
| 2174 | + let calculate_price=0; | |
| 2089 | 2175 | |
| 2176 | + let txt1='show_ord_prom['+pickid+']'; | |
| 2177 | + //-- 此时判断活动的金额满足与否 -- | |
| 2178 | + switch (ord_prom.discount_field) { | |
| 2179 | + //实收价的时候 | |
| 2180 | + case 0: | |
| 2181 | + //要先还原 | |
| 2182 | + this.setData({ | |
| 2183 | + [txt1]: 0 | |
| 2184 | + }); | |
| 2185 | + | |
| 2186 | + if (ord_prom.money > order_prom_map_ck.goods_price_all){ | |
| 2187 | + return null; | |
| 2188 | + } | |
| 2189 | + break; | |
| 2190 | + //手店价的时候 | |
| 2191 | + case 1: | |
| 2192 | + if (ord_prom.money > order_prom_map_ck.shop_price_all){ | |
| 2193 | + //要先还原 | |
| 2194 | + this.setData({ | |
| 2195 | + [txt1]: 0 | |
| 2196 | + }); | |
| 2197 | + return null; | |
| 2198 | + } | |
| 2199 | + //要显示订单促销使用的按钮 | |
| 2200 | + this.setData({ | |
| 2201 | + [txt1]: 1 | |
| 2202 | + }); | |
| 2203 | + break; | |
| 2204 | + //市场价的时候 | |
| 2205 | + case 2: | |
| 2206 | + if (ord_prom.money > order_prom_map_ck.market_price_all){ | |
| 2207 | + //要先还原 | |
| 2208 | + this.setData({ | |
| 2209 | + [txt1]: 0 | |
| 2210 | + }); | |
| 2211 | + return null; | |
| 2212 | + } | |
| 2213 | + //要显示订单促销使用的按钮 | |
| 2214 | + this.setData({ | |
| 2215 | + [txt1]: 2 | |
| 2216 | + }); | |
| 2217 | + break; | |
| 2218 | + } | |
| 2219 | + //如果订单促销是不参与订单促销的,那么就直接返回null(订单促销不是实收价的时候) | |
| 2220 | + if(ord_prom.discount_field>0 && !this.data.can_use_ord_prom[pickid]){ | |
| 2221 | + return null; | |
| 2222 | + } | |
| 2223 | + return ord_prom; | |
| 2224 | + }, | |
| 2225 | + | |
| 2226 | + //立即购买的时候,点击订单促销的参与 | |
| 2227 | + set_can_use_ord_prom_now:function (e){ | |
| 2228 | + | |
| 2229 | + if(this.data.sub) return false; | |
| 2230 | + this.setData({ sub: 1,same_ok:1 }); | |
| 2231 | + | |
| 2232 | + let pickid=this.data.bn_pick; | |
| 2233 | + let txt = 'can_use_ord_prom[' + pickid + ']'; | |
| 2234 | + let can_use = this.data.can_use_ord_prom[pickid] ? this.data.can_use_ord_prom[pickid] : 0; | |
| 2235 | + this.setData({ | |
| 2236 | + [txt]: !can_use | |
| 2237 | + }) | |
| 2238 | + | |
| 2239 | + let th=this; | |
| 2240 | + let good=th.data.bn_goods; | |
| 2241 | + let param=th.data.param; | |
| 2242 | + | |
| 2243 | + //如果有要参与订单促销的按钮点击后,要修改商品的价格 | |
| 2244 | + if(th.data.can_use_ord_prom[pickid]){ | |
| 2245 | + let discount_field=th.data.show_ord_prom[pickid]; | |
| 2246 | + switch (discount_field){ | |
| 2247 | + case 1: | |
| 2248 | + good.shop_price=good.shop_price_y; | |
| 2249 | + param.goods_price=good.shop_price_y; | |
| 2250 | + break; | |
| 2251 | + case 2: | |
| 2252 | + good.shop_price=good.market_price; | |
| 2253 | + param.goods_price=good.market_price; | |
| 2254 | + break; | |
| 2255 | + } | |
| 2256 | + //-- 转成普通商品 --- | |
| 2257 | + good.prom_type=0; | |
| 2258 | + good.prom_id=0; | |
| 2259 | + good.discount_field=discount_field; | |
| 2260 | + | |
| 2261 | + | |
| 2262 | + }else{ | |
| 2263 | + good=ut.deep_cp(th.data.old_bn_goods); | |
| 2264 | + param.goods_price=good.goods_price; | |
| 2265 | + } | |
| 2266 | + | |
| 2267 | + th.setData({ | |
| 2268 | + bn_goods:good, | |
| 2269 | + param | |
| 2270 | + }) | |
| 2271 | + wx.showLoading({ | |
| 2272 | + title: "处理中.", | |
| 2273 | + mark:true | |
| 2274 | + }) | |
| 2275 | + th.calculatePrice2() | |
| 2090 | 2276 | |
| 2277 | + } | |
| 2091 | 2278 | |
| 2092 | 2279 | |
| 2093 | 2280 | }); | ... | ... | 
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,33 @@ 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 | + if (th.data.bn_goods.pick_group_ids) { | |
| 1595 | + var idx0 = th.data.bn_goods.pick_up_lists.findIndex(function (e) { | |
| 1596 | + return e.pickup_id == th.data.bn_pick; | |
| 1597 | + }) | |
| 1598 | + if (idx0 < 0) { | |
| 1599 | + getApp().my_warnning(th.data.bn_goods.goods_name + "的门店不可售", 0, th); | |
| 1600 | + th.data.is_summit_ing = 0; | |
| 1601 | + th.setData({ | |
| 1602 | + submit: 0 | |
| 1603 | + }) | |
| 1604 | + return false; | |
| 1605 | + } | |
| 1606 | + } | |
| 1607 | + | |
| 1608 | + | |
| 1609 | + } | |
| 1610 | + | |
| 1611 | + | |
| 1612 | + | |
| 1571 | 1613 | if(getApp().globalData.skinface_id){ | 
| 1572 | 1614 | goods.skinface_id=getApp().globalData.skinface_id; | 
| 1573 | 1615 | } | 
| ... | ... | @@ -3179,8 +3221,158 @@ Page({ | 
| 3179 | 3221 | url= "/pages/goods/goodsInfo/goodsInfo?goods_id="+gid; | 
| 3180 | 3222 | } | 
| 3181 | 3223 | getApp().goto(url); | 
| 3224 | + }, | |
| 3225 | + | |
| 3226 | + | |
| 3227 | + //-- 获取订单促销的判断结构 -- | |
| 3228 | + set_by_now_ord_prom(item){ | |
| 3229 | + let pickid=this.data.bn_pick; | |
| 3230 | + let order_prom_map_ck= this.data.order_prom_map_ck; | |
| 3231 | + order_prom_map_ck[pickid]={ | |
| 3232 | + shop_price_all:0, //手店价的累计 | |
| 3233 | + market_price_all:0, //市场价的累计 | |
| 3234 | + goods_price_all:0, //实收价的累计 | |
| 3235 | + no_ord_price:0, //要累计上不参与订单促销的金额 | |
| 3236 | + goodsList:[], | |
| 3237 | + } | |
| 3238 | + | |
| 3239 | + let pk_ord_map=order_prom_map_ck[pickid]; | |
| 3240 | + pk_ord_map.shop_price_all += item.shop_price_y * item.buynum; | |
| 3241 | + pk_ord_map.market_price_all += item.goods_market_price * item.buynum; | |
| 3242 | + | |
| 3243 | + }, | |
| 3244 | + | |
| 3245 | + //获取当前进行中订单促销,同时带入相应的金额判断订单促销是不是运行,同时订单促销的条件不是实收价判断的话,默认的时候,订单促销是不参与运算的 | |
| 3246 | + async get_cur_ord_prom(pickid) { | |
| 3247 | + let ord_prom = null; | |
| 3248 | + let order_prom_map_ck = this.data.order_prom_map_ck[pickid]; | |
| 3249 | + if(!order_prom_map_ck) return null; | |
| 3250 | + | |
| 3251 | + //获取当前进行中的优惠促销 | |
| 3252 | + await getApp().request.promiseGet("/api/weshop/promorder/getPromOrder", { | |
| 3253 | + data: { | |
| 3254 | + store_id: os.stoid, | |
| 3255 | + orderAmount: -1, //-1为不判断金额条件 | |
| 3256 | + user_id: getApp().globalData.user_id | |
| 3257 | + } | |
| 3258 | + }).then(res => { | |
| 3259 | + if (res.data.code == 0) { | |
| 3260 | + ord_prom = res.data.data; | |
| 3261 | + } | |
| 3262 | + }) | |
| 3263 | + | |
| 3264 | + if (!ord_prom) return null; | |
| 3265 | + //用于计算订单促销的金额 | |
| 3266 | + let calculate_price=0; | |
| 3267 | + | |
| 3268 | + let txt1='show_ord_prom['+pickid+']'; | |
| 3269 | + //-- 此时判断活动的金额满足与否 -- | |
| 3270 | + switch (ord_prom.discount_field) { | |
| 3271 | + //实收价的时候 | |
| 3272 | + case 0: | |
| 3273 | + //要先还原 | |
| 3274 | + this.setData({ | |
| 3275 | + [txt1]: 0 | |
| 3276 | + }); | |
| 3277 | + | |
| 3278 | + if (ord_prom.money > order_prom_map_ck.goods_price_all){ | |
| 3279 | + return null; | |
| 3280 | + } | |
| 3281 | + break; | |
| 3282 | + //手店价的时候 | |
| 3283 | + case 1: | |
| 3284 | + if (ord_prom.money > order_prom_map_ck.shop_price_all){ | |
| 3285 | + //要先还原 | |
| 3286 | + this.setData({ | |
| 3287 | + [txt1]: 0 | |
| 3288 | + }); | |
| 3289 | + return null; | |
| 3290 | + } | |
| 3291 | + //要显示订单促销使用的按钮 | |
| 3292 | + this.setData({ | |
| 3293 | + [txt1]: 1 | |
| 3294 | + }); | |
| 3295 | + break; | |
| 3296 | + //市场价的时候 | |
| 3297 | + case 2: | |
| 3298 | + if (ord_prom.money > order_prom_map_ck.market_price_all){ | |
| 3299 | + //要先还原 | |
| 3300 | + this.setData({ | |
| 3301 | + [txt1]: 0 | |
| 3302 | + }); | |
| 3303 | + return null; | |
| 3304 | + } | |
| 3305 | + //要显示订单促销使用的按钮 | |
| 3306 | + this.setData({ | |
| 3307 | + [txt1]: 2 | |
| 3308 | + }); | |
| 3309 | + break; | |
| 3310 | + } | |
| 3311 | + //如果订单促销是不参与订单促销的,那么就直接返回null(订单促销不是实收价的时候) | |
| 3312 | + if(ord_prom.discount_field>0 && !this.data.can_use_ord_prom[pickid]){ | |
| 3313 | + return null; | |
| 3314 | + } | |
| 3315 | + return ord_prom; | |
| 3316 | + }, | |
| 3317 | + | |
| 3318 | + //立即购买的时候,点击订单促销的参与 | |
| 3319 | + set_can_use_ord_prom_now:function (e){ | |
| 3320 | + | |
| 3321 | + if(this.data.submit || this.data.dis_btn) return false; | |
| 3322 | + this.data.submit=1; | |
| 3323 | + | |
| 3324 | + let pickid=this.data.bn_pick; | |
| 3325 | + let txt = 'can_use_ord_prom[' + pickid + ']'; | |
| 3326 | + let can_use = this.data.can_use_ord_prom[pickid] ? this.data.can_use_ord_prom[pickid] : 0; | |
| 3327 | + this.setData({ | |
| 3328 | + [txt]: !can_use | |
| 3329 | + }) | |
| 3330 | + | |
| 3331 | + let th=this; | |
| 3332 | + let good=th.data.bn_goods; | |
| 3333 | + | |
| 3334 | + //如果有要参与订单促销的按钮点击后,要修改商品的价格 | |
| 3335 | + if(th.data.can_use_ord_prom[pickid]){ | |
| 3336 | + let discount_field=th.data.show_ord_prom[pickid]; | |
| 3337 | + switch (discount_field){ | |
| 3338 | + case 1: | |
| 3339 | + good.shop_price=good.shop_price_y; | |
| 3340 | + break; | |
| 3341 | + case 2: | |
| 3342 | + good.shop_price=good.market_price; | |
| 3343 | + break; | |
| 3344 | + } | |
| 3345 | + //-- 转成普通商品 --- | |
| 3346 | + good.prom_type=0; | |
| 3347 | + good.prom_id=0; | |
| 3348 | + good.integral=0; | |
| 3349 | + good.discount_field=discount_field; | |
| 3350 | + | |
| 3351 | + //把优惠券的使用还原 | |
| 3352 | + th.setData({ | |
| 3353 | + selected_quan_list: null, | |
| 3354 | + using_quan: {} | |
| 3355 | + }) | |
| 3356 | + | |
| 3357 | + }else{ | |
| 3358 | + good=ut.deep_cp(th.data.old_bn_goods); | |
| 3359 | + } | |
| 3360 | + | |
| 3361 | + th.setData({ | |
| 3362 | + bn_goods:good | |
| 3363 | + }) | |
| 3364 | + wx.showLoading({ | |
| 3365 | + title: "处理中.", | |
| 3366 | + mark:true | |
| 3367 | + }) | |
| 3368 | + th.calculatePrice2() | |
| 3369 | + | |
| 3370 | + if(!th.data.can_use_ord_prom[pickid]){ | |
| 3371 | + th.get_buy_now_quan(); | |
| 3372 | + } | |
| 3182 | 3373 | } | 
| 3183 | 3374 | |
| 3184 | 3375 | |
| 3185 | 3376 | |
| 3377 | + | |
| 3186 | 3378 | }); | ... | ... | 
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
| ... | ... | @@ -178,7 +178,15 @@ Page({ | 
| 178 | 178 | yhcx_act_map: {}, | 
| 179 | 179 | |
| 180 | 180 | //优惠促销购买次数 | 
| 181 | - yhcx_buy_map:{} | |
| 181 | + yhcx_buy_map:{}, | |
| 182 | + | |
| 183 | + //-- 订单促销判断积累 ---2024-2-20 | |
| 184 | + order_prom_map_ck: {}, | |
| 185 | + //能不能使用订单促销 | |
| 186 | + can_use_ord_prom:{}, | |
| 187 | + //存储订单促销的取价,按照门店进行索引 | |
| 188 | + show_ord_prom:{}, | |
| 189 | + | |
| 182 | 190 | }, | 
| 183 | 191 | |
| 184 | 192 | |
| ... | ... | @@ -944,7 +952,8 @@ Page({ | 
| 944 | 952 | // } | 
| 945 | 953 | // }) | 
| 946 | 954 | |
| 947 | - th.data.cartlist_y =JSON.parse(JSON.stringify(carr)); //存储原始购物车列表 | |
| 955 | + th.data.cartlist_y =JSON.parse(JSON.stringify(carr)); //存储原始购物车列表,这个数据还会收到污染 | |
| 956 | + th.data.cartlist_old =JSON.parse(JSON.stringify(carr)); //存储原始购物车列表 | |
| 948 | 957 | wx.showLoading(); | 
| 949 | 958 | |
| 950 | 959 | th.get_cart_next(carr); | 
| ... | ... | @@ -1028,33 +1037,35 @@ Page({ | 
| 1028 | 1037 | var no_zh_num={}; | 
| 1029 | 1038 | //-- 多促销活动调用接口需要的参数,和商品的购买数量和活动的购买数量的请求参数 -- | 
| 1030 | 1039 | |
| 1031 | - if(!is_change){ | |
| 1040 | + if(!is_change) { | |
| 1041 | + //-- 多促销活动调用接口需要的参数,和商品的购买数量和活动的购买数量的请求参数 -- | |
| 1032 | 1042 | var dug_cx_arr = []; | 
| 1033 | 1043 | //获取 限购 和 多活动的促销---2024-2-1 | 
| 1034 | - for (var i = 0; i < carr.length; i++) { | |
| 1044 | + for (var iv = 0; iv < carr.length; iv++) { | |
| 1035 | 1045 | |
| 1036 | - let item1 = carr[i]; | |
| 1046 | + let item1 = carr[iv]; | |
| 1037 | 1047 | //如果不是活动的时候,不是代发商品的时候,不是赠品的时候,不是阶梯商品拆分的,不是组合购拆分的 | 
| 1038 | - if([1, 2, 4, 6, 8, 9].indexOf(item1.prom_type)== -1 && !item1.whsle_id | |
| 1039 | - && !item1.is_gift && !item1.is_ld_split && !item1.is_zh_split ){ | |
| 1048 | + if ([1, 2, 4, 6, 8, 9].indexOf(item1.prom_type) == -1 && !item1.whsle_id | |
| 1049 | + && !item1.is_gift && !item1.is_ld_split && !item1.is_zh_split) { | |
| 1040 | 1050 | //-- 快速查找,组装查询多活动的列表 -- | 
| 1041 | - let f_idx=dug_cx_arr.findIndex(function (ele) { | |
| 1051 | + let f_idx = dug_cx_arr.findIndex(function (ele) { | |
| 1042 | 1052 | return ele.goods_id == item1.goods_id | 
| 1043 | 1053 | }); | 
| 1044 | - if(f_idx==-1) { | |
| 1045 | - let gd_ite={ | |
| 1046 | - goods_id:carr[i].goods_id, | |
| 1047 | - goods_num:1, | |
| 1048 | - is_limit_show:1, | |
| 1049 | - is_state:0 | |
| 1054 | + if (f_idx == -1) { | |
| 1055 | + let gd_ite = { | |
| 1056 | + goods_id: carr[iv].goods_id, | |
| 1057 | + goods_num: 1, | |
| 1058 | + is_limit_show: 1, | |
| 1059 | + is_state: 0 | |
| 1050 | 1060 | } | 
| 1051 | 1061 | dug_cx_arr.push(gd_ite); | 
| 1052 | 1062 | } | 
| 1053 | 1063 | |
| 1054 | 1064 | } | 
| 1055 | 1065 | |
| 1056 | - if(is_change){ | |
| 1057 | - carr[i].collocationList=null; | |
| 1066 | + | |
| 1067 | + if (is_change) { | |
| 1068 | + carr[iv].collocationList = null; | |
| 1058 | 1069 | } | 
| 1059 | 1070 | } | 
| 1060 | 1071 | //-- 对商品的多促销进行判断 ---2024-2-1-- | 
| ... | ... | @@ -1062,11 +1073,45 @@ Page({ | 
| 1062 | 1073 | await th.buy_pro_group(dug_cx_arr,carr); | 
| 1063 | 1074 | } | 
| 1064 | 1075 | } | 
| 1065 | - | |
| 1066 | - | |
| 1067 | 1076 | //在分组的时候,就不要再调用接口,await | 
| 1068 | 1077 | for (var i = 0; i < carr.length; i++) { | 
| 1069 | 1078 | var item = carr[i]; | 
| 1079 | + | |
| 1080 | + //如果有户有点击参与订单促销的话,那么可以参与订单促销的商品的活动都要清理成0,订单促销在使用过程中的重要方法 | |
| 1081 | + if (this.data.can_use_ord_prom[item.pick_id]) { | |
| 1082 | + //从订单促销的order_prom_map_ck数据结构中获取到可以参与的商品列表 | |
| 1083 | + let gdlist = this.data.order_prom_map_ck[item.pick_id] ? this.data.order_prom_map_ck[item.pick_id].goodsList : null; | |
| 1084 | + if (gdlist && gdlist.length) { | |
| 1085 | + //查找商品item1有没有在gdlist中,就要把商品的prom_type清理0 | |
| 1086 | + let f_idx = gdlist.findIndex(function (ele) { | |
| 1087 | + return ele.id == item.id | |
| 1088 | + }); | |
| 1089 | + if (f_idx != -1) { | |
| 1090 | + //开始变换商品的价格显示 | |
| 1091 | + switch (th.data.show_ord_prom[item.pick_id]) { | |
| 1092 | + case 1: | |
| 1093 | + carr[i].goods_price = item.shop_price; | |
| 1094 | + break; | |
| 1095 | + case 2: | |
| 1096 | + carr[i].goods_price = item.goods_market_price; | |
| 1097 | + break; | |
| 1098 | + } | |
| 1099 | + | |
| 1100 | + if(!carr[i].prom_type) carr[i].prom_type=0; | |
| 1101 | + switch (parseInt(carr[i].prom_type)){ | |
| 1102 | + case 4: | |
| 1103 | + carr[i].is_integral_normal = 1; | |
| 1104 | + break; | |
| 1105 | + default: | |
| 1106 | + carr[i].is_pd_normal = 1; | |
| 1107 | + break; | |
| 1108 | + } | |
| 1109 | + carr[i].prom_type = 0; | |
| 1110 | + carr[i].discount_field = th.data.show_ord_prom[item.pick_id]; | |
| 1111 | + } | |
| 1112 | + } | |
| 1113 | + } | |
| 1114 | + | |
| 1070 | 1115 | //-- 如果是等级会员注册返回 -- | 
| 1071 | 1116 | if (is_card_back) { | 
| 1072 | 1117 | th.data.card_name = th.data.userinfo.card_field; | 
| ... | ... | @@ -1290,11 +1335,8 @@ Page({ | 
| 1290 | 1335 | if (ie.exp_type == 0 || ie.exp_type == 2) is_a_zt= 0; | 
| 1291 | 1336 | } | 
| 1292 | 1337 | th.setData({ is_all_zt: is_a_zt}); | 
| 1293 | - | |
| 1294 | 1338 | } | 
| 1295 | 1339 | |
| 1296 | - | |
| 1297 | - | |
| 1298 | 1340 | var cart_commission = 0; | 
| 1299 | 1341 | //-- 循环计算一下线下取价 -- | 
| 1300 | 1342 | for (var k = 0; k < arr.length; k++) { | 
| ... | ... | @@ -1344,6 +1386,26 @@ Page({ | 
| 1344 | 1386 | //-- 如果初始活动在计算的时候,是不满足的时候,就要把活动清理掉 -- | 
| 1345 | 1387 | var is_no_ok=arr[k].show_can_cx[key_o].cur_act.is_no_ok; | 
| 1346 | 1388 | if(is_no_ok==1){ | 
| 1389 | + | |
| 1390 | + let temp_id=arr[k].show_can_cx[key_o].cur_act.prom_id; | |
| 1391 | + switch (parseInt(arr[k].show_can_cx[key_o].cur_act.prom_type+'')){ | |
| 1392 | + case 3: | |
| 1393 | + var yhcx_act_map=th.data.yhcx_act_map?th.data.yhcx_act_map[temp_id]:null; | |
| 1394 | + if(yhcx_act_map && !yhcx_act_map.is_order_yh){ | |
| 1395 | + item1.is_no_order_yh=1; | |
| 1396 | + } | |
| 1397 | + break; | |
| 1398 | + case 7: | |
| 1399 | + var zhhe_act=th.data.zhhe_act_map?th.data.zhhe_act_map[temp_id]:null; | |
| 1400 | + if(zhhe_act && !zhhe_act.is_orderyh){ | |
| 1401 | + item1.is_no_order_yh=1; | |
| 1402 | + } | |
| 1403 | + break; | |
| 1404 | + } | |
| 1405 | + | |
| 1406 | + debugger; | |
| 1407 | + | |
| 1408 | + | |
| 1347 | 1409 | item1.prom_id = 0; | 
| 1348 | 1410 | item1.prom_type = 0; | 
| 1349 | 1411 | |
| ... | ... | @@ -1352,6 +1414,16 @@ Page({ | 
| 1352 | 1414 | item1.is_act_last=1; //这个是要在前端显示按钮切换的 | 
| 1353 | 1415 | } | 
| 1354 | 1416 | |
| 1417 | + }else{ | |
| 1418 | + | |
| 1419 | + let obj=arr[k].show_can_cx[key_o]; | |
| 1420 | + //不是优惠促销的不参与 不是订单促销参与(订单促销不是实收价的时候) | |
| 1421 | + let ck1=obj.no_cj_prom && obj.cur_act.prom_type==3; | |
| 1422 | + let ck2=th.data.can_use_ord_prom[arr[k].pickup_id]; | |
| 1423 | + if( !ck1 && !ck2){ | |
| 1424 | + item1.prom_id = arr[k].show_can_cx[key_o].cur_act.prom_id; | |
| 1425 | + item1.prom_type = arr[k].show_can_cx[key_o].cur_act.prom_type; | |
| 1426 | + } | |
| 1355 | 1427 | } | 
| 1356 | 1428 | } | 
| 1357 | 1429 | } | 
| ... | ... | @@ -1463,8 +1535,6 @@ Page({ | 
| 1463 | 1535 | |
| 1464 | 1536 | |
| 1465 | 1537 | } else { | 
| 1466 | - | |
| 1467 | - | |
| 1468 | 1538 | item1.act = th.data.zhhe_act_map[item1.prom_id]; | 
| 1469 | 1539 | } | 
| 1470 | 1540 | } | 
| ... | ... | @@ -1609,7 +1679,6 @@ Page({ | 
| 1609 | 1679 | prom_type: item[c].prom_type, | 
| 1610 | 1680 | prom_id: item[c].prom_id, | 
| 1611 | 1681 | } | 
| 1612 | - //单个就不调用了 | |
| 1613 | 1682 | // let req_d1 = { | 
| 1614 | 1683 | // user_id: getApp().globalData.user_id, goods_ids: [hr], store_id: os.stoid | 
| 1615 | 1684 | // } | 
| ... | ... | @@ -2094,6 +2163,8 @@ Page({ | 
| 2094 | 2163 | success: async function (tt) { | 
| 2095 | 2164 | if (tt.data.code == 0) { | 
| 2096 | 2165 | //t.data.data.shop_price = tt.data.data.prom_price; | 
| 2166 | + | |
| 2167 | + gd.shop_price_y=gd.shop_price; | |
| 2097 | 2168 | gd.shop_price=t.data.data.shop_price = tt.data.data.prom_user_price; | 
| 2098 | 2169 | th.data.ckeck_quan_price = 0; | 
| 2099 | 2170 | |
| ... | ... | @@ -2142,6 +2213,9 @@ Page({ | 
| 2142 | 2213 | } | 
| 2143 | 2214 | |
| 2144 | 2215 | |
| 2216 | + //用深拷贝把商品缓存起来,方便后面使用 | |
| 2217 | + th.data.old_bn_goods=ut.deep_cp(gd); | |
| 2218 | + | |
| 2145 | 2219 | th.setData({ | 
| 2146 | 2220 | bn_goods: gd, | 
| 2147 | 2221 | bn_pickname: gg.pick_name, | 
| ... | ... | @@ -2170,6 +2244,7 @@ Page({ | 
| 2170 | 2244 | ut.get_active_info(2,gd.prom_id,os.stoid,function(e){ | 
| 2171 | 2245 | |
| 2172 | 2246 | //t.data.data.shop_price = tt.data.data.prom_price; | 
| 2247 | + gd.shop_price_y=gd.shop_price; | |
| 2173 | 2248 | gd.shop_price=t.data.data.shop_price = tt.data.data.price; | 
| 2174 | 2249 | |
| 2175 | 2250 | t.data.data.fir_rate = tt.data.data.fir_rate; | 
| ... | ... | @@ -2209,6 +2284,10 @@ Page({ | 
| 2209 | 2284 | gd.is_xz_yh = 1; | 
| 2210 | 2285 | } | 
| 2211 | 2286 | |
| 2287 | + | |
| 2288 | + //用深拷贝把商品缓存起来,方便后面使用 | |
| 2289 | + th.data.old_bn_goods=ut.deep_cp(gd); | |
| 2290 | + | |
| 2212 | 2291 | th.setData({ | 
| 2213 | 2292 | bn_goods: gd, | 
| 2214 | 2293 | bn_pickname: gg.pick_name, | 
| ... | ... | @@ -2980,6 +3059,9 @@ Page({ | 
| 2980 | 3059 | } | 
| 2981 | 3060 | } | 
| 2982 | 3061 | |
| 3062 | + //重置订单促销判断累计 | |
| 3063 | + this.re_set_order_prom_map_ck(); | |
| 3064 | + | |
| 2983 | 3065 | for (var i in c_arr) { | 
| 2984 | 3066 | var cart_item = c_arr[i]; | 
| 2985 | 3067 | cart_item.prom_pt_json=[]; | 
| ... | ... | @@ -2996,6 +3078,7 @@ Page({ | 
| 2996 | 3078 | |
| 2997 | 3079 | } | 
| 2998 | 3080 | |
| 3081 | + | |
| 2999 | 3082 | //调用函数计算每件商品的单价 | 
| 3000 | 3083 | await th.calc_per(c_arr); | 
| 3001 | 3084 | |
| ... | ... | @@ -3009,7 +3092,7 @@ Page({ | 
| 3009 | 3092 | |
| 3010 | 3093 | //-- 经纬度不循环调用接口 -- | 
| 3011 | 3094 | var lon = 0; var lat = 0; | 
| 3012 | - //---循环购物车--- | |
| 3095 | + //---循环购物车,按照门店订单进行循环--- | |
| 3013 | 3096 | for (var i in c_arr) { | 
| 3014 | 3097 | //因为搭配购买也是再这里计算,搭配购的is_b_now==1 | 
| 3015 | 3098 | if (th.data.is_b_now == 0) { | 
| ... | ... | @@ -3047,15 +3130,15 @@ Page({ | 
| 3047 | 3130 | |
| 3048 | 3131 | var no_order_yh = 0; //-- 有些活动不能和订单优惠叠加的金额 -- | 
| 3049 | 3132 | var no_post_temp = 0; //-- 有些活动不能和包邮模板的金额 -- | 
| 3133 | + var no_post_temp_shop_price = 0; //-- 有些活动不能和包邮模板的金额 --因为订单促销有手店价取价 | |
| 3134 | + var no_post_temp_market_price = 0; //-- 有些活动不能和包邮模板的金额 --因为订单促销有市场价取价 | |
| 3050 | 3135 | |
| 3051 | 3136 | if (th.data.using_quan[pickid] != null && th.data.using_quan[pickid] != undefined) | 
| 3052 | 3137 | quan_no = th.data.using_quan[pickid].coupon_no; | 
| 3053 | 3138 | |
| 3054 | 3139 | //普通券的时候 | 
| 3055 | 3140 | if (quan_no && th.data.using_quan[pickid].isby != 1) { | 
| 3056 | - | |
| 3057 | 3141 | var IsUserWare=1; | 
| 3058 | - | |
| 3059 | 3142 | //---获取优惠券优惠--- | 
| 3060 | 3143 | await getApp().request.promiseGet("/api/weshop/couponList/getUseCouponPrice", { | 
| 3061 | 3144 | data: { | 
| ... | ... | @@ -3076,13 +3159,10 @@ Page({ | 
| 3076 | 3159 | quan_price=0; | 
| 3077 | 3160 | break; | 
| 3078 | 3161 | } | 
| 3079 | - | |
| 3080 | 3162 | } | 
| 3081 | - | |
| 3082 | 3163 | } | 
| 3083 | 3164 | }) | 
| 3084 | 3165 | |
| 3085 | - | |
| 3086 | 3166 | if(!IsUserWare){ | 
| 3087 | 3167 | |
| 3088 | 3168 | wx.showToast({ | 
| ... | ... | @@ -3112,6 +3192,11 @@ Page({ | 
| 3112 | 3192 | |
| 3113 | 3193 | //--------循环计算总价----------- | 
| 3114 | 3194 | for (var jc = 0; jc < item.length; jc++) { | 
| 3195 | + //如果item的prom_type==0,没有如果活动的时候,如果是优惠促销和组合促销不满足的时候 | |
| 3196 | + //或者是组合购和阶梯购多出来的商品 | |
| 3197 | + if (item[jc].prom_type == 0 && !item[jc].whsle_id && !item[jc].is_no_order_yh) { | |
| 3198 | + th.get_order_prom_map_ck(item[jc],pickid); | |
| 3199 | + } | |
| 3115 | 3200 | |
| 3116 | 3201 | if (item[jc].whsle_id > 0) { | 
| 3117 | 3202 | whsle_goods_price += item[jc].goods_price * item[jc].goods_num; | 
| ... | ... | @@ -3124,11 +3209,13 @@ Page({ | 
| 3124 | 3209 | if (item[jc].prom_type == 7 && th.data.zhhe_act_map && th.data.zhhe_act_map[item[jc].prom_id] | 
| 3125 | 3210 | && th.data.zhhe_act_map[item[jc].prom_id].is_orderyh) { | 
| 3126 | 3211 | is_no_zh = 1; | 
| 3212 | + th.get_order_prom_map_ck(item[jc],pickid); //有订单优惠叠加的时候,就要构建数据解救 | |
| 3127 | 3213 | } | 
| 3128 | 3214 | //阶梯购的商品,且有订单优惠的叠加,is_orderyh就是优惠叠加,就要累积阶梯促销的金额 | 
| 3129 | 3215 | if (item[jc].prom_type == 10 && ladder_prom_goods && ladder_prom_goods[item[jc].prom_id] | 
| 3130 | 3216 | && th.data.ladder_map[item[jc].prom_id].is_useorderyh) { | 
| 3131 | 3217 | is_no_zh = 1; | 
| 3218 | + th.get_order_prom_map_ck(item[jc],pickid); //有订单优惠叠加的时候,就要构建数据解救 | |
| 3132 | 3219 | } | 
| 3133 | 3220 | |
| 3134 | 3221 | if (is_no_zh) { | 
| ... | ... | @@ -3144,20 +3231,28 @@ Page({ | 
| 3144 | 3231 | var gd_price=item[jc].goods_price; | 
| 3145 | 3232 | if(item[jc].account_fir) gd_price=item[jc].account_fir; | 
| 3146 | 3233 | |
| 3147 | - | |
| 3148 | - //组合购和阶梯购是订单优惠是另外算的 | |
| 3234 | + //组合购和阶梯购是订单优惠是另外算的,不参与订单促销的时候 | |
| 3149 | 3235 | if(!item[jc].is_order_yh && !item[jc].whsle_id && item[jc].prom_type!=7 && item[jc].prom_type!=10){ | 
| 3150 | 3236 | no_order_yh+=gd_price * item[jc].goods_num; | 
| 3151 | 3237 | if(item[jc].quan_num) no_order_yh-=item[jc].quan_num; //券要把他补回去 | 
| 3152 | - | |
| 3153 | 3238 | } | 
| 3239 | + //参与订单促销的时候 | |
| 3240 | + if(item[jc].is_order_yh && !item[jc].whsle_id && item[jc].prom_type!=7 && item[jc].prom_type!=10){ | |
| 3241 | + th.get_order_prom_map_ck(item[jc],pickid); //有订单优惠叠加的时候,就要构建数据解救 | |
| 3242 | + } | |
| 3243 | + | |
| 3154 | 3244 | if(!item[jc].is_post_temp){ | 
| 3155 | 3245 | no_post_temp+=gd_price * item[jc].goods_num; | 
| 3246 | + no_post_temp_shop_price+=item[jc].shop_price * item[jc].goods_num; | |
| 3247 | + no_post_temp_market_price+=item[jc].goods_market_price * item[jc].goods_num; | |
| 3156 | 3248 | if(item[jc].quan_num) no_post_temp-=item[jc].quan_num; //券要把他补回去 | 
| 3157 | 3249 | } | 
| 3158 | 3250 | } | 
| 3251 | + | |
| 3159 | 3252 | } | 
| 3160 | 3253 | |
| 3254 | + | |
| 3255 | + | |
| 3161 | 3256 | //判断是不是有组合购的金额 | 
| 3162 | 3257 | var f_o_price = o_price; | 
| 3163 | 3258 | //如果又优惠的钱,就要减价 | 
| ... | ... | @@ -3236,21 +3331,33 @@ Page({ | 
| 3236 | 3331 | ord_prom_condition=o_price - quan_price - whsle_goods_price - no_order_yh; | 
| 3237 | 3332 | } | 
| 3238 | 3333 | |
| 3239 | - //---判断是不是有订单优惠--- | |
| 3240 | - await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { | |
| 3241 | - data: { store_id: os.stoid, orderAmount: parseFloat(ord_prom_condition).toFixed(2), user_id: getApp().globalData.user_id } | |
| 3242 | - }).then(res => { | |
| 3243 | - if (res.data.code == 0) { | |
| 3244 | - ord_prom = res.data.data; | |
| 3334 | + //判断订单促销的实收价的累计 | |
| 3335 | + if(!this.data.order_prom_map_ck[pickid]){ | |
| 3336 | + this.data.order_prom_map_ck[pickid]={ | |
| 3337 | + shop_price_all:0, //手店价的累计 | |
| 3338 | + market_price_all:0, //市场价的累计 | |
| 3339 | + goods_price_all:0, //实收价的累计 | |
| 3340 | + no_ord_price:0, //要累计上不参与订单促销的金额 | |
| 3341 | + goodsList:[], | |
| 3245 | 3342 | } | 
| 3246 | - }) | |
| 3343 | + } | |
| 3344 | + this.data.order_prom_map_ck[pickid].goods_price_all=ord_prom_condition; | |
| 3345 | + //---判断是不是有订单优惠--- | |
| 3346 | + // await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { | |
| 3347 | + // data: { store_id: os.stoid, orderAmount: parseFloat(ord_prom_condition).toFixed(2), user_id: getApp().globalData.user_id } | |
| 3348 | + // }).then(res => { | |
| 3349 | + // if (res.data.code == 0) { | |
| 3350 | + // ord_prom = res.data.data; | |
| 3351 | + // } | |
| 3352 | + // }) | |
| 3353 | + //获取当前时间段的进行中的订单促销 | |
| 3354 | + ord_prom=await th.get_cur_ord_prom(pickid); | |
| 3247 | 3355 | |
| 3248 | 3356 | //如果有使用优惠券,如何订单促销有控制使用优惠券不参与此活动的话 | 
| 3249 | 3357 | if(quan_price>0 && ord_prom && ord_prom.is_xz_yh ){ | 
| 3250 | 3358 | ord_prom=null; | 
| 3251 | 3359 | } | 
| 3252 | 3360 | |
| 3253 | - | |
| 3254 | 3361 | //--如果是物流,且选择了地址,就要开始显示包邮券,且包邮券也已经优惠了优惠活动的金额-- | 
| 3255 | 3362 | if (cart_item.exp_type == 0 && th.data.user_addr != null && !cart_item.is_xz_yh) { | 
| 3256 | 3363 | |
| ... | ... | @@ -3300,10 +3407,23 @@ Page({ | 
| 3300 | 3407 | |
| 3301 | 3408 | //-- 如果没有订单优惠,或者订单优惠中有勾选包邮模板 -- | 
| 3302 | 3409 | if (!ord_prom || ord_prom.is_post_temp) { | 
| 3303 | - var user_addr = th.data.user_addr; | |
| 3410 | + | |
| 3411 | + let user_addr = th.data.user_addr; | |
| 3412 | + let c_wuliu=parseFloat(o_price - quan_price - whsle_goods_price - no_post_temp).toFixed(2); | |
| 3413 | + | |
| 3414 | + //-- 因为订单促销的取价规则,所以要判断一下各种情况 -- | |
| 3415 | + switch (ord_prom && ord_prom.discount_field){ | |
| 3416 | + case 1: | |
| 3417 | + c_wuliu=parseFloat(ord_prom.real_condition_price - whsle_shop_price - no_post_temp_shop_price).toFixed(2); | |
| 3418 | + break; | |
| 3419 | + case 2: | |
| 3420 | + c_wuliu=parseFloat(ord_prom.real_condition_price - whsle_market_price - no_post_temp_market_price).toFixed(2); | |
| 3421 | + break; | |
| 3422 | + } | |
| 3423 | + | |
| 3304 | 3424 | var req_d = { | 
| 3305 | 3425 | province: user_addr.province, city: user_addr.city, district: user_addr.district, | 
| 3306 | - wuliu: parseFloat(o_price - quan_price - whsle_goods_price - no_post_temp).toFixed(2), store_id: os.stoid | |
| 3426 | + wuliu: c_wuliu, store_id: os.stoid | |
| 3307 | 3427 | } | 
| 3308 | 3428 | await getApp().request.promisePost("/api/weshop/order/areaFreight", { | 
| 3309 | 3429 | is_json: 1, data: req_d | 
| ... | ... | @@ -3313,7 +3433,6 @@ Page({ | 
| 3313 | 3433 | } | 
| 3314 | 3434 | } | 
| 3315 | 3435 | |
| 3316 | - | |
| 3317 | 3436 | //如果是包邮券的时候,要看看券的情况 | 
| 3318 | 3437 | if (quan_no && th.data.using_quan[pickid].isby == 1) { | 
| 3319 | 3438 | var quan = th.data.using_quan[pickid]; | 
| ... | ... | @@ -3504,24 +3623,25 @@ Page({ | 
| 3504 | 3623 | } | 
| 3505 | 3624 | |
| 3506 | 3625 | var order_m = 0; | 
| 3507 | - | |
| 3508 | 3626 | //么有使用券,或者活动没有限制使用优惠券 | 
| 3509 | 3627 | if (ord_prom && (quan_price <= 0 || !ord_prom.is_xz_yh)) { | 
| 3510 | - order_prom_id = ord_prom['id']; | |
| 3511 | - switch (ord_prom['type']) { | |
| 3512 | - case 0: | |
| 3513 | - order_m = Math.round(o_condition * ord_prom['expression']) / 100;//满额打折 | |
| 3514 | - order_prom_amount = (o_condition - order_m).toFixed(2); | |
| 3515 | - break; | |
| 3516 | - case 1: | |
| 3517 | - //order_m = o_condition - ord_prom['expression'];//满额优惠金额 | |
| 3518 | - var bs = 1; | |
| 3519 | - if (ord_prom.is_bz) { | |
| 3520 | - bs = Math.floor(o_condition / ord_prom.money); | |
| 3521 | - } | |
| 3522 | - order_prom_amount = ord_prom['expression']; | |
| 3523 | - break; | |
| 3524 | - } | |
| 3628 | + order_prom_id = ord_prom['id']; | |
| 3629 | + //-- 订单促销是按照实收价格进行计算的时候 -- | |
| 3630 | + switch (ord_prom['type']) { | |
| 3631 | + case 0: | |
| 3632 | + order_m = Math.round(o_condition * ord_prom['expression']) / 100;//满额打折 | |
| 3633 | + order_prom_amount = (o_condition - order_m).toFixed(2); | |
| 3634 | + break; | |
| 3635 | + case 1: | |
| 3636 | + //order_m = o_condition - ord_prom['expression'];//满额优惠金额 | |
| 3637 | + var bs = 1; | |
| 3638 | + if (ord_prom.is_bz) { | |
| 3639 | + bs = Math.floor(o_condition / ord_prom.money); | |
| 3640 | + } | |
| 3641 | + order_prom_amount = ord_prom['expression']; | |
| 3642 | + break; | |
| 3643 | + } | |
| 3644 | + | |
| 3525 | 3645 | } | 
| 3526 | 3646 | |
| 3527 | 3647 | cart_item.order_prom_amount = 0; | 
| ... | ... | @@ -3930,7 +4050,7 @@ Page({ | 
| 3930 | 4050 | //---如果有选择优惠券的情况下--- | 
| 3931 | 4051 | var quan_price = 0, bn_pick = th.data.bn_pick; | 
| 3932 | 4052 | var quan_no = null; | 
| 3933 | - if (th.data.using_quan[bn_pick] != null && th.data.using_quan[bn_pick] != undefined) | |
| 4053 | + if (th.data.using_quan && th.data.using_quan[bn_pick] != null && th.data.using_quan[bn_pick] != undefined) | |
| 3934 | 4054 | quan_no = th.data.using_quan[bn_pick].coupon_no; | 
| 3935 | 4055 | |
| 3936 | 4056 | if (quan_no) { | 
| ... | ... | @@ -3964,15 +4084,22 @@ Page({ | 
| 3964 | 4084 | var ord_prom = null; | 
| 3965 | 4085 | var is_ord_prom_post = 0; | 
| 3966 | 4086 | |
| 3967 | - if (condition > 0 && th.data.bn_is_order_yh && !th.data.bn_goods.whsle_id) { | |
| 3968 | - await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { | |
| 3969 | - data: { store_id: os.stoid, orderAmount: condition, user_id: getApp().globalData.user_id } | |
| 3970 | - }).then(res => { | |
| 3971 | - if (res.data.code == 0) { | |
| 3972 | - var data = res.data.data; | |
| 3973 | - ord_prom = data; | |
| 3974 | - } | |
| 3975 | - }) | |
| 4087 | + //一件代发商品不参与订单优惠, 本身商品的活动也有要不要参与优惠促销的设置bn_is_order_yh | |
| 4088 | + if (th.data.bn_is_order_yh && !th.data.bn_goods.whsle_id) { | |
| 4089 | + | |
| 4090 | + th.set_by_now_ord_prom(th.data.bn_goods); | |
| 4091 | + th.data.order_prom_map_ck[bn_pick].goods_price_all=condition; | |
| 4092 | + | |
| 4093 | + // await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { | |
| 4094 | + // data: { store_id: os.stoid, orderAmount: condition, user_id: getApp().globalData.user_id } | |
| 4095 | + // }).then(res => { | |
| 4096 | + // if (res.data.code == 0) { | |
| 4097 | + // var data = res.data.data; | |
| 4098 | + // ord_prom = data; | |
| 4099 | + // } | |
| 4100 | + // }) | |
| 4101 | + ord_prom=await th.get_cur_ord_prom(bn_pick); | |
| 4102 | + | |
| 3976 | 4103 | if (ord_prom && ord_prom.is_post_temp) { | 
| 3977 | 4104 | is_ord_prom_post = 1; | 
| 3978 | 4105 | } | 
| ... | ... | @@ -4717,6 +4844,9 @@ Page({ | 
| 4717 | 4844 | if (th.data.wu_arr == null || th.data.wu_arr.length <= 0) { | 
| 4718 | 4845 | getApp().my_warnning("读取物流失败", 0, th); | 
| 4719 | 4846 | th.data.is_summit_ing = 0; | 
| 4847 | + th.setData({ | |
| 4848 | + submit: 0 | |
| 4849 | + }) | |
| 4720 | 4850 | return false; | 
| 4721 | 4851 | } | 
| 4722 | 4852 | |
| ... | ... | @@ -4853,6 +4983,29 @@ Page({ | 
| 4853 | 4983 | 'prom_id': th.data.bn_goods.prom_id, //促销活动id | 
| 4854 | 4984 | }; | 
| 4855 | 4985 | |
| 4986 | + //如果有参与非实收的订单促销,那么就相当于是普通购买 | |
| 4987 | + if (th.data.can_use_ord_prom[th.data.bn_pick]) { | |
| 4988 | + goods.is_pd_normal = 1; | |
| 4989 | + goods.discount_field = th.data.show_ord_prom[th.data.bn_pick]; | |
| 4990 | + | |
| 4991 | + //如果是指定门店,就要判断 | |
| 4992 | + if (th.data.bn_goods.pick_group_ids) { | |
| 4993 | + var idx0 = th.data.bn_goods.pick_up_lists.findIndex(function (e) { | |
| 4994 | + return e.pickup_id == th.data.bn_pick; | |
| 4995 | + }) | |
| 4996 | + if (idx0 < 0) { | |
| 4997 | + getApp().my_warnning(th.data.bn_goods.goods_name + "的门店不可售", 0, th); | |
| 4998 | + th.data.is_summit_ing = 0; | |
| 4999 | + th.setData({ | |
| 5000 | + submit: 0 | |
| 5001 | + }) | |
| 5002 | + return false; | |
| 5003 | + } | |
| 5004 | + } | |
| 5005 | + } | |
| 5006 | + | |
| 5007 | + | |
| 5008 | + | |
| 4856 | 5009 | if (th.data.bn_goods.whsle_id) { | 
| 4857 | 5010 | item.is_whsle = 1; | 
| 4858 | 5011 | item.whsle_id = th.data.bn_goods.whsle_id; | 
| ... | ... | @@ -4903,11 +5056,17 @@ Page({ | 
| 4903 | 5056 | if(mo_num>goods.goods_num){ | 
| 4904 | 5057 | getApp().confirmBox(goods.goods_name + "的未达到起订数量"); | 
| 4905 | 5058 | th.data.is_summit_ing = 0; | 
| 5059 | + th.setData({ | |
| 5060 | + submit: 0 | |
| 5061 | + }) | |
| 4906 | 5062 | return false; | 
| 4907 | 5063 | } | 
| 4908 | 5064 | if(steep>1 && (goods.goods_num-mo_num)%steep!=0 ){ | 
| 4909 | 5065 | getApp().confirmBox(goods.goods_name + "的购买的数量不是起订量的倍数"); | 
| 4910 | 5066 | th.data.is_summit_ing = 0; | 
| 5067 | + th.setData({ | |
| 5068 | + submit: 0 | |
| 5069 | + }) | |
| 4911 | 5070 | return false; | 
| 4912 | 5071 | } | 
| 4913 | 5072 | } | 
| ... | ... | @@ -4922,6 +5081,9 @@ Page({ | 
| 4922 | 5081 | if (!isok) { | 
| 4923 | 5082 | getApp().confirmBox("商品的门店库存不足"); | 
| 4924 | 5083 | th.data.is_summit_ing = 0; | 
| 5084 | + th.setData({ | |
| 5085 | + submit: 0 | |
| 5086 | + }) | |
| 4925 | 5087 | return false; | 
| 4926 | 5088 | } | 
| 4927 | 5089 | } | 
| ... | ... | @@ -5040,6 +5202,9 @@ Page({ | 
| 5040 | 5202 | if (th.data.wu_arr == null || th.data.wu_arr.length <= 0) { | 
| 5041 | 5203 | th.data.is_summit_ing = 0; | 
| 5042 | 5204 | getApp().confirmBox("读取物流失败"); | 
| 5205 | + th.setData({ | |
| 5206 | + submit: 0 | |
| 5207 | + }) | |
| 5043 | 5208 | return false; | 
| 5044 | 5209 | } | 
| 5045 | 5210 | } | 
| ... | ... | @@ -5246,6 +5411,26 @@ Page({ | 
| 5246 | 5411 | 'store_id': oo.stoid, | 
| 5247 | 5412 | }; | 
| 5248 | 5413 | |
| 5414 | + //订单促销取价规则使用 | |
| 5415 | + if (g_item.discount_field) { | |
| 5416 | + goods.discount_field =g_item.discount_field; | |
| 5417 | + //此时要判断商品的门店是不是匹配 | |
| 5418 | + if(g_item.prom_type==0 && g_item.pick_group_ids){ | |
| 5419 | + var idx0 = g_item.pick_up_lists.findIndex(function (e) { | |
| 5420 | + return e.pickup_id == item.pickup_id; | |
| 5421 | + }) | |
| 5422 | + if (idx0 < 0) { | |
| 5423 | + getApp().my_warnning(g_item.goods_name + "的门店不可售", 0, th); | |
| 5424 | + th.data.is_summit_ing = 0; | |
| 5425 | + th.setData({ | |
| 5426 | + submit: 0 | |
| 5427 | + }) | |
| 5428 | + return false; | |
| 5429 | + } | |
| 5430 | + } | |
| 5431 | + | |
| 5432 | + } | |
| 5433 | + | |
| 5249 | 5434 | if (g_item.is_pd_normal) { | 
| 5250 | 5435 | goods.is_pd_normal = 1; | 
| 5251 | 5436 | } | 
| ... | ... | @@ -6531,6 +6716,7 @@ Page({ | 
| 6531 | 6716 | get_cart_quan: async function (order_prom_list_cart) { | 
| 6532 | 6717 | var th = this; | 
| 6533 | 6718 | var user_id = getApp().globalData.user_id; | 
| 6719 | + | |
| 6534 | 6720 | //等待值的出现 | 
| 6535 | 6721 | //getApp().waitfor2(this,"g_cart_q_time","order_prom_list_cart",async function () { | 
| 6536 | 6722 | //var arr=th.data.order_prom_list_cart; | 
| ... | ... | @@ -6542,6 +6728,12 @@ Page({ | 
| 6542 | 6728 | //------------开始计算使用优惠券相关------------ | 
| 6543 | 6729 | for (var ind in arr) { | 
| 6544 | 6730 | var ep = arr[ind]; | 
| 6731 | + | |
| 6732 | + //如果门店订单使用订单促销(此订单促销取价规则不是实收价的时候) | |
| 6733 | + if(th.data.can_use_ord_prom[ep.pickup_id]){ | |
| 6734 | + continue; | |
| 6735 | + } | |
| 6736 | + | |
| 6545 | 6737 | var goodlist = ep.goods; | 
| 6546 | 6738 | var pickup_id = ep.pickup_id; | 
| 6547 | 6739 | //--更优惠券抵用有关,立即购买的,如果是购物车,如果有等级价还有考虑等级价的东西 | 
| ... | ... | @@ -8423,10 +8615,13 @@ Page({ | 
| 8423 | 8615 | |
| 8424 | 8616 | var cx_prom_group=this.data.cartlist[idx].show_can_cx[gd_key].act_arr; | 
| 8425 | 8617 | |
| 8618 | + //-- 切换活动的时候,让订单促销参与不选中 -- | |
| 8619 | + let tt_wd="can_use_ord_prom["+pk+"]"; | |
| 8426 | 8620 | th.setData({ | 
| 8427 | 8621 | send_lb:{}, | 
| 8428 | 8622 | month_lb:{}, | 
| 8429 | - send_gf:{} | |
| 8623 | + send_gf:{}, | |
| 8624 | + [tt_wd]:0 | |
| 8430 | 8625 | }) | 
| 8431 | 8626 | |
| 8432 | 8627 | th.data.prom_goods_map={}; | 
| ... | ... | @@ -8635,6 +8830,9 @@ Page({ | 
| 8635 | 8830 | |
| 8636 | 8831 | //--- 不参与优惠促销的开关 --- | 
| 8637 | 8832 | no_cj_prom: function (e) { | 
| 8833 | + //避免重复点击 | |
| 8834 | + if(this.data.submit) return false; | |
| 8835 | + this.setData({ submit: 1,same_ok:1 }); | |
| 8638 | 8836 | |
| 8639 | 8837 | //重新调用cart_next,进行下一步计算 | 
| 8640 | 8838 | wx.showLoading({ | 
| ... | ... | @@ -8719,16 +8917,245 @@ Page({ | 
| 8719 | 8917 | if(!goods[ig].is_gift){ | 
| 8720 | 8918 | n_goods.push(goods[ig]); | 
| 8721 | 8919 | } | 
| 8722 | - } | |
| 8920 | + } | |
| 8921 | + | |
| 8723 | 8922 | //原始数据要有深拷贝不能有地址的牵连 | 
| 8724 | 8923 | th.data.cartlist_y = JSON.parse(JSON.stringify(n_goods)) | 
| 8924 | + //重新调用cart_next,进行下一步计算 | |
| 8925 | + wx.showLoading({ | |
| 8926 | + title: "处理中.", | |
| 8927 | + }) | |
| 8928 | + this.get_cart_next(null, 1, {prom_type: 0, prom_id: 0}); | |
| 8929 | + | |
| 8930 | + }, | |
| 8931 | + | |
| 8932 | + //---订单促销累计的数据结构的构建,购物车计算流程的那一部分 | |
| 8933 | + get_order_prom_map_ck(item,pickid) { | |
| 8725 | 8934 | |
| 8935 | + //赠品不计算 | |
| 8936 | + if(item.is_gift) return false; | |
| 8726 | 8937 | |
| 8938 | + var order_prom_map_ck= this.data.order_prom_map_ck; | |
| 8939 | + if(!order_prom_map_ck[pickid]){ | |
| 8940 | + order_prom_map_ck[pickid]={ | |
| 8941 | + shop_price_all:0, //手店价的累计 | |
| 8942 | + market_price_all:0, //市场价的累计 | |
| 8943 | + goods_price_all:0, //实收价的累计 | |
| 8944 | + no_ord_price:0, //要累计上不参与订单促销的金额 | |
| 8945 | + goodsList:[], | |
| 8946 | + } | |
| 8947 | + } | |
| 8948 | + | |
| 8949 | + let pk_ord_map=order_prom_map_ck[pickid]; | |
| 8950 | + pk_ord_map.shop_price_all += item.shop_price * item.goods_num; | |
| 8951 | + pk_ord_map.market_price_all += item.goods_market_price * item.goods_num; | |
| 8952 | + | |
| 8953 | + let ite = { | |
| 8954 | + id: item.id, | |
| 8955 | + goods_id: item.goods_id, | |
| 8956 | + goods_num: item.goods_num, | |
| 8957 | + prom_type: item.prom_type | |
| 8958 | + } | |
| 8959 | + pk_ord_map.goodsList.push(ite); | |
| 8960 | + }, | |
| 8961 | + | |
| 8962 | + | |
| 8963 | + //-- 秒杀和团购使用 -- | |
| 8964 | + set_by_now_ord_prom(item){ | |
| 8965 | + let pickid=this.data.bn_pick; | |
| 8966 | + let order_prom_map_ck= this.data.order_prom_map_ck; | |
| 8967 | + order_prom_map_ck[pickid]={ | |
| 8968 | + shop_price_all:0, //手店价的累计 | |
| 8969 | + market_price_all:0, //市场价的累计 | |
| 8970 | + goods_price_all:0, //实收价的累计 | |
| 8971 | + no_ord_price:0, //要累计上不参与订单促销的金额 | |
| 8972 | + goodsList:[], | |
| 8973 | + } | |
| 8727 | 8974 | |
| 8975 | + let pk_ord_map=order_prom_map_ck[pickid]; | |
| 8976 | + pk_ord_map.shop_price_all += item.shop_price_y * item.buynum; | |
| 8977 | + pk_ord_map.market_price_all += item.goods_market_price * item.buynum; | |
| 8978 | + | |
| 8979 | + }, | |
| 8980 | + | |
| 8981 | + //重置订单促销判断累计 | |
| 8982 | + re_set_order_prom_map_ck() { | |
| 8983 | + this.data.order_prom_map_ck = {} | |
| 8984 | + }, | |
| 8985 | + | |
| 8986 | + //获取当前进行中订单促销,同时带入相应的金额判断订单促销是不是运行,同时订单促销的条件不是实收价判断的话,默认的时候,订单促销是不参与运算的 | |
| 8987 | + async get_cur_ord_prom(pickid) { | |
| 8988 | + let ord_prom = null; | |
| 8989 | + let order_prom_map_ck = this.data.order_prom_map_ck[pickid]; | |
| 8990 | + if(!order_prom_map_ck) return null; | |
| 8991 | + | |
| 8992 | + //获取当前进行中的优惠促销 | |
| 8993 | + await getApp().request.promiseGet("/api/weshop/promorder/getPromOrder", { | |
| 8994 | + data: { | |
| 8995 | + store_id: os.stoid, | |
| 8996 | + orderAmount: -1, //-1为不判断金额条件 | |
| 8997 | + user_id: getApp().globalData.user_id | |
| 8998 | + } | |
| 8999 | + }).then(res => { | |
| 9000 | + if (res.data.code == 0) { | |
| 9001 | + ord_prom = res.data.data; | |
| 9002 | + } | |
| 9003 | + }) | |
| 9004 | + | |
| 9005 | + if (!ord_prom) return null; | |
| 9006 | + //用于计算订单促销的金额 | |
| 9007 | + let calculate_price=0; | |
| 9008 | + | |
| 9009 | + let txt1='show_ord_prom['+pickid+']'; | |
| 9010 | + //-- 此时判断活动的金额满足与否 -- | |
| 9011 | + switch (ord_prom.discount_field) { | |
| 9012 | + //实收价的时候 | |
| 9013 | + case 0: | |
| 9014 | + //要先还原 | |
| 9015 | + this.setData({ | |
| 9016 | + [txt1]: 0 | |
| 9017 | + }); | |
| 9018 | + | |
| 9019 | + if (ord_prom.money > order_prom_map_ck.goods_price_all){ | |
| 9020 | + return null; | |
| 9021 | + } | |
| 9022 | + break; | |
| 9023 | + //手店价的时候 | |
| 9024 | + case 1: | |
| 9025 | + if (ord_prom.money > order_prom_map_ck.shop_price_all){ | |
| 9026 | + //要先还原 | |
| 9027 | + this.setData({ | |
| 9028 | + [txt1]: 0 | |
| 9029 | + }); | |
| 9030 | + return null; | |
| 9031 | + } | |
| 9032 | + //要显示订单促销使用的按钮 | |
| 9033 | + this.setData({ | |
| 9034 | + [txt1]: 1 | |
| 9035 | + }); | |
| 9036 | + break; | |
| 9037 | + //市场价的时候 | |
| 9038 | + case 2: | |
| 9039 | + if (ord_prom.money > order_prom_map_ck.market_price_all){ | |
| 9040 | + //要先还原 | |
| 9041 | + this.setData({ | |
| 9042 | + [txt1]: 0 | |
| 9043 | + }); | |
| 9044 | + return null; | |
| 9045 | + } | |
| 9046 | + //要显示订单促销使用的按钮 | |
| 9047 | + this.setData({ | |
| 9048 | + [txt1]: 2 | |
| 9049 | + }); | |
| 9050 | + break; | |
| 9051 | + } | |
| 9052 | + //如果订单促销是不参与订单促销的,那么就直接返回null(订单促销不是实收价的时候) | |
| 9053 | + if(ord_prom.discount_field>0 && !this.data.can_use_ord_prom[pickid]){ | |
| 9054 | + return null; | |
| 9055 | + } | |
| 9056 | + return ord_prom; | |
| 9057 | + }, | |
| 9058 | + | |
| 9059 | + //设置能够参与订单促销 | |
| 9060 | + set_can_use_ord_prom: function (e) { | |
| 9061 | + | |
| 9062 | + if(this.data.submit) return false; | |
| 9063 | + this.setData({ submit: 1,same_ok:1 }); | |
| 9064 | + | |
| 9065 | + let pickid = e.currentTarget.dataset.pd; | |
| 9066 | + let txt = 'can_use_ord_prom[' + pickid + ']'; | |
| 9067 | + let can_use = this.data.can_use_ord_prom[pickid] ? this.data.can_use_ord_prom[pickid] : 0; | |
| 9068 | + this.setData({ | |
| 9069 | + [txt]: !can_use | |
| 9070 | + }) | |
| 9071 | + | |
| 9072 | + //购物车进行还原,一下数据的清理的必须的 | |
| 9073 | + this.setData({ | |
| 9074 | + send_lb: {}, | |
| 9075 | + month_lb: {}, | |
| 9076 | + send_gf: {} | |
| 9077 | + }) | |
| 9078 | + //清空优惠促销的内容 | |
| 9079 | + this.data.prom_goods_map = {}; | |
| 9080 | + | |
| 9081 | + //处理一下商品 | |
| 9082 | + let goods0 = JSON.parse(JSON.stringify(this.data.cartlist_y)); | |
| 9083 | + let goods = []; | |
| 9084 | + for (var ik = 0; ik < goods0.length; ik++) { | |
| 9085 | + var item_c = goods0[ik]; | |
| 9086 | + if(item_c.pick_id == pickid && item_c.is_collocation) continue; | |
| 9087 | + if(item_c.is_gift) continue | |
| 9088 | + goods.push(item_c); | |
| 9089 | + } | |
| 9090 | + | |
| 9091 | + //原始数据要有深拷贝不能有地址的牵连 | |
| 9092 | + this.data.cartlist_y = JSON.parse(JSON.stringify(goods)) | |
| 9093 | + //重新调用cart_next,进行下一步计算 | |
| 9094 | + wx.showLoading({ | |
| 9095 | + title: "处理中.", | |
| 9096 | + mark:true | |
| 9097 | + }) | |
| 9098 | + //-- 重新计算一下价格 -- | |
| 9099 | +>>>>>>> dev_oa_fuordercx | |
| 8728 | 9100 | this.get_cart_next(null, 1, {prom_type: 0, prom_id: 0}); | 
| 9101 | + }, | |
| 9102 | + | |
| 9103 | + //立即购买的时候,点击订单促销的参与 | |
| 9104 | + set_can_use_ord_prom_now:function (e){ | |
| 8729 | 9105 | |
| 9106 | + if(this.data.submit) return false; | |
| 9107 | + this.setData({ submit: 1,same_ok:1 }); | |
| 9108 | + | |
| 9109 | + let pickid=this.data.bn_pick; | |
| 9110 | + let txt = 'can_use_ord_prom[' + pickid + ']'; | |
| 9111 | + let can_use = this.data.can_use_ord_prom[pickid] ? this.data.can_use_ord_prom[pickid] : 0; | |
| 9112 | + this.setData({ | |
| 9113 | + [txt]: !can_use | |
| 9114 | + }) | |
| 9115 | + | |
| 9116 | + let th=this; | |
| 9117 | + let good=th.data.bn_goods; | |
| 9118 | + | |
| 9119 | + //如果有要参与订单促销的按钮点击后,要修改商品的价格 | |
| 9120 | + if(th.data.can_use_ord_prom[pickid]){ | |
| 9121 | + let discount_field=th.data.show_ord_prom[pickid]; | |
| 9122 | + switch (discount_field){ | |
| 9123 | + case 1: | |
| 9124 | + good.shop_price=good.shop_price_y; | |
| 9125 | + break; | |
| 9126 | + case 2: | |
| 9127 | + good.shop_price=good.market_price; | |
| 9128 | + break; | |
| 9129 | + } | |
| 9130 | + | |
| 9131 | + //-- 转成普通商品 --- | |
| 9132 | + good.prom_type=0; | |
| 9133 | + good.prom_id=0; | |
| 9134 | + | |
| 9135 | + th.setData({ | |
| 9136 | + selected_quan_list: null, | |
| 9137 | + using_quan:{} | |
| 9138 | + }) | |
| 9139 | + | |
| 9140 | + }else{ | |
| 9141 | + good=ut.deep_cp(th.data.old_bn_goods); | |
| 9142 | + } | |
| 8730 | 9143 | |
| 9144 | + th.setData({ | |
| 9145 | + bn_goods:good | |
| 9146 | + }) | |
| 9147 | + wx.showLoading({ | |
| 9148 | + title: "处理中.", | |
| 9149 | + mark:true | |
| 9150 | + }) | |
| 9151 | + th.calculatePrice2() | |
| 9152 | + | |
| 9153 | + if(!th.data.can_use_ord_prom[pickid]){ | |
| 9154 | + th.get_buy_now_quan(); | |
| 9155 | + } | |
| 8731 | 9156 | } | 
| 8732 | 9157 | |
| 8733 | 9158 | |
| 9159 | + | |
| 9160 | + | |
| 8734 | 9161 | }); | ... | ... | 
packageE/pages/cart/cart2/cart2.wxml
| ... | ... | @@ -104,9 +104,9 @@ | 
| 104 | 104 | <block><text>{{filters.show_gui_ge(items.goods_spec,items.goods_color)}}</text></block> | 
| 105 | 105 | </view> | 
| 106 | 106 | </view> | 
| 107 | - | |
| 108 | 107 | <!-----商品名称规格------> | 
| 109 | 108 | <view class="order-num flex-space-between"> | 
| 109 | + <!-- 动态显示商品的价格 --> | |
| 110 | 110 | <view wx:if="{{items.prom_type==10}}" class="co-red">¥<text class="fs36">{{filters.toFix(items.goods_price,2)}}</text><text>({{items.discount}}折)</text></view> | 
| 111 | 111 | <view wx:else class="co-red">¥<text class="fs36">{{filters.toFix(items.goods_price,2)}}</text></view> | 
| 112 | 112 | <view style="color: red;" wx:if="{{items.use_commission && items.use_commission*1>0}}">佣金:{{filters.toFix(items.use_commission/items.goods_num,2)}}*{{items.goods_num}}</view> | 
| ... | ... | @@ -171,8 +171,10 @@ | 
| 171 | 171 | </block> | 
| 172 | 172 | </block> | 
| 173 | 173 | |
| 174 | - <block wx:if="{{!items.is_gift}}"> | |
| 175 | - <view class="set-mes" wx:if="{{items.prom_type==3 || (items.prom_type==0 && item.show_can_cx[items.goods_id].no_cj_prom && item.show_can_cx[items.goods_id].sele_prom_type==3) }}"> | |
| 174 | + <block wx:if="{{!items.is_gift}}"> | |
| 175 | + <!-- 如果不是点击使用订单促销的话 --> | |
| 176 | + <block wx:if="{{!can_use_ord_prom[item.pickup_id]}}"> | |
| 177 | + <view class="set-mes" wx:if="{{items.prom_type==3 || (items.prom_type==0 && item.show_can_cx[items.goods_id].no_cj_prom && item.show_can_cx[items.goods_id].sele_prom_type==3) }}"> | |
| 176 | 178 | <view class="use-item" data-pidx="{{pidx}}" data-can_cx_idx="{{items.goods_id}}" bindtap='no_cj_prom'> | 
| 177 | 179 | <icon color="{{!item.show_can_cx[items.goods_id].no_cj_prom?'red':'gray'}}" size="16" type="success"></icon> | 
| 178 | 180 | <view class="yu_er">参与优惠活动</view> | 
| ... | ... | @@ -234,12 +236,15 @@ | 
| 234 | 236 | </block> | 
| 235 | 237 | |
| 236 | 238 | |
| 237 | - <view class="set-mes" wx:if="{{pitem.is_duo_gd && pitem.sele_prom_type==3 && util.check_is_last(index,items.goods_id) && !items.is_gift }}"> | |
| 238 | - <view class="use-item" data-pidx="{{pidx}}" data-can_cx_idx="{{index}}" bindtap='no_cj_prom'> | |
| 239 | - <icon color="{{!pitem.no_cj_prom?'red':'gray'}}" size="16" type="success"></icon> | |
| 240 | - <view class="yu_er">参与优惠活动</view> | |
| 239 | + | |
| 240 | + <block wx:if="{{!can_use_ord_prom[item.pickup_id]}}"> | |
| 241 | + <view class="set-mes" wx:if="{{pitem.is_duo_gd && pitem.sele_prom_type==3 && util.check_is_last(index,items.goods_id) }}"> | |
| 242 | + <view class="use-item" data-pidx="{{pidx}}" data-can_cx_idx="{{index}}" bindtap='no_cj_prom'> | |
| 243 | + <icon color="{{!pitem.no_cj_prom?'red':'gray'}}" size="16" type="success"></icon> | |
| 244 | + <view class="yu_er">参与优惠活动</view> | |
| 245 | + </view> | |
| 241 | 246 | </view> | 
| 242 | - </view> | |
| 247 | + </block> | |
| 243 | 248 | |
| 244 | 249 | </block> | 
| 245 | 250 | </block> | 
| ... | ... | @@ -348,6 +353,14 @@ | 
| 348 | 353 | </block> | 
| 349 | 354 | </view> | 
| 350 | 355 | |
| 356 | + <!-- 订单促销取价规则的优化 --> | |
| 357 | + <view class="set-mes" wx:if="{{show_ord_prom[item.pickup_id]}}"> | |
| 358 | + <view class="use-item" > | |
| 359 | + <icon data-pd="{{item.pickup_id}}" bindtap='set_can_use_ord_prom' color="{{can_use_ord_prom[item.pickup_id]?'red':'gray'}}" size="16" type="success"></icon> | |
| 360 | + <view data-pd="{{item.pickup_id}}" bindtap='set_can_use_ord_prom' class="yu_er">参与订单促销</view> | |
| 361 | + </view> | |
| 362 | + </view> | |
| 363 | + | |
| 351 | 364 | <!-----使用优惠券------> | 
| 352 | 365 | <view class="xc-coupon-frame flex-center" data-bn="0" bindtap="open_coupon_list" wx:if="{{!(yh_is_xz_yh[item.pickup_id]) && ((item.quan_list && item.quan_list.length>0 ) || get_by_quan_list_cart[item.pickup_id]!=null && item.can_num>0)}}" data-cind="{{pidx}}" data-pickid="{{item.pickup_id}}"> | 
| 353 | 366 | <view class="work-frame flex-space-between"> | 
| ... | ... | @@ -679,6 +692,14 @@ | 
| 679 | 692 | <icon color="#f23030" size="16" type="info"></icon>{{order.store_prom}} | 
| 680 | 693 | </view> | 
| 681 | 694 | |
| 695 | + <!-- 订单促销取价规则的优化 --> | |
| 696 | + <view class="set-mes" wx:if="{{show_ord_prom[bn_pick]}}"> | |
| 697 | + <view class="use-item" > | |
| 698 | + <icon bindtap='set_can_use_ord_prom_now' color="{{can_use_ord_prom[bn_pick]?'red':'gray'}}" size="16" type="success"></icon> | |
| 699 | + <view bindtap='set_can_use_ord_prom_now' class="yu_er">参与订单促销</view> | |
| 700 | + </view> | |
| 701 | + </view> | |
| 702 | + | |
| 682 | 703 | <view class="xc-coupon-frame flex-center" data-bn="1" bindtap="open_coupon_list" data-pickid="{{bn_pick}}" hidden="{{(selected_quan_list?selected_quan_list.length:0)+ (get_by_quan_list && bn_exp_type==0?get_by_quan_list.length:0)<=0}}" wx:if="{{is_coupon > 0 && ((selected_quan_list && selected_quan_list.length>0) || get_by_quan_list!=null)}}"> | 
| 683 | 704 | <view class="work-frame flex-space-between"> | 
| 684 | 705 | <view class="work"> | 
| ... | ... | @@ -1096,7 +1117,7 @@ | 
| 1096 | 1117 | </view> | 
| 1097 | 1118 | <view class="count"> | 
| 1098 | 1119 | <view bindtap="{{items.goods_num <= 1 ? '':'subNum'}}" class="sub fs28 {{items.goods_num <= 1 ? 'active':''}}" data-pitems="{{pidx}}" data-item="{{idx}}">一</view> | 
| 1099 | - <input class="goodadd" bindblur="valueToNum" data-item="{{idx}}" bindinput="refresh_input" data-item="{{idx}}" type="number" value="{{items.goods_num}}"></input> | |
| 1120 | + <input class="goodadd" bindblur="valueToNum" data-item="{{idx}}" bindinput="refresh_input" type="number" value="{{items.goods_num}}"></input> | |
| 1100 | 1121 | <view class="add" bindtap="addNum" data-item="{{idx}}">+</view> | 
| 1101 | 1122 | </view> | 
| 1102 | 1123 | </view> | ... | ... | 
packageE/pages/cart/cart2/filter.wxs
| ... | ... | @@ -49,14 +49,11 @@ function check_is_last(index,goods_id){ | 
| 49 | 49 | return true; | 
| 50 | 50 | } | 
| 51 | 51 | return false; | 
| 52 | - | |
| 53 | 52 | } | 
| 54 | 53 | |
| 55 | - | |
| 56 | - | |
| 57 | 54 | module.exports = { | 
| 58 | 55 | format: format, | 
| 59 | 56 | is_more_act:is_more_act, | 
| 60 | 57 | check_show:check_show, | 
| 61 | - check_is_last:check_is_last | |
| 58 | + check_is_last:check_is_last, | |
| 62 | 59 | } | ... | ... | 
packageE/pages/cart/cart2/ladder_calculate.js
| ... | ... | @@ -115,6 +115,11 @@ module.exports = { | 
| 115 | 115 | }) | 
| 116 | 116 | //goods[idx].goods_num -= num; | 
| 117 | 117 | let new_g = JSON.parse(JSON.stringify(goods[idx])); | 
| 118 | + | |
| 119 | + //多余的商品如果活动不参与订单促销,那么变成普通商品的也不能参与订单促销,2024-2-26 | |
| 120 | + if(!ladder_map.is_useorderyh){ | |
| 121 | + new_g.is_no_order_yh=1; | |
| 122 | + } | |
| 118 | 123 | new_g.goods_num = num; | 
| 119 | 124 | new_g.prom_type = 0; | 
| 120 | 125 | new_g.prom_id = 0; | ... | ... | 
packageE/pages/cart/cart2/zh_calculate.js
| ... | ... | @@ -270,6 +270,11 @@ module.exports = { | 
| 270 | 270 | let new_g = JSON.parse(JSON.stringify(goods[idx])); | 
| 271 | 271 | |
| 272 | 272 | if(new_g.more_cx) delete new_g.more_cx; | 
| 273 | + | |
| 274 | + //多余的商品如果活动不参与订单促销,那么变成普通商品的也不能参与订单促销,2024-2-26 | |
| 275 | + if(!act.is_orderyh){ | |
| 276 | + new_g.is_no_order_yh=1; | |
| 277 | + } | |
| 273 | 278 | new_g.goods_num = num; | 
| 274 | 279 | new_g.prom_type = 0; | 
| 275 | 280 | new_g.prom_id = 0; | 
| ... | ... | @@ -331,6 +336,11 @@ module.exports = { | 
| 331 | 336 | offline_price += item.goods_price - item.offline_price; | 
| 332 | 337 | offline_num += 1; | 
| 333 | 338 | } | 
| 339 | + | |
| 340 | + //多余的商品如果活动不参与订单促销,那么变成普通商品的也不能参与订单促销,2024-2-26 | |
| 341 | + if(!act.is_orderyh){ | |
| 342 | + item.is_no_order_yh=1; | |
| 343 | + } | |
| 334 | 344 | item.prom_type = 0; | 
| 335 | 345 | item.prom_id = 0; | 
| 336 | 346 | } | ... | ... | 
packageE/pages/cart/cart2_inte/cart2_inte.js
| ... | ... | @@ -85,7 +85,14 @@ Page({ | 
| 85 | 85 | same_ok:1, //同城配送的控制,默认ok | 
| 86 | 86 | bconfig: null, | 
| 87 | 87 | showFold:true, | 
| 88 | - template_id:[] | |
| 88 | + template_id:[], | |
| 89 | + | |
| 90 | + //-- 订单促销判断积累 ---2024-2-20 | |
| 91 | + order_prom_map_ck: {}, | |
| 92 | + //能不能使用订单促销 | |
| 93 | + can_use_ord_prom:{}, | |
| 94 | + //存储订单促销的取价,按照门店进行索引 | |
| 95 | + show_ord_prom:{}, | |
| 89 | 96 | }, | 
| 90 | 97 | |
| 91 | 98 | |
| ... | ... | @@ -632,6 +639,8 @@ Page({ | 
| 632 | 639 | success: async function (tt) { | 
| 633 | 640 | if (tt.data.code == 0 && tt.data.data && tt.data.data.pageData) { | 
| 634 | 641 | var inte_data = tt.data.data.pageData[0]; | 
| 642 | + | |
| 643 | + gd.shop_price_y=gd.shop_price; | |
| 635 | 644 | t.data.data.shop_price = inte_data.addmoney; | 
| 636 | 645 | t.data.data.integral = inte_data.integral; | 
| 637 | 646 | |
| ... | ... | @@ -658,6 +667,9 @@ Page({ | 
| 658 | 667 | |
| 659 | 668 | |
| 660 | 669 | |
| 670 | + //用深拷贝把商品缓存起来,方便后面使用 | |
| 671 | + th.data.old_bn_goods=ut.deep_cp(t.data.data); | |
| 672 | + | |
| 661 | 673 | th.setData({ | 
| 662 | 674 | bn_goods: t.data.data, bn_pickname: gg.pick_name, bn_exp_type: et, index: m_wind, | 
| 663 | 675 | bn_pick: gg.pick_id, bn_t_exp_t: distr_t, bn_exp_type: et,inv_is_post:inte_data.is_post | 
| ... | ... | @@ -742,16 +754,23 @@ Page({ | 
| 742 | 754 | var condition = parseFloat(allpice-cut_price).toFixed(2); | 
| 743 | 755 | var ord_prom = null; | 
| 744 | 756 | var is_ord_prom_post = 0; | 
| 757 | + //---如果有选择优惠券的情况下--- | |
| 758 | + var quan_price = 0, bn_pick = th.data.bn_pick; | |
| 759 | + | |
| 760 | + if (th.data.bn_is_order_yh && !th.data.bn_goods.whsle_id) { | |
| 761 | + // await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { | |
| 762 | + // data: { store_id: os.stoid, orderAmount: condition, user_id: getApp().globalData.user_id } | |
| 763 | + // }).then(res => { | |
| 764 | + // if (res.data.code == 0) { | |
| 765 | + // var data = res.data.data; | |
| 766 | + // ord_prom = data; | |
| 767 | + // } | |
| 768 | + // }) | |
| 769 | + | |
| 770 | + th.set_by_now_ord_prom(th.data.bn_goods); | |
| 771 | + th.data.order_prom_map_ck[bn_pick].goods_price_all=condition; | |
| 772 | + ord_prom=await th.get_cur_ord_prom(bn_pick); | |
| 745 | 773 | |
| 746 | - if (condition > 0 && th.data.bn_is_order_yh && !th.data.bn_goods.whsle_id) { | |
| 747 | - await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { | |
| 748 | - data: { store_id: os.stoid, orderAmount: condition, user_id: getApp().globalData.user_id } | |
| 749 | - }).then(res => { | |
| 750 | - if (res.data.code == 0) { | |
| 751 | - var data = res.data.data; | |
| 752 | - ord_prom = data; | |
| 753 | - } | |
| 754 | - }) | |
| 755 | 774 | if (ord_prom && ord_prom.is_post_temp) { | 
| 756 | 775 | is_ord_prom_post = 1; | 
| 757 | 776 | } | 
| ... | ... | @@ -894,8 +913,7 @@ Page({ | 
| 894 | 913 | var wl_txt = "formData.shipping_price"; | 
| 895 | 914 | th.setData({ [wl_txt]: 0, }) | 
| 896 | 915 | } | 
| 897 | - //---如果有选择优惠券的情况下--- | |
| 898 | - var quan_price = 0, bn_pick = th.data.bn_pick; | |
| 916 | + | |
| 899 | 917 | |
| 900 | 918 | //-----------------支付价,优惠券不减物流----------------- | 
| 901 | 919 | var total_m = (parseFloat(allpice)).toFixed(2); | 
| ... | ... | @@ -1281,7 +1299,6 @@ Page({ | 
| 1281 | 1299 | item.samecity_order_amount=th.data.bn_samecity_order_amount; | 
| 1282 | 1300 | } | 
| 1283 | 1301 | |
| 1284 | - | |
| 1285 | 1302 | //获取立即购买的商品的信息 | 
| 1286 | 1303 | var gg = to.get_b_now(); | 
| 1287 | 1304 | //--商品的房间号-- | 
| ... | ... | @@ -1319,6 +1336,31 @@ Page({ | 
| 1319 | 1336 | 'prom_id': th.data.bn_goods.prom_id, //促销活动id | 
| 1320 | 1337 | }; | 
| 1321 | 1338 | |
| 1339 | + if(th.data.bn_goods.discount_field){ | |
| 1340 | + goods.discount_field=th.data.bn_goods.discount_field; | |
| 1341 | + } | |
| 1342 | + | |
| 1343 | + //如果有参与非实收的订单促销,那么就相当于是普通购买 | |
| 1344 | + if(th.data.can_use_ord_prom[th.data.bn_pick]){ | |
| 1345 | + goods.is_integral_normal=1; | |
| 1346 | + | |
| 1347 | + //如果是指定门店,就要判断 | |
| 1348 | + if (th.data.bn_goods.pick_group_ids) { | |
| 1349 | + var idx0 = th.data.bn_goods.pick_up_lists.findIndex(function (e) { | |
| 1350 | + return e.pickup_id == th.data.bn_pick; | |
| 1351 | + }) | |
| 1352 | + if (idx0 < 0) { | |
| 1353 | + getApp().my_warnning(th.data.bn_goods.goods_name + "的门店不可售", 0, th); | |
| 1354 | + th.data.is_summit_ing = 0; | |
| 1355 | + th.setData({ | |
| 1356 | + submit: 0 | |
| 1357 | + }) | |
| 1358 | + return false; | |
| 1359 | + } | |
| 1360 | + } | |
| 1361 | + | |
| 1362 | + } | |
| 1363 | + | |
| 1322 | 1364 | if(getApp().globalData.skinface_id){ | 
| 1323 | 1365 | goods.skinface_id=getApp().globalData.skinface_id; | 
| 1324 | 1366 | } | 
| ... | ... | @@ -1757,7 +1799,146 @@ Page({ | 
| 1757 | 1799 | var th = this; | 
| 1758 | 1800 | th.setData({bn_use_commission: !th.data.bn_use_commission}); | 
| 1759 | 1801 | th.calculatePrice2(); | 
| 1802 | + }, | |
| 1803 | + | |
| 1804 | + //-- 获取订单促销的判断结构 -- | |
| 1805 | + set_by_now_ord_prom(item){ | |
| 1806 | + let pickid=this.data.bn_pick; | |
| 1807 | + let order_prom_map_ck= this.data.order_prom_map_ck; | |
| 1808 | + order_prom_map_ck[pickid]={ | |
| 1809 | + shop_price_all:0, //手店价的累计 | |
| 1810 | + market_price_all:0, //市场价的累计 | |
| 1811 | + goods_price_all:0, //实收价的累计 | |
| 1812 | + no_ord_price:0, //要累计上不参与订单促销的金额 | |
| 1813 | + goodsList:[], | |
| 1814 | + } | |
| 1815 | + | |
| 1816 | + let pk_ord_map=order_prom_map_ck[pickid]; | |
| 1817 | + pk_ord_map.shop_price_all += item.shop_price_y * item.buynum; | |
| 1818 | + pk_ord_map.market_price_all += item.goods_market_price * item.buynum; | |
| 1819 | + | |
| 1820 | + }, | |
| 1821 | + | |
| 1822 | + //获取当前进行中订单促销,同时带入相应的金额判断订单促销是不是运行,同时订单促销的条件不是实收价判断的话,默认的时候,订单促销是不参与运算的 | |
| 1823 | + async get_cur_ord_prom(pickid) { | |
| 1824 | + let ord_prom = null; | |
| 1825 | + let order_prom_map_ck = this.data.order_prom_map_ck[pickid]; | |
| 1826 | + if(!order_prom_map_ck) return null; | |
| 1827 | + | |
| 1828 | + //获取当前进行中的优惠促销 | |
| 1829 | + await getApp().request.promiseGet("/api/weshop/promorder/getPromOrder", { | |
| 1830 | + data: { | |
| 1831 | + store_id: os.stoid, | |
| 1832 | + orderAmount: -1, //-1为不判断金额条件 | |
| 1833 | + user_id: getApp().globalData.user_id | |
| 1834 | + } | |
| 1835 | + }).then(res => { | |
| 1836 | + if (res.data.code == 0) { | |
| 1837 | + ord_prom = res.data.data; | |
| 1838 | + } | |
| 1839 | + }) | |
| 1840 | + | |
| 1841 | + if (!ord_prom) return null; | |
| 1842 | + //用于计算订单促销的金额 | |
| 1843 | + let calculate_price=0; | |
| 1844 | + | |
| 1845 | + let txt1='show_ord_prom['+pickid+']'; | |
| 1846 | + //-- 此时判断活动的金额满足与否 -- | |
| 1847 | + switch (ord_prom.discount_field) { | |
| 1848 | + //实收价的时候 | |
| 1849 | + case 0: | |
| 1850 | + //要先还原 | |
| 1851 | + this.setData({ | |
| 1852 | + [txt1]: 0 | |
| 1853 | + }); | |
| 1854 | + | |
| 1855 | + if (ord_prom.money > order_prom_map_ck.goods_price_all){ | |
| 1856 | + return null; | |
| 1857 | + } | |
| 1858 | + break; | |
| 1859 | + //手店价的时候 | |
| 1860 | + case 1: | |
| 1861 | + if (ord_prom.money > order_prom_map_ck.shop_price_all){ | |
| 1862 | + //要先还原 | |
| 1863 | + this.setData({ | |
| 1864 | + [txt1]: 0 | |
| 1865 | + }); | |
| 1866 | + return null; | |
| 1867 | + } | |
| 1868 | + //要显示订单促销使用的按钮 | |
| 1869 | + this.setData({ | |
| 1870 | + [txt1]: 1 | |
| 1871 | + }); | |
| 1872 | + break; | |
| 1873 | + //市场价的时候 | |
| 1874 | + case 2: | |
| 1875 | + if (ord_prom.money > order_prom_map_ck.market_price_all){ | |
| 1876 | + //要先还原 | |
| 1877 | + this.setData({ | |
| 1878 | + [txt1]: 0 | |
| 1879 | + }); | |
| 1880 | + return null; | |
| 1881 | + } | |
| 1882 | + //要显示订单促销使用的按钮 | |
| 1883 | + this.setData({ | |
| 1884 | + [txt1]: 2 | |
| 1885 | + }); | |
| 1886 | + break; | |
| 1887 | + } | |
| 1888 | + //如果订单促销是不参与订单促销的,那么就直接返回null(订单促销不是实收价的时候) | |
| 1889 | + if(ord_prom.discount_field>0 && !this.data.can_use_ord_prom[pickid]){ | |
| 1890 | + return null; | |
| 1891 | + } | |
| 1892 | + return ord_prom; | |
| 1893 | + }, | |
| 1894 | + | |
| 1895 | + //立即购买的时候,点击订单促销的参与 | |
| 1896 | + set_can_use_ord_prom_now:function (e){ | |
| 1897 | + | |
| 1898 | + if(this.data.submit) return false; | |
| 1899 | + this.setData({ submit: 1,same_ok:1 }); | |
| 1900 | + | |
| 1901 | + let pickid=this.data.bn_pick; | |
| 1902 | + let txt = 'can_use_ord_prom[' + pickid + ']'; | |
| 1903 | + let can_use = this.data.can_use_ord_prom[pickid] ? this.data.can_use_ord_prom[pickid] : 0; | |
| 1904 | + this.setData({ | |
| 1905 | + [txt]: !can_use | |
| 1906 | + }) | |
| 1907 | + | |
| 1908 | + let th=this; | |
| 1909 | + let good=th.data.bn_goods; | |
| 1910 | + | |
| 1911 | + //如果有要参与订单促销的按钮点击后,要修改商品的价格 | |
| 1912 | + if(th.data.can_use_ord_prom[pickid]){ | |
| 1913 | + let discount_field=th.data.show_ord_prom[pickid]; | |
| 1914 | + switch (discount_field){ | |
| 1915 | + case 1: | |
| 1916 | + good.shop_price=good.shop_price_y; | |
| 1917 | + break; | |
| 1918 | + case 2: | |
| 1919 | + good.shop_price=good.market_price; | |
| 1920 | + break; | |
| 1921 | + } | |
| 1922 | + //-- 转成普通商品 --- | |
| 1923 | + good.prom_type=0; | |
| 1924 | + good.prom_id=0; | |
| 1925 | + good.integral=0; | |
| 1926 | + good.discount_field=discount_field; | |
| 1927 | + | |
| 1928 | + }else{ | |
| 1929 | + good=ut.deep_cp(th.data.old_bn_goods); | |
| 1930 | + } | |
| 1931 | + | |
| 1932 | + th.setData({ | |
| 1933 | + bn_goods:good | |
| 1934 | + }) | |
| 1935 | + wx.showLoading({ | |
| 1936 | + title: "处理中.", | |
| 1937 | + mark:true | |
| 1938 | + }) | |
| 1939 | + th.calculatePrice2() | |
| 1760 | 1940 | } | 
| 1761 | 1941 | |
| 1762 | 1942 | |
| 1943 | + | |
| 1763 | 1944 | }); | ... | ... | 
packageE/pages/cart/cart2_inte/cart2_inte.wxml
| ... | ... | @@ -94,6 +94,14 @@ | 
| 94 | 94 | <icon color="#f23030" size="16" type="info"></icon>{{order.store_prom}} | 
| 95 | 95 | </view> | 
| 96 | 96 | |
| 97 | + <!-- 订单促销取价规则的优化 --> | |
| 98 | + <view class="set-mes" wx:if="{{show_ord_prom[bn_pick]}}"> | |
| 99 | + <view class="use-item" > | |
| 100 | + <icon bindtap='set_can_use_ord_prom_now' color="{{can_use_ord_prom[bn_pick]?'red':'gray'}}" size="16" type="success"></icon> | |
| 101 | + <view bindtap='set_can_use_ord_prom_now' class="yu_er">参与订单促销</view> | |
| 102 | + </view> | |
| 103 | + </view> | |
| 104 | + | |
| 97 | 105 | <view class="xc-coupon-frame flex-center" data-bn="1" bindtap="open_coupon_list" data-pickid="{{bn_pick}}" wx:if="{{(selected_quan_list && selected_quan_list.length>0) || get_by_quan_list!=null}}"> | 
| 98 | 106 | <view class="work-frame flex-space-between"> | 
| 99 | 107 | <view class="work"> | ... | ... | 
packageE/pages/cart/cart2_pt/cart2_pt.js
| ... | ... | @@ -90,6 +90,13 @@ Page({ | 
| 90 | 90 | is_no_by: {}, | 
| 91 | 91 | is_by: {}, | 
| 92 | 92 | is_quan_by: {}, | 
| 93 | + | |
| 94 | + //-- 订单促销判断积累 ---2024-2-20 | |
| 95 | + order_prom_map_ck: {}, | |
| 96 | + //能不能使用订单促销 | |
| 97 | + can_use_ord_prom:{}, | |
| 98 | + //存储订单促销的取价,按照门店进行索引 | |
| 99 | + show_ord_prom:{}, | |
| 93 | 100 | }, | 
| 94 | 101 | |
| 95 | 102 | |
| ... | ... | @@ -444,7 +451,9 @@ Page({ | 
| 444 | 451 | et = 2; | 
| 445 | 452 | } | 
| 446 | 453 | |
| 454 | + t.data.data.shop_price_y=t.data.data.shop_price | |
| 447 | 455 | t.data.data.shop_price = gg.goods_price; | 
| 456 | + | |
| 448 | 457 | //--如果是普通购买的时候-- | 
| 449 | 458 | if (gg.is_normal == 1) { | 
| 450 | 459 | t.data.data.prom_id = 0; | 
| ... | ... | @@ -485,6 +494,8 @@ Page({ | 
| 485 | 494 | |
| 486 | 495 | } | 
| 487 | 496 | |
| 497 | + //用深拷贝把商品缓存起来,方便后面使用 | |
| 498 | + th.data.old_bn_goods=ut.deep_cp(t.data.data); | |
| 488 | 499 | |
| 489 | 500 | th.setData({ | 
| 490 | 501 | bn_goods: t.data.data, bn_pickname: gg.pick_name, | 
| ... | ... | @@ -568,7 +579,6 @@ Page({ | 
| 568 | 579 | et = th.data.bn_exp_type; | 
| 569 | 580 | } | 
| 570 | 581 | |
| 571 | - | |
| 572 | 582 | //-- 计算获得佣金的金额 -- | 
| 573 | 583 | if (getApp().globalData.userInfo.is_distribut | 
| 574 | 584 | && th.data.dis_config && th.data.dis_config.is_yongjin_dk) { | 
| ... | ... | @@ -591,6 +601,8 @@ Page({ | 
| 591 | 601 | |
| 592 | 602 | } | 
| 593 | 603 | |
| 604 | + //用深拷贝把商品缓存起来,方便后面使用 | |
| 605 | + th.data.old_bn_goods=ut.deep_cp(t.data.data); | |
| 594 | 606 | |
| 595 | 607 | th.setData({ | 
| 596 | 608 | bn_goods: t.data.data, bn_pickname: gg.pick_name, | 
| ... | ... | @@ -834,13 +846,17 @@ Page({ | 
| 834 | 846 | |
| 835 | 847 | if(th.data.bn_is_order_yh && th.data.kt_type != 3 ){ | 
| 836 | 848 | |
| 837 | - await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { | |
| 838 | - data: { store_id: os.stoid, orderAmount: o_condition, user_id: getApp().globalData.user_id } | |
| 839 | - }).then(res => { | |
| 840 | - if (res.data.code == 0) { | |
| 841 | - ord_prom = res.data.data; | |
| 842 | - } | |
| 843 | - }) | |
| 849 | + // await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { | |
| 850 | + // data: { store_id: os.stoid, orderAmount: o_condition, user_id: getApp().globalData.user_id } | |
| 851 | + // }).then(res => { | |
| 852 | + // if (res.data.code == 0) { | |
| 853 | + // ord_prom = res.data.data; | |
| 854 | + // } | |
| 855 | + // }) | |
| 856 | + | |
| 857 | + th.set_by_now_ord_prom(th.data.bn_goods); | |
| 858 | + th.data.order_prom_map_ck[bn_pick].goods_price_all=o_condition; | |
| 859 | + ord_prom=await th.get_cur_ord_prom(bn_pick); | |
| 844 | 860 | } | 
| 845 | 861 | |
| 846 | 862 | |
| ... | ... | @@ -1468,6 +1484,31 @@ Page({ | 
| 1468 | 1484 | 'prom_id': th.data.bn_goods.prom_id, //促销活动id | 
| 1469 | 1485 | }; | 
| 1470 | 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 | + //如果是指定门店,就要判断 | |
| 1496 | + if (th.data.bn_goods.pick_group_ids) { | |
| 1497 | + var idx0 = th.data.bn_goods.pick_up_lists.findIndex(function (e) { | |
| 1498 | + return e.pickup_id == th.data.bn_pick; | |
| 1499 | + }) | |
| 1500 | + if (idx0 < 0) { | |
| 1501 | + getApp().my_warnning(th.data.bn_goods.goods_name + "的门店不可售", 0, th); | |
| 1502 | + th.data.is_summit_ing = 0; | |
| 1503 | + th.setData({ | |
| 1504 | + submit: 0 | |
| 1505 | + }) | |
| 1506 | + return false; | |
| 1507 | + } | |
| 1508 | + } | |
| 1509 | + | |
| 1510 | + } | |
| 1511 | + | |
| 1471 | 1512 | if (getApp().globalData.skinface_id) { | 
| 1472 | 1513 | goods.skinface_id = getApp().globalData.skinface_id; | 
| 1473 | 1514 | } | 
| ... | ... | @@ -2260,6 +2301,152 @@ Page({ | 
| 2260 | 2301 | th.setData({ open_quan: 0 }); | 
| 2261 | 2302 | }, | 
| 2262 | 2303 | |
| 2304 | + //-- 获取订单促销的判断结构 -- | |
| 2305 | + set_by_now_ord_prom(item){ | |
| 2306 | + let pickid=this.data.bn_pick; | |
| 2307 | + let order_prom_map_ck= this.data.order_prom_map_ck; | |
| 2308 | + order_prom_map_ck[pickid]={ | |
| 2309 | + shop_price_all:0, //手店价的累计 | |
| 2310 | + market_price_all:0, //市场价的累计 | |
| 2311 | + goods_price_all:0, //实收价的累计 | |
| 2312 | + no_ord_price:0, //要累计上不参与订单促销的金额 | |
| 2313 | + goodsList:[], | |
| 2314 | + } | |
| 2315 | + | |
| 2316 | + let pk_ord_map=order_prom_map_ck[pickid]; | |
| 2317 | + pk_ord_map.shop_price_all += item.shop_price_y * item.buynum; | |
| 2318 | + pk_ord_map.market_price_all += item.goods_market_price * item.buynum; | |
| 2319 | + | |
| 2320 | + }, | |
| 2321 | + | |
| 2322 | + //获取当前进行中订单促销,同时带入相应的金额判断订单促销是不是运行,同时订单促销的条件不是实收价判断的话,默认的时候,订单促销是不参与运算的 | |
| 2323 | + async get_cur_ord_prom(pickid) { | |
| 2324 | + let ord_prom = null; | |
| 2325 | + let order_prom_map_ck = this.data.order_prom_map_ck[pickid]; | |
| 2326 | + if(!order_prom_map_ck) return null; | |
| 2327 | + | |
| 2328 | + //获取当前进行中的优惠促销 | |
| 2329 | + await getApp().request.promiseGet("/api/weshop/promorder/getPromOrder", { | |
| 2330 | + data: { | |
| 2331 | + store_id: os.stoid, | |
| 2332 | + orderAmount: -1, //-1为不判断金额条件 | |
| 2333 | + user_id: getApp().globalData.user_id | |
| 2334 | + } | |
| 2335 | + }).then(res => { | |
| 2336 | + if (res.data.code == 0) { | |
| 2337 | + ord_prom = res.data.data; | |
| 2338 | + } | |
| 2339 | + }) | |
| 2340 | + | |
| 2341 | + if (!ord_prom) return null; | |
| 2342 | + //用于计算订单促销的金额 | |
| 2343 | + let calculate_price=0; | |
| 2344 | + | |
| 2345 | + let txt1='show_ord_prom['+pickid+']'; | |
| 2346 | + //-- 此时判断活动的金额满足与否 -- | |
| 2347 | + switch (ord_prom.discount_field) { | |
| 2348 | + //实收价的时候 | |
| 2349 | + case 0: | |
| 2350 | + //要先还原 | |
| 2351 | + this.setData({ | |
| 2352 | + [txt1]: 0 | |
| 2353 | + }); | |
| 2354 | + | |
| 2355 | + if (ord_prom.money > order_prom_map_ck.goods_price_all){ | |
| 2356 | + return null; | |
| 2357 | + } | |
| 2358 | + break; | |
| 2359 | + //手店价的时候 | |
| 2360 | + case 1: | |
| 2361 | + if (ord_prom.money > order_prom_map_ck.shop_price_all){ | |
| 2362 | + //要先还原 | |
| 2363 | + this.setData({ | |
| 2364 | + [txt1]: 0 | |
| 2365 | + }); | |
| 2366 | + return null; | |
| 2367 | + } | |
| 2368 | + //要显示订单促销使用的按钮 | |
| 2369 | + this.setData({ | |
| 2370 | + [txt1]: 1 | |
| 2371 | + }); | |
| 2372 | + break; | |
| 2373 | + //市场价的时候 | |
| 2374 | + case 2: | |
| 2375 | + if (ord_prom.money > order_prom_map_ck.market_price_all){ | |
| 2376 | + //要先还原 | |
| 2377 | + this.setData({ | |
| 2378 | + [txt1]: 0 | |
| 2379 | + }); | |
| 2380 | + return null; | |
| 2381 | + } | |
| 2382 | + //要显示订单促销使用的按钮 | |
| 2383 | + this.setData({ | |
| 2384 | + [txt1]: 2 | |
| 2385 | + }); | |
| 2386 | + break; | |
| 2387 | + } | |
| 2388 | + //如果订单促销是不参与订单促销的,那么就直接返回null(订单促销不是实收价的时候) | |
| 2389 | + if(ord_prom.discount_field>0 && !this.data.can_use_ord_prom[pickid]){ | |
| 2390 | + return null; | |
| 2391 | + } | |
| 2392 | + return ord_prom; | |
| 2393 | + }, | |
| 2394 | + | |
| 2395 | + //立即购买的时候,点击订单促销的参与 | |
| 2396 | + set_can_use_ord_prom_now:function (e){ | |
| 2397 | + | |
| 2398 | + if(this.data.submit) return false; | |
| 2399 | + this.setData({ submit: 1,same_ok:1 }); | |
| 2400 | + | |
| 2401 | + let pickid=this.data.bn_pick; | |
| 2402 | + let txt = 'can_use_ord_prom[' + pickid + ']'; | |
| 2403 | + let can_use = this.data.can_use_ord_prom[pickid] ? this.data.can_use_ord_prom[pickid] : 0; | |
| 2404 | + this.setData({ | |
| 2405 | + [txt]: !can_use | |
| 2406 | + }) | |
| 2407 | + | |
| 2408 | + let th=this; | |
| 2409 | + let good=th.data.bn_goods; | |
| 2410 | + | |
| 2411 | + //如果有要参与订单促销的按钮点击后,要修改商品的价格 | |
| 2412 | + if(th.data.can_use_ord_prom[pickid]){ | |
| 2413 | + let discount_field=th.data.show_ord_prom[pickid]; | |
| 2414 | + switch (discount_field){ | |
| 2415 | + case 1: | |
| 2416 | + good.shop_price=good.shop_price_y; | |
| 2417 | + break; | |
| 2418 | + case 2: | |
| 2419 | + good.shop_price=good.market_price; | |
| 2420 | + break; | |
| 2421 | + } | |
| 2422 | + //-- 转成普通商品 --- | |
| 2423 | + good.prom_type=0; | |
| 2424 | + good.prom_id=0; | |
| 2425 | + good.discount_field=discount_field; | |
| 2426 | + | |
| 2427 | + //把优惠券的使用还原 | |
| 2428 | + th.setData({ | |
| 2429 | + selected_quan_list: null, | |
| 2430 | + using_quan: {} | |
| 2431 | + }) | |
| 2432 | + }else{ | |
| 2433 | + good=ut.deep_cp(th.data.old_bn_goods); | |
| 2434 | + } | |
| 2435 | + | |
| 2436 | + th.setData({ | |
| 2437 | + bn_goods:good | |
| 2438 | + }) | |
| 2439 | + wx.showLoading({ | |
| 2440 | + title: "处理中.", | |
| 2441 | + mark:true | |
| 2442 | + }) | |
| 2443 | + th.calculatePrice2() | |
| 2444 | + | |
| 2445 | + if(!th.data.can_use_ord_prom[pickid]){ | |
| 2446 | + th.get_buy_now_quan(); | |
| 2447 | + } | |
| 2448 | + } | |
| 2449 | + | |
| 2263 | 2450 | |
| 2264 | 2451 | |
| 2265 | 2452 | ... | ... | 
packageE/pages/cart/cart2_pt/cart2_pt.wxml
| ... | ... | @@ -102,6 +102,13 @@ | 
| 102 | 102 | <icon color="#f23030" size="16" type="info"></icon>{{order.store_prom}} | 
| 103 | 103 | </view> | 
| 104 | 104 | |
| 105 | + <!-- 订单促销取价规则的优化 --> | |
| 106 | + <view class="set-mes" wx:if="{{show_ord_prom[bn_pick]}}"> | |
| 107 | + <view class="use-item" > | |
| 108 | + <icon bindtap='set_can_use_ord_prom_now' color="{{can_use_ord_prom[bn_pick]?'red':'gray'}}" size="16" type="success"></icon> | |
| 109 | + <view bindtap='set_can_use_ord_prom_now' class="yu_er">参与订单促销</view> | |
| 110 | + </view> | |
| 111 | + </view> | |
| 105 | 112 | |
| 106 | 113 | <view class="xc-coupon-frame flex-center" data-bn="1" bindtap="open_coupon_list" data-pickid="{{bn_pick}}" hidden="{{(selected_quan_list?selected_quan_list.length:0)+ (get_by_quan_list && bn_exp_type==0?get_by_quan_list.length:0)<=0}}" wx:if="{{(selected_quan_list && selected_quan_list.length>0) || get_by_quan_list!=null}}"> | 
| 107 | 114 | <view class="work-frame flex-space-between"> | ... | ... | 
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/cart/cart/cart.js
| ... | ... | @@ -1192,10 +1192,10 @@ Page({ | 
| 1192 | 1192 | // if (this.data.btn_click) { | 
| 1193 | 1193 | // return false; | 
| 1194 | 1194 | // } | 
| 1195 | + | |
| 1195 | 1196 | setTimeout(() => { | 
| 1196 | 1197 | if (this.data.up_dating == 1) return false; | 
| 1197 | 1198 | this.data.up_dating=1 | 
| 1198 | - | |
| 1199 | 1199 | this.data.btn_click = 1; | 
| 1200 | 1200 | var a = t.currentTarget.dataset.item; | 
| 1201 | 1201 | var b = t.currentTarget.dataset.pitems; | ... | ... | 
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 ){ | ... | ... |