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,6 +80,13 @@ Page({ | ||
80 | bconfig: null, | 80 | bconfig: null, |
81 | showFold:true, | 81 | showFold:true, |
82 | template_id:[], | 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,6 +520,7 @@ Page({ | ||
513 | } | 520 | } |
514 | 521 | ||
515 | 522 | ||
523 | + t.data.data.shop_price_y = t.data.data.shop_price; | ||
516 | t.data.data.shop_price = gg.goods_price; | 524 | t.data.data.shop_price = gg.goods_price; |
517 | //--如果是普通购买的时候-- | 525 | //--如果是普通购买的时候-- |
518 | if (gg.is_normal == 1) { | 526 | if (gg.is_normal == 1) { |
@@ -569,7 +577,10 @@ Page({ | @@ -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 | th.setData({ | 585 | th.setData({ |
575 | bn_goods: t.data.data, | 586 | bn_goods: t.data.data, |
@@ -642,6 +653,9 @@ Page({ | @@ -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 | th.setData({ | 660 | th.setData({ |
647 | bn_goods: t.data.data, | 661 | bn_goods: t.data.data, |
@@ -651,7 +665,6 @@ Page({ | @@ -651,7 +665,6 @@ Page({ | ||
651 | bn_exp_type: et | 665 | bn_exp_type: et |
652 | }); | 666 | }); |
653 | 667 | ||
654 | - | ||
655 | //计算价格 | 668 | //计算价格 |
656 | th.calculatePrice2(); | 669 | th.calculatePrice2(); |
657 | } | 670 | } |
@@ -842,7 +855,9 @@ Page({ | @@ -842,7 +855,9 @@ Page({ | ||
842 | //-----------计算商品总价-------------- | 855 | //-----------计算商品总价-------------- |
843 | //var allpice = th.data.param.goods_price; | 856 | //var allpice = th.data.param.goods_price; |
844 | var allpice = (th.data.act.group_price/100).toFixed(2); | 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 | allpice = parseFloat(allpice).toFixed(2); | 862 | allpice = parseFloat(allpice).toFixed(2); |
848 | var txt = "formData.all_price"; | 863 | var txt = "formData.all_price"; |
@@ -868,14 +883,18 @@ Page({ | @@ -868,14 +883,18 @@ Page({ | ||
868 | var ord_prom=null; | 883 | var ord_prom=null; |
869 | var o_condition=allpice; | 884 | var o_condition=allpice; |
870 | if(th.data.act.is_order_yh){ | 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,7 +983,7 @@ Page({ | ||
964 | title: "物流配置未启用物流公司", icon: 'none', duration: 2000 | 983 | title: "物流配置未启用物流公司", icon: 'none', duration: 2000 |
965 | }) | 984 | }) |
966 | //th.setData({ show_submit:0, }); | 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 | return false; | 987 | return false; |
969 | } | 988 | } |
970 | 989 | ||
@@ -996,7 +1015,7 @@ Page({ | @@ -996,7 +1015,7 @@ Page({ | ||
996 | wx.showToast({ | 1015 | wx.showToast({ |
997 | title: "计算物流错误", icon: 'none', duration: 2000 | 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 | return false; | 1019 | return false; |
1001 | } | 1020 | } |
1002 | 1021 | ||
@@ -1289,7 +1308,7 @@ Page({ | @@ -1289,7 +1308,7 @@ Page({ | ||
1289 | // 提交订单前弹出确认对话框 | 1308 | // 提交订单前弹出确认对话框 |
1290 | submitConfirm(e) { | 1309 | submitConfirm(e) { |
1291 | // is_show为0不显示温馨提示,为1显示温馨提示 | 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 | wx.showModal({ | 1312 | wx.showModal({ |
1294 | title: '温馨提示', | 1313 | title: '温馨提示', |
1295 | content: this.data.param.alert, | 1314 | content: this.data.param.alert, |
@@ -1451,6 +1470,34 @@ Page({ | @@ -1451,6 +1470,34 @@ Page({ | ||
1451 | 'prom_id': th.data.param.group_id, //促销活动id | 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 | if (getApp().globalData.skinface_id) { | 1501 | if (getApp().globalData.skinface_id) { |
1455 | goods.skinface_id = getApp().globalData.skinface_id; | 1502 | goods.skinface_id = getApp().globalData.skinface_id; |
1456 | } | 1503 | } |
@@ -2085,9 +2132,149 @@ Page({ | @@ -2085,9 +2132,149 @@ Page({ | ||
2085 | th.calculatePrice2(); | 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,6 +100,14 @@ | ||
100 | <icon color="#f23030" size="16" type="info"></icon>{{order.store_prom}} | 100 | <icon color="#f23030" size="16" type="info"></icon>{{order.store_prom}} |
101 | </view> | 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 | <block wx:if="{{bn_exp_type==0 && !is_default_logistics}}"> | 112 | <block wx:if="{{bn_exp_type==0 && !is_default_logistics}}"> |
105 | <view class="use-item flex-space-between" wx:if="{{kt_type!=3 || is_normal==1}}"> | 113 | <view class="use-item flex-space-between" wx:if="{{kt_type!=3 || is_normal==1}}"> |
packageC/pages/presell/cart/cart.js
@@ -2198,6 +2198,9 @@ Page({ | @@ -2198,6 +2198,9 @@ Page({ | ||
2198 | }).then(res => { | 2198 | }).then(res => { |
2199 | if (res.data.code == 0) { | 2199 | if (res.data.code == 0) { |
2200 | prom_ord = res.data.data; | 2200 | prom_ord = res.data.data; |
2201 | + | ||
2202 | + //如果订单促销的取价不是实收,清空订单促销 | ||
2203 | + if(prom_ord && prom_ord.discount_field>0) prom_ord=null; | ||
2201 | } | 2204 | } |
2202 | 2205 | ||
2203 | }) | 2206 | }) |
packageC/pages/presell/cart/cart2.js
@@ -134,7 +134,14 @@ Page({ | @@ -134,7 +134,14 @@ Page({ | ||
134 | bconfig:null, | 134 | bconfig:null, |
135 | showFold:true, | 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,7 +602,7 @@ Page({ | ||
595 | }); | 602 | }); |
596 | }, | 603 | }, |
597 | 604 | ||
598 | - //-- 获取到服务卡项的详情 -- | 605 | + //-- 获取到商品的详情 -- |
599 | get_goods_detail(act, prelist,gg){ | 606 | get_goods_detail(act, prelist,gg){ |
600 | var th = this; | 607 | var th = this; |
601 | //--------如果goods_id一样,就是要立即购买----- | 608 | //--------如果goods_id一样,就是要立即购买----- |
@@ -728,7 +735,10 @@ Page({ | @@ -728,7 +735,10 @@ Page({ | ||
728 | } | 735 | } |
729 | 736 | ||
730 | //这个位置要拿活动的预售价 | 737 | //这个位置要拿活动的预售价 |
738 | + t.data.data.shop_price_y = t.data.data.shop_price; | ||
731 | t.data.data.shop_price = prelist.presell_money; | 739 | t.data.data.shop_price = prelist.presell_money; |
740 | + th.data.old_bn_goods=ut.deep_cp(t.data.data); | ||
741 | + | ||
732 | th.setData({ | 742 | th.setData({ |
733 | bn_goods: t.data.data, | 743 | bn_goods: t.data.data, |
734 | bn_pickname: gg.pick_name, | 744 | bn_pickname: gg.pick_name, |
@@ -832,6 +842,7 @@ Page({ | @@ -832,6 +842,7 @@ Page({ | ||
832 | // } | 842 | // } |
833 | 843 | ||
834 | th.setData({dis_btn:1}) | 844 | th.setData({dis_btn:1}) |
845 | + this.data.submit=0; | ||
835 | 846 | ||
836 | wx.showLoading({ | 847 | wx.showLoading({ |
837 | title: "处理中.",mask:true | 848 | title: "处理中.",mask:true |
@@ -901,14 +912,18 @@ Page({ | @@ -901,14 +912,18 @@ Page({ | ||
901 | //-- 判断订单优惠的叠加 -- | 912 | //-- 判断订单优惠的叠加 -- |
902 | var ord_prom=null; | 913 | var ord_prom=null; |
903 | var o_condition=allpice; | 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,6 +1583,33 @@ Page({ | ||
1568 | 'prom_id': th.data.bn_goods.prom_id, //促销活动id | 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 | if(getApp().globalData.skinface_id){ | 1613 | if(getApp().globalData.skinface_id){ |
1572 | goods.skinface_id=getApp().globalData.skinface_id; | 1614 | goods.skinface_id=getApp().globalData.skinface_id; |
1573 | } | 1615 | } |
@@ -3179,8 +3221,158 @@ Page({ | @@ -3179,8 +3221,158 @@ Page({ | ||
3179 | url= "/pages/goods/goodsInfo/goodsInfo?goods_id="+gid; | 3221 | url= "/pages/goods/goodsInfo/goodsInfo?goods_id="+gid; |
3180 | } | 3222 | } |
3181 | getApp().goto(url); | 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,6 +150,15 @@ | ||
150 | <icon color="#f23030" size="16" type="info"></icon>{{order.store_prom}} | 150 | <icon color="#f23030" size="16" type="info"></icon>{{order.store_prom}} |
151 | </view> | 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 | <view class="xc-coupon-frame flex-center" data-bn="1" bindtap="open_coupon_list" data-pickid="{{bn_pick}}" hidden="{{is_fwk}}" | 162 | <view class="xc-coupon-frame flex-center" data-bn="1" bindtap="open_coupon_list" data-pickid="{{bn_pick}}" hidden="{{is_fwk}}" |
154 | wx:if="{{(selected_quan_list && selected_quan_list.length>0) || get_by_quan_list!=null}}"> | 163 | wx:if="{{(selected_quan_list && selected_quan_list.length>0) || get_by_quan_list!=null}}"> |
155 | <view class="work-frame flex-space-between"> | 164 | <view class="work-frame flex-space-between"> |
packageE/pages/cart/cart2/cart2.js
@@ -178,7 +178,15 @@ Page({ | @@ -178,7 +178,15 @@ Page({ | ||
178 | yhcx_act_map: {}, | 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,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 | wx.showLoading(); | 957 | wx.showLoading(); |
949 | 958 | ||
950 | th.get_cart_next(carr); | 959 | th.get_cart_next(carr); |
@@ -1028,33 +1037,35 @@ Page({ | @@ -1028,33 +1037,35 @@ Page({ | ||
1028 | var no_zh_num={}; | 1037 | var no_zh_num={}; |
1029 | //-- 多促销活动调用接口需要的参数,和商品的购买数量和活动的购买数量的请求参数 -- | 1038 | //-- 多促销活动调用接口需要的参数,和商品的购买数量和活动的购买数量的请求参数 -- |
1030 | 1039 | ||
1031 | - if(!is_change){ | 1040 | + if(!is_change) { |
1041 | + //-- 多促销活动调用接口需要的参数,和商品的购买数量和活动的购买数量的请求参数 -- | ||
1032 | var dug_cx_arr = []; | 1042 | var dug_cx_arr = []; |
1033 | //获取 限购 和 多活动的促销---2024-2-1 | 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 | return ele.goods_id == item1.goods_id | 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 | dug_cx_arr.push(gd_ite); | 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 | //-- 对商品的多促销进行判断 ---2024-2-1-- | 1071 | //-- 对商品的多促销进行判断 ---2024-2-1-- |
@@ -1062,11 +1073,45 @@ Page({ | @@ -1062,11 +1073,45 @@ Page({ | ||
1062 | await th.buy_pro_group(dug_cx_arr,carr); | 1073 | await th.buy_pro_group(dug_cx_arr,carr); |
1063 | } | 1074 | } |
1064 | } | 1075 | } |
1065 | - | ||
1066 | - | ||
1067 | //在分组的时候,就不要再调用接口,await | 1076 | //在分组的时候,就不要再调用接口,await |
1068 | for (var i = 0; i < carr.length; i++) { | 1077 | for (var i = 0; i < carr.length; i++) { |
1069 | var item = carr[i]; | 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 | if (is_card_back) { | 1116 | if (is_card_back) { |
1072 | th.data.card_name = th.data.userinfo.card_field; | 1117 | th.data.card_name = th.data.userinfo.card_field; |
@@ -1290,11 +1335,8 @@ Page({ | @@ -1290,11 +1335,8 @@ Page({ | ||
1290 | if (ie.exp_type == 0 || ie.exp_type == 2) is_a_zt= 0; | 1335 | if (ie.exp_type == 0 || ie.exp_type == 2) is_a_zt= 0; |
1291 | } | 1336 | } |
1292 | th.setData({ is_all_zt: is_a_zt}); | 1337 | th.setData({ is_all_zt: is_a_zt}); |
1293 | - | ||
1294 | } | 1338 | } |
1295 | 1339 | ||
1296 | - | ||
1297 | - | ||
1298 | var cart_commission = 0; | 1340 | var cart_commission = 0; |
1299 | //-- 循环计算一下线下取价 -- | 1341 | //-- 循环计算一下线下取价 -- |
1300 | for (var k = 0; k < arr.length; k++) { | 1342 | for (var k = 0; k < arr.length; k++) { |
@@ -1344,6 +1386,26 @@ Page({ | @@ -1344,6 +1386,26 @@ Page({ | ||
1344 | //-- 如果初始活动在计算的时候,是不满足的时候,就要把活动清理掉 -- | 1386 | //-- 如果初始活动在计算的时候,是不满足的时候,就要把活动清理掉 -- |
1345 | var is_no_ok=arr[k].show_can_cx[key_o].cur_act.is_no_ok; | 1387 | var is_no_ok=arr[k].show_can_cx[key_o].cur_act.is_no_ok; |
1346 | if(is_no_ok==1){ | 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 | item1.prom_id = 0; | 1409 | item1.prom_id = 0; |
1348 | item1.prom_type = 0; | 1410 | item1.prom_type = 0; |
1349 | 1411 | ||
@@ -1352,6 +1414,16 @@ Page({ | @@ -1352,6 +1414,16 @@ Page({ | ||
1352 | item1.is_act_last=1; //这个是要在前端显示按钮切换的 | 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,8 +1535,6 @@ Page({ | ||
1463 | 1535 | ||
1464 | 1536 | ||
1465 | } else { | 1537 | } else { |
1466 | - | ||
1467 | - | ||
1468 | item1.act = th.data.zhhe_act_map[item1.prom_id]; | 1538 | item1.act = th.data.zhhe_act_map[item1.prom_id]; |
1469 | } | 1539 | } |
1470 | } | 1540 | } |
@@ -1609,7 +1679,6 @@ Page({ | @@ -1609,7 +1679,6 @@ Page({ | ||
1609 | prom_type: item[c].prom_type, | 1679 | prom_type: item[c].prom_type, |
1610 | prom_id: item[c].prom_id, | 1680 | prom_id: item[c].prom_id, |
1611 | } | 1681 | } |
1612 | - //单个就不调用了 | ||
1613 | // let req_d1 = { | 1682 | // let req_d1 = { |
1614 | // user_id: getApp().globalData.user_id, goods_ids: [hr], store_id: os.stoid | 1683 | // user_id: getApp().globalData.user_id, goods_ids: [hr], store_id: os.stoid |
1615 | // } | 1684 | // } |
@@ -2094,6 +2163,8 @@ Page({ | @@ -2094,6 +2163,8 @@ Page({ | ||
2094 | success: async function (tt) { | 2163 | success: async function (tt) { |
2095 | if (tt.data.code == 0) { | 2164 | if (tt.data.code == 0) { |
2096 | //t.data.data.shop_price = tt.data.data.prom_price; | 2165 | //t.data.data.shop_price = tt.data.data.prom_price; |
2166 | + | ||
2167 | + gd.shop_price_y=gd.shop_price; | ||
2097 | gd.shop_price=t.data.data.shop_price = tt.data.data.prom_user_price; | 2168 | gd.shop_price=t.data.data.shop_price = tt.data.data.prom_user_price; |
2098 | th.data.ckeck_quan_price = 0; | 2169 | th.data.ckeck_quan_price = 0; |
2099 | 2170 | ||
@@ -2142,6 +2213,9 @@ Page({ | @@ -2142,6 +2213,9 @@ Page({ | ||
2142 | } | 2213 | } |
2143 | 2214 | ||
2144 | 2215 | ||
2216 | + //用深拷贝把商品缓存起来,方便后面使用 | ||
2217 | + th.data.old_bn_goods=ut.deep_cp(gd); | ||
2218 | + | ||
2145 | th.setData({ | 2219 | th.setData({ |
2146 | bn_goods: gd, | 2220 | bn_goods: gd, |
2147 | bn_pickname: gg.pick_name, | 2221 | bn_pickname: gg.pick_name, |
@@ -2170,6 +2244,7 @@ Page({ | @@ -2170,6 +2244,7 @@ Page({ | ||
2170 | ut.get_active_info(2,gd.prom_id,os.stoid,function(e){ | 2244 | ut.get_active_info(2,gd.prom_id,os.stoid,function(e){ |
2171 | 2245 | ||
2172 | //t.data.data.shop_price = tt.data.data.prom_price; | 2246 | //t.data.data.shop_price = tt.data.data.prom_price; |
2247 | + gd.shop_price_y=gd.shop_price; | ||
2173 | gd.shop_price=t.data.data.shop_price = tt.data.data.price; | 2248 | gd.shop_price=t.data.data.shop_price = tt.data.data.price; |
2174 | 2249 | ||
2175 | t.data.data.fir_rate = tt.data.data.fir_rate; | 2250 | t.data.data.fir_rate = tt.data.data.fir_rate; |
@@ -2209,6 +2284,10 @@ Page({ | @@ -2209,6 +2284,10 @@ Page({ | ||
2209 | gd.is_xz_yh = 1; | 2284 | gd.is_xz_yh = 1; |
2210 | } | 2285 | } |
2211 | 2286 | ||
2287 | + | ||
2288 | + //用深拷贝把商品缓存起来,方便后面使用 | ||
2289 | + th.data.old_bn_goods=ut.deep_cp(gd); | ||
2290 | + | ||
2212 | th.setData({ | 2291 | th.setData({ |
2213 | bn_goods: gd, | 2292 | bn_goods: gd, |
2214 | bn_pickname: gg.pick_name, | 2293 | bn_pickname: gg.pick_name, |
@@ -2980,6 +3059,9 @@ Page({ | @@ -2980,6 +3059,9 @@ Page({ | ||
2980 | } | 3059 | } |
2981 | } | 3060 | } |
2982 | 3061 | ||
3062 | + //重置订单促销判断累计 | ||
3063 | + this.re_set_order_prom_map_ck(); | ||
3064 | + | ||
2983 | for (var i in c_arr) { | 3065 | for (var i in c_arr) { |
2984 | var cart_item = c_arr[i]; | 3066 | var cart_item = c_arr[i]; |
2985 | cart_item.prom_pt_json=[]; | 3067 | cart_item.prom_pt_json=[]; |
@@ -2996,6 +3078,7 @@ Page({ | @@ -2996,6 +3078,7 @@ Page({ | ||
2996 | 3078 | ||
2997 | } | 3079 | } |
2998 | 3080 | ||
3081 | + | ||
2999 | //调用函数计算每件商品的单价 | 3082 | //调用函数计算每件商品的单价 |
3000 | await th.calc_per(c_arr); | 3083 | await th.calc_per(c_arr); |
3001 | 3084 | ||
@@ -3009,7 +3092,7 @@ Page({ | @@ -3009,7 +3092,7 @@ Page({ | ||
3009 | 3092 | ||
3010 | //-- 经纬度不循环调用接口 -- | 3093 | //-- 经纬度不循环调用接口 -- |
3011 | var lon = 0; var lat = 0; | 3094 | var lon = 0; var lat = 0; |
3012 | - //---循环购物车--- | 3095 | + //---循环购物车,按照门店订单进行循环--- |
3013 | for (var i in c_arr) { | 3096 | for (var i in c_arr) { |
3014 | //因为搭配购买也是再这里计算,搭配购的is_b_now==1 | 3097 | //因为搭配购买也是再这里计算,搭配购的is_b_now==1 |
3015 | if (th.data.is_b_now == 0) { | 3098 | if (th.data.is_b_now == 0) { |
@@ -3047,15 +3130,15 @@ Page({ | @@ -3047,15 +3130,15 @@ Page({ | ||
3047 | 3130 | ||
3048 | var no_order_yh = 0; //-- 有些活动不能和订单优惠叠加的金额 -- | 3131 | var no_order_yh = 0; //-- 有些活动不能和订单优惠叠加的金额 -- |
3049 | var no_post_temp = 0; //-- 有些活动不能和包邮模板的金额 -- | 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 | if (th.data.using_quan[pickid] != null && th.data.using_quan[pickid] != undefined) | 3136 | if (th.data.using_quan[pickid] != null && th.data.using_quan[pickid] != undefined) |
3052 | quan_no = th.data.using_quan[pickid].coupon_no; | 3137 | quan_no = th.data.using_quan[pickid].coupon_no; |
3053 | 3138 | ||
3054 | //普通券的时候 | 3139 | //普通券的时候 |
3055 | if (quan_no && th.data.using_quan[pickid].isby != 1) { | 3140 | if (quan_no && th.data.using_quan[pickid].isby != 1) { |
3056 | - | ||
3057 | var IsUserWare=1; | 3141 | var IsUserWare=1; |
3058 | - | ||
3059 | //---获取优惠券优惠--- | 3142 | //---获取优惠券优惠--- |
3060 | await getApp().request.promiseGet("/api/weshop/couponList/getUseCouponPrice", { | 3143 | await getApp().request.promiseGet("/api/weshop/couponList/getUseCouponPrice", { |
3061 | data: { | 3144 | data: { |
@@ -3076,13 +3159,10 @@ Page({ | @@ -3076,13 +3159,10 @@ Page({ | ||
3076 | quan_price=0; | 3159 | quan_price=0; |
3077 | break; | 3160 | break; |
3078 | } | 3161 | } |
3079 | - | ||
3080 | } | 3162 | } |
3081 | - | ||
3082 | } | 3163 | } |
3083 | }) | 3164 | }) |
3084 | 3165 | ||
3085 | - | ||
3086 | if(!IsUserWare){ | 3166 | if(!IsUserWare){ |
3087 | 3167 | ||
3088 | wx.showToast({ | 3168 | wx.showToast({ |
@@ -3112,6 +3192,11 @@ Page({ | @@ -3112,6 +3192,11 @@ Page({ | ||
3112 | 3192 | ||
3113 | //--------循环计算总价----------- | 3193 | //--------循环计算总价----------- |
3114 | for (var jc = 0; jc < item.length; jc++) { | 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 | if (item[jc].whsle_id > 0) { | 3201 | if (item[jc].whsle_id > 0) { |
3117 | whsle_goods_price += item[jc].goods_price * item[jc].goods_num; | 3202 | whsle_goods_price += item[jc].goods_price * item[jc].goods_num; |
@@ -3124,11 +3209,13 @@ Page({ | @@ -3124,11 +3209,13 @@ Page({ | ||
3124 | if (item[jc].prom_type == 7 && th.data.zhhe_act_map && th.data.zhhe_act_map[item[jc].prom_id] | 3209 | if (item[jc].prom_type == 7 && th.data.zhhe_act_map && th.data.zhhe_act_map[item[jc].prom_id] |
3125 | && th.data.zhhe_act_map[item[jc].prom_id].is_orderyh) { | 3210 | && th.data.zhhe_act_map[item[jc].prom_id].is_orderyh) { |
3126 | is_no_zh = 1; | 3211 | is_no_zh = 1; |
3212 | + th.get_order_prom_map_ck(item[jc],pickid); //有订单优惠叠加的时候,就要构建数据解救 | ||
3127 | } | 3213 | } |
3128 | //阶梯购的商品,且有订单优惠的叠加,is_orderyh就是优惠叠加,就要累积阶梯促销的金额 | 3214 | //阶梯购的商品,且有订单优惠的叠加,is_orderyh就是优惠叠加,就要累积阶梯促销的金额 |
3129 | if (item[jc].prom_type == 10 && ladder_prom_goods && ladder_prom_goods[item[jc].prom_id] | 3215 | if (item[jc].prom_type == 10 && ladder_prom_goods && ladder_prom_goods[item[jc].prom_id] |
3130 | && th.data.ladder_map[item[jc].prom_id].is_useorderyh) { | 3216 | && th.data.ladder_map[item[jc].prom_id].is_useorderyh) { |
3131 | is_no_zh = 1; | 3217 | is_no_zh = 1; |
3218 | + th.get_order_prom_map_ck(item[jc],pickid); //有订单优惠叠加的时候,就要构建数据解救 | ||
3132 | } | 3219 | } |
3133 | 3220 | ||
3134 | if (is_no_zh) { | 3221 | if (is_no_zh) { |
@@ -3144,20 +3231,28 @@ Page({ | @@ -3144,20 +3231,28 @@ Page({ | ||
3144 | var gd_price=item[jc].goods_price; | 3231 | var gd_price=item[jc].goods_price; |
3145 | if(item[jc].account_fir) gd_price=item[jc].account_fir; | 3232 | if(item[jc].account_fir) gd_price=item[jc].account_fir; |
3146 | 3233 | ||
3147 | - | ||
3148 | - //组合购和阶梯购是订单优惠是另外算的 | 3234 | + //组合购和阶梯购是订单优惠是另外算的,不参与订单促销的时候 |
3149 | if(!item[jc].is_order_yh && !item[jc].whsle_id && item[jc].prom_type!=7 && item[jc].prom_type!=10){ | 3235 | if(!item[jc].is_order_yh && !item[jc].whsle_id && item[jc].prom_type!=7 && item[jc].prom_type!=10){ |
3150 | no_order_yh+=gd_price * item[jc].goods_num; | 3236 | no_order_yh+=gd_price * item[jc].goods_num; |
3151 | if(item[jc].quan_num) no_order_yh-=item[jc].quan_num; //券要把他补回去 | 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 | if(!item[jc].is_post_temp){ | 3244 | if(!item[jc].is_post_temp){ |
3155 | no_post_temp+=gd_price * item[jc].goods_num; | 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 | if(item[jc].quan_num) no_post_temp-=item[jc].quan_num; //券要把他补回去 | 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 | var f_o_price = o_price; | 3257 | var f_o_price = o_price; |
3163 | //如果又优惠的钱,就要减价 | 3258 | //如果又优惠的钱,就要减价 |
@@ -3236,21 +3331,33 @@ Page({ | @@ -3236,21 +3331,33 @@ Page({ | ||
3236 | ord_prom_condition=o_price - quan_price - whsle_goods_price - no_order_yh; | 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 | if(quan_price>0 && ord_prom && ord_prom.is_xz_yh ){ | 3357 | if(quan_price>0 && ord_prom && ord_prom.is_xz_yh ){ |
3250 | ord_prom=null; | 3358 | ord_prom=null; |
3251 | } | 3359 | } |
3252 | 3360 | ||
3253 | - | ||
3254 | //--如果是物流,且选择了地址,就要开始显示包邮券,且包邮券也已经优惠了优惠活动的金额-- | 3361 | //--如果是物流,且选择了地址,就要开始显示包邮券,且包邮券也已经优惠了优惠活动的金额-- |
3255 | if (cart_item.exp_type == 0 && th.data.user_addr != null && !cart_item.is_xz_yh) { | 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,10 +3407,23 @@ Page({ | ||
3300 | 3407 | ||
3301 | //-- 如果没有订单优惠,或者订单优惠中有勾选包邮模板 -- | 3408 | //-- 如果没有订单优惠,或者订单优惠中有勾选包邮模板 -- |
3302 | if (!ord_prom || ord_prom.is_post_temp) { | 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 | var req_d = { | 3424 | var req_d = { |
3305 | province: user_addr.province, city: user_addr.city, district: user_addr.district, | 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 | await getApp().request.promisePost("/api/weshop/order/areaFreight", { | 3428 | await getApp().request.promisePost("/api/weshop/order/areaFreight", { |
3309 | is_json: 1, data: req_d | 3429 | is_json: 1, data: req_d |
@@ -3313,7 +3433,6 @@ Page({ | @@ -3313,7 +3433,6 @@ Page({ | ||
3313 | } | 3433 | } |
3314 | } | 3434 | } |
3315 | 3435 | ||
3316 | - | ||
3317 | //如果是包邮券的时候,要看看券的情况 | 3436 | //如果是包邮券的时候,要看看券的情况 |
3318 | if (quan_no && th.data.using_quan[pickid].isby == 1) { | 3437 | if (quan_no && th.data.using_quan[pickid].isby == 1) { |
3319 | var quan = th.data.using_quan[pickid]; | 3438 | var quan = th.data.using_quan[pickid]; |
@@ -3504,24 +3623,25 @@ Page({ | @@ -3504,24 +3623,25 @@ Page({ | ||
3504 | } | 3623 | } |
3505 | 3624 | ||
3506 | var order_m = 0; | 3625 | var order_m = 0; |
3507 | - | ||
3508 | //么有使用券,或者活动没有限制使用优惠券 | 3626 | //么有使用券,或者活动没有限制使用优惠券 |
3509 | if (ord_prom && (quan_price <= 0 || !ord_prom.is_xz_yh)) { | 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 | cart_item.order_prom_amount = 0; | 3647 | cart_item.order_prom_amount = 0; |
@@ -3930,7 +4050,7 @@ Page({ | @@ -3930,7 +4050,7 @@ Page({ | ||
3930 | //---如果有选择优惠券的情况下--- | 4050 | //---如果有选择优惠券的情况下--- |
3931 | var quan_price = 0, bn_pick = th.data.bn_pick; | 4051 | var quan_price = 0, bn_pick = th.data.bn_pick; |
3932 | var quan_no = null; | 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 | quan_no = th.data.using_quan[bn_pick].coupon_no; | 4054 | quan_no = th.data.using_quan[bn_pick].coupon_no; |
3935 | 4055 | ||
3936 | if (quan_no) { | 4056 | if (quan_no) { |
@@ -3964,15 +4084,22 @@ Page({ | @@ -3964,15 +4084,22 @@ Page({ | ||
3964 | var ord_prom = null; | 4084 | var ord_prom = null; |
3965 | var is_ord_prom_post = 0; | 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 | if (ord_prom && ord_prom.is_post_temp) { | 4103 | if (ord_prom && ord_prom.is_post_temp) { |
3977 | is_ord_prom_post = 1; | 4104 | is_ord_prom_post = 1; |
3978 | } | 4105 | } |
@@ -4717,6 +4844,9 @@ Page({ | @@ -4717,6 +4844,9 @@ Page({ | ||
4717 | if (th.data.wu_arr == null || th.data.wu_arr.length <= 0) { | 4844 | if (th.data.wu_arr == null || th.data.wu_arr.length <= 0) { |
4718 | getApp().my_warnning("读取物流失败", 0, th); | 4845 | getApp().my_warnning("读取物流失败", 0, th); |
4719 | th.data.is_summit_ing = 0; | 4846 | th.data.is_summit_ing = 0; |
4847 | + th.setData({ | ||
4848 | + submit: 0 | ||
4849 | + }) | ||
4720 | return false; | 4850 | return false; |
4721 | } | 4851 | } |
4722 | 4852 | ||
@@ -4853,6 +4983,29 @@ Page({ | @@ -4853,6 +4983,29 @@ Page({ | ||
4853 | 'prom_id': th.data.bn_goods.prom_id, //促销活动id | 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 | if (th.data.bn_goods.whsle_id) { | 5009 | if (th.data.bn_goods.whsle_id) { |
4857 | item.is_whsle = 1; | 5010 | item.is_whsle = 1; |
4858 | item.whsle_id = th.data.bn_goods.whsle_id; | 5011 | item.whsle_id = th.data.bn_goods.whsle_id; |
@@ -4903,11 +5056,17 @@ Page({ | @@ -4903,11 +5056,17 @@ Page({ | ||
4903 | if(mo_num>goods.goods_num){ | 5056 | if(mo_num>goods.goods_num){ |
4904 | getApp().confirmBox(goods.goods_name + "的未达到起订数量"); | 5057 | getApp().confirmBox(goods.goods_name + "的未达到起订数量"); |
4905 | th.data.is_summit_ing = 0; | 5058 | th.data.is_summit_ing = 0; |
5059 | + th.setData({ | ||
5060 | + submit: 0 | ||
5061 | + }) | ||
4906 | return false; | 5062 | return false; |
4907 | } | 5063 | } |
4908 | if(steep>1 && (goods.goods_num-mo_num)%steep!=0 ){ | 5064 | if(steep>1 && (goods.goods_num-mo_num)%steep!=0 ){ |
4909 | getApp().confirmBox(goods.goods_name + "的购买的数量不是起订量的倍数"); | 5065 | getApp().confirmBox(goods.goods_name + "的购买的数量不是起订量的倍数"); |
4910 | th.data.is_summit_ing = 0; | 5066 | th.data.is_summit_ing = 0; |
5067 | + th.setData({ | ||
5068 | + submit: 0 | ||
5069 | + }) | ||
4911 | return false; | 5070 | return false; |
4912 | } | 5071 | } |
4913 | } | 5072 | } |
@@ -4922,6 +5081,9 @@ Page({ | @@ -4922,6 +5081,9 @@ Page({ | ||
4922 | if (!isok) { | 5081 | if (!isok) { |
4923 | getApp().confirmBox("商品的门店库存不足"); | 5082 | getApp().confirmBox("商品的门店库存不足"); |
4924 | th.data.is_summit_ing = 0; | 5083 | th.data.is_summit_ing = 0; |
5084 | + th.setData({ | ||
5085 | + submit: 0 | ||
5086 | + }) | ||
4925 | return false; | 5087 | return false; |
4926 | } | 5088 | } |
4927 | } | 5089 | } |
@@ -5040,6 +5202,9 @@ Page({ | @@ -5040,6 +5202,9 @@ Page({ | ||
5040 | if (th.data.wu_arr == null || th.data.wu_arr.length <= 0) { | 5202 | if (th.data.wu_arr == null || th.data.wu_arr.length <= 0) { |
5041 | th.data.is_summit_ing = 0; | 5203 | th.data.is_summit_ing = 0; |
5042 | getApp().confirmBox("读取物流失败"); | 5204 | getApp().confirmBox("读取物流失败"); |
5205 | + th.setData({ | ||
5206 | + submit: 0 | ||
5207 | + }) | ||
5043 | return false; | 5208 | return false; |
5044 | } | 5209 | } |
5045 | } | 5210 | } |
@@ -5246,6 +5411,26 @@ Page({ | @@ -5246,6 +5411,26 @@ Page({ | ||
5246 | 'store_id': oo.stoid, | 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 | if (g_item.is_pd_normal) { | 5434 | if (g_item.is_pd_normal) { |
5250 | goods.is_pd_normal = 1; | 5435 | goods.is_pd_normal = 1; |
5251 | } | 5436 | } |
@@ -6531,6 +6716,7 @@ Page({ | @@ -6531,6 +6716,7 @@ Page({ | ||
6531 | get_cart_quan: async function (order_prom_list_cart) { | 6716 | get_cart_quan: async function (order_prom_list_cart) { |
6532 | var th = this; | 6717 | var th = this; |
6533 | var user_id = getApp().globalData.user_id; | 6718 | var user_id = getApp().globalData.user_id; |
6719 | + | ||
6534 | //等待值的出现 | 6720 | //等待值的出现 |
6535 | //getApp().waitfor2(this,"g_cart_q_time","order_prom_list_cart",async function () { | 6721 | //getApp().waitfor2(this,"g_cart_q_time","order_prom_list_cart",async function () { |
6536 | //var arr=th.data.order_prom_list_cart; | 6722 | //var arr=th.data.order_prom_list_cart; |
@@ -6542,6 +6728,12 @@ Page({ | @@ -6542,6 +6728,12 @@ Page({ | ||
6542 | //------------开始计算使用优惠券相关------------ | 6728 | //------------开始计算使用优惠券相关------------ |
6543 | for (var ind in arr) { | 6729 | for (var ind in arr) { |
6544 | var ep = arr[ind]; | 6730 | var ep = arr[ind]; |
6731 | + | ||
6732 | + //如果门店订单使用订单促销(此订单促销取价规则不是实收价的时候) | ||
6733 | + if(th.data.can_use_ord_prom[ep.pickup_id]){ | ||
6734 | + continue; | ||
6735 | + } | ||
6736 | + | ||
6545 | var goodlist = ep.goods; | 6737 | var goodlist = ep.goods; |
6546 | var pickup_id = ep.pickup_id; | 6738 | var pickup_id = ep.pickup_id; |
6547 | //--更优惠券抵用有关,立即购买的,如果是购物车,如果有等级价还有考虑等级价的东西 | 6739 | //--更优惠券抵用有关,立即购买的,如果是购物车,如果有等级价还有考虑等级价的东西 |
@@ -8423,10 +8615,13 @@ Page({ | @@ -8423,10 +8615,13 @@ Page({ | ||
8423 | 8615 | ||
8424 | var cx_prom_group=this.data.cartlist[idx].show_can_cx[gd_key].act_arr; | 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 | th.setData({ | 8620 | th.setData({ |
8427 | send_lb:{}, | 8621 | send_lb:{}, |
8428 | month_lb:{}, | 8622 | month_lb:{}, |
8429 | - send_gf:{} | 8623 | + send_gf:{}, |
8624 | + [tt_wd]:0 | ||
8430 | }) | 8625 | }) |
8431 | 8626 | ||
8432 | th.data.prom_goods_map={}; | 8627 | th.data.prom_goods_map={}; |
@@ -8635,6 +8830,9 @@ Page({ | @@ -8635,6 +8830,9 @@ Page({ | ||
8635 | 8830 | ||
8636 | //--- 不参与优惠促销的开关 --- | 8831 | //--- 不参与优惠促销的开关 --- |
8637 | no_cj_prom: function (e) { | 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 | //重新调用cart_next,进行下一步计算 | 8837 | //重新调用cart_next,进行下一步计算 |
8640 | wx.showLoading({ | 8838 | wx.showLoading({ |
@@ -8719,16 +8917,245 @@ Page({ | @@ -8719,16 +8917,245 @@ Page({ | ||
8719 | if(!goods[ig].is_gift){ | 8917 | if(!goods[ig].is_gift){ |
8720 | n_goods.push(goods[ig]); | 8918 | n_goods.push(goods[ig]); |
8721 | } | 8919 | } |
8722 | - } | 8920 | + } |
8921 | + | ||
8723 | //原始数据要有深拷贝不能有地址的牵连 | 8922 | //原始数据要有深拷贝不能有地址的牵连 |
8724 | th.data.cartlist_y = JSON.parse(JSON.stringify(n_goods)) | 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 | this.get_cart_next(null, 1, {prom_type: 0, prom_id: 0}); | 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,9 +104,9 @@ | ||
104 | <block><text>{{filters.show_gui_ge(items.goods_spec,items.goods_color)}}</text></block> | 104 | <block><text>{{filters.show_gui_ge(items.goods_spec,items.goods_color)}}</text></block> |
105 | </view> | 105 | </view> |
106 | </view> | 106 | </view> |
107 | - | ||
108 | <!-----商品名称规格------> | 107 | <!-----商品名称规格------> |
109 | <view class="order-num flex-space-between"> | 108 | <view class="order-num flex-space-between"> |
109 | + <!-- 动态显示商品的价格 --> | ||
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> | 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 | <view wx:else class="co-red">¥<text class="fs36">{{filters.toFix(items.goods_price,2)}}</text></view> | 111 | <view wx:else class="co-red">¥<text class="fs36">{{filters.toFix(items.goods_price,2)}}</text></view> |
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> | 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,8 +171,10 @@ | ||
171 | </block> | 171 | </block> |
172 | </block> | 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 | <view class="use-item" data-pidx="{{pidx}}" data-can_cx_idx="{{items.goods_id}}" bindtap='no_cj_prom'> | 178 | <view class="use-item" data-pidx="{{pidx}}" data-can_cx_idx="{{items.goods_id}}" bindtap='no_cj_prom'> |
177 | <icon color="{{!item.show_can_cx[items.goods_id].no_cj_prom?'red':'gray'}}" size="16" type="success"></icon> | 179 | <icon color="{{!item.show_can_cx[items.goods_id].no_cj_prom?'red':'gray'}}" size="16" type="success"></icon> |
178 | <view class="yu_er">参与优惠活动</view> | 180 | <view class="yu_er">参与优惠活动</view> |
@@ -234,12 +236,15 @@ | @@ -234,12 +236,15 @@ | ||
234 | </block> | 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 | </view> | 246 | </view> |
242 | - </view> | 247 | + </block> |
243 | 248 | ||
244 | </block> | 249 | </block> |
245 | </block> | 250 | </block> |
@@ -348,6 +353,14 @@ | @@ -348,6 +353,14 @@ | ||
348 | </block> | 353 | </block> |
349 | </view> | 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 | <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}}"> | 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 | <view class="work-frame flex-space-between"> | 366 | <view class="work-frame flex-space-between"> |
@@ -679,6 +692,14 @@ | @@ -679,6 +692,14 @@ | ||
679 | <icon color="#f23030" size="16" type="info"></icon>{{order.store_prom}} | 692 | <icon color="#f23030" size="16" type="info"></icon>{{order.store_prom}} |
680 | </view> | 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 | <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)}}"> | 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 | <view class="work-frame flex-space-between"> | 704 | <view class="work-frame flex-space-between"> |
684 | <view class="work"> | 705 | <view class="work"> |
@@ -1096,7 +1117,7 @@ | @@ -1096,7 +1117,7 @@ | ||
1096 | </view> | 1117 | </view> |
1097 | <view class="count"> | 1118 | <view class="count"> |
1098 | <view bindtap="{{items.goods_num <= 1 ? '':'subNum'}}" class="sub fs28 {{items.goods_num <= 1 ? 'active':''}}" data-pitems="{{pidx}}" data-item="{{idx}}">一</view> | 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 | <view class="add" bindtap="addNum" data-item="{{idx}}">+</view> | 1121 | <view class="add" bindtap="addNum" data-item="{{idx}}">+</view> |
1101 | </view> | 1122 | </view> |
1102 | </view> | 1123 | </view> |
packageE/pages/cart/cart2/filter.wxs
@@ -49,14 +49,11 @@ function check_is_last(index,goods_id){ | @@ -49,14 +49,11 @@ function check_is_last(index,goods_id){ | ||
49 | return true; | 49 | return true; |
50 | } | 50 | } |
51 | return false; | 51 | return false; |
52 | - | ||
53 | } | 52 | } |
54 | 53 | ||
55 | - | ||
56 | - | ||
57 | module.exports = { | 54 | module.exports = { |
58 | format: format, | 55 | format: format, |
59 | is_more_act:is_more_act, | 56 | is_more_act:is_more_act, |
60 | check_show:check_show, | 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,6 +115,11 @@ module.exports = { | ||
115 | }) | 115 | }) |
116 | //goods[idx].goods_num -= num; | 116 | //goods[idx].goods_num -= num; |
117 | let new_g = JSON.parse(JSON.stringify(goods[idx])); | 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 | new_g.goods_num = num; | 123 | new_g.goods_num = num; |
119 | new_g.prom_type = 0; | 124 | new_g.prom_type = 0; |
120 | new_g.prom_id = 0; | 125 | new_g.prom_id = 0; |
packageE/pages/cart/cart2/zh_calculate.js
@@ -270,6 +270,11 @@ module.exports = { | @@ -270,6 +270,11 @@ module.exports = { | ||
270 | let new_g = JSON.parse(JSON.stringify(goods[idx])); | 270 | let new_g = JSON.parse(JSON.stringify(goods[idx])); |
271 | 271 | ||
272 | if(new_g.more_cx) delete new_g.more_cx; | 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 | new_g.goods_num = num; | 278 | new_g.goods_num = num; |
274 | new_g.prom_type = 0; | 279 | new_g.prom_type = 0; |
275 | new_g.prom_id = 0; | 280 | new_g.prom_id = 0; |
@@ -331,6 +336,11 @@ module.exports = { | @@ -331,6 +336,11 @@ module.exports = { | ||
331 | offline_price += item.goods_price - item.offline_price; | 336 | offline_price += item.goods_price - item.offline_price; |
332 | offline_num += 1; | 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 | item.prom_type = 0; | 344 | item.prom_type = 0; |
335 | item.prom_id = 0; | 345 | item.prom_id = 0; |
336 | } | 346 | } |
packageE/pages/cart/cart2_inte/cart2_inte.js
@@ -85,7 +85,14 @@ Page({ | @@ -85,7 +85,14 @@ Page({ | ||
85 | same_ok:1, //同城配送的控制,默认ok | 85 | same_ok:1, //同城配送的控制,默认ok |
86 | bconfig: null, | 86 | bconfig: null, |
87 | showFold:true, | 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,6 +639,8 @@ Page({ | ||
632 | success: async function (tt) { | 639 | success: async function (tt) { |
633 | if (tt.data.code == 0 && tt.data.data && tt.data.data.pageData) { | 640 | if (tt.data.code == 0 && tt.data.data && tt.data.data.pageData) { |
634 | var inte_data = tt.data.data.pageData[0]; | 641 | var inte_data = tt.data.data.pageData[0]; |
642 | + | ||
643 | + gd.shop_price_y=gd.shop_price; | ||
635 | t.data.data.shop_price = inte_data.addmoney; | 644 | t.data.data.shop_price = inte_data.addmoney; |
636 | t.data.data.integral = inte_data.integral; | 645 | t.data.data.integral = inte_data.integral; |
637 | 646 | ||
@@ -658,6 +667,9 @@ Page({ | @@ -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 | th.setData({ | 673 | th.setData({ |
662 | bn_goods: t.data.data, bn_pickname: gg.pick_name, bn_exp_type: et, index: m_wind, | 674 | bn_goods: t.data.data, bn_pickname: gg.pick_name, bn_exp_type: et, index: m_wind, |
663 | bn_pick: gg.pick_id, bn_t_exp_t: distr_t, bn_exp_type: et,inv_is_post:inte_data.is_post | 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,16 +754,23 @@ Page({ | ||
742 | var condition = parseFloat(allpice-cut_price).toFixed(2); | 754 | var condition = parseFloat(allpice-cut_price).toFixed(2); |
743 | var ord_prom = null; | 755 | var ord_prom = null; |
744 | var is_ord_prom_post = 0; | 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 | if (ord_prom && ord_prom.is_post_temp) { | 774 | if (ord_prom && ord_prom.is_post_temp) { |
756 | is_ord_prom_post = 1; | 775 | is_ord_prom_post = 1; |
757 | } | 776 | } |
@@ -894,8 +913,7 @@ Page({ | @@ -894,8 +913,7 @@ Page({ | ||
894 | var wl_txt = "formData.shipping_price"; | 913 | var wl_txt = "formData.shipping_price"; |
895 | th.setData({ [wl_txt]: 0, }) | 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 | var total_m = (parseFloat(allpice)).toFixed(2); | 919 | var total_m = (parseFloat(allpice)).toFixed(2); |
@@ -1281,7 +1299,6 @@ Page({ | @@ -1281,7 +1299,6 @@ Page({ | ||
1281 | item.samecity_order_amount=th.data.bn_samecity_order_amount; | 1299 | item.samecity_order_amount=th.data.bn_samecity_order_amount; |
1282 | } | 1300 | } |
1283 | 1301 | ||
1284 | - | ||
1285 | //获取立即购买的商品的信息 | 1302 | //获取立即购买的商品的信息 |
1286 | var gg = to.get_b_now(); | 1303 | var gg = to.get_b_now(); |
1287 | //--商品的房间号-- | 1304 | //--商品的房间号-- |
@@ -1319,6 +1336,31 @@ Page({ | @@ -1319,6 +1336,31 @@ Page({ | ||
1319 | 'prom_id': th.data.bn_goods.prom_id, //促销活动id | 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 | if(getApp().globalData.skinface_id){ | 1364 | if(getApp().globalData.skinface_id){ |
1323 | goods.skinface_id=getApp().globalData.skinface_id; | 1365 | goods.skinface_id=getApp().globalData.skinface_id; |
1324 | } | 1366 | } |
@@ -1757,7 +1799,146 @@ Page({ | @@ -1757,7 +1799,146 @@ Page({ | ||
1757 | var th = this; | 1799 | var th = this; |
1758 | th.setData({bn_use_commission: !th.data.bn_use_commission}); | 1800 | th.setData({bn_use_commission: !th.data.bn_use_commission}); |
1759 | th.calculatePrice2(); | 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,6 +94,14 @@ | ||
94 | <icon color="#f23030" size="16" type="info"></icon>{{order.store_prom}} | 94 | <icon color="#f23030" size="16" type="info"></icon>{{order.store_prom}} |
95 | </view> | 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 | <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}}"> | 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 | <view class="work-frame flex-space-between"> | 106 | <view class="work-frame flex-space-between"> |
99 | <view class="work"> | 107 | <view class="work"> |
packageE/pages/cart/cart2_pt/cart2_pt.js
@@ -90,6 +90,13 @@ Page({ | @@ -90,6 +90,13 @@ Page({ | ||
90 | is_no_by: {}, | 90 | is_no_by: {}, |
91 | is_by: {}, | 91 | is_by: {}, |
92 | is_quan_by: {}, | 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,7 +451,9 @@ Page({ | ||
444 | et = 2; | 451 | et = 2; |
445 | } | 452 | } |
446 | 453 | ||
454 | + t.data.data.shop_price_y=t.data.data.shop_price | ||
447 | t.data.data.shop_price = gg.goods_price; | 455 | t.data.data.shop_price = gg.goods_price; |
456 | + | ||
448 | //--如果是普通购买的时候-- | 457 | //--如果是普通购买的时候-- |
449 | if (gg.is_normal == 1) { | 458 | if (gg.is_normal == 1) { |
450 | t.data.data.prom_id = 0; | 459 | t.data.data.prom_id = 0; |
@@ -485,6 +494,8 @@ Page({ | @@ -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 | th.setData({ | 500 | th.setData({ |
490 | bn_goods: t.data.data, bn_pickname: gg.pick_name, | 501 | bn_goods: t.data.data, bn_pickname: gg.pick_name, |
@@ -568,7 +579,6 @@ Page({ | @@ -568,7 +579,6 @@ Page({ | ||
568 | et = th.data.bn_exp_type; | 579 | et = th.data.bn_exp_type; |
569 | } | 580 | } |
570 | 581 | ||
571 | - | ||
572 | //-- 计算获得佣金的金额 -- | 582 | //-- 计算获得佣金的金额 -- |
573 | if (getApp().globalData.userInfo.is_distribut | 583 | if (getApp().globalData.userInfo.is_distribut |
574 | && th.data.dis_config && th.data.dis_config.is_yongjin_dk) { | 584 | && th.data.dis_config && th.data.dis_config.is_yongjin_dk) { |
@@ -591,6 +601,8 @@ Page({ | @@ -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 | th.setData({ | 607 | th.setData({ |
596 | bn_goods: t.data.data, bn_pickname: gg.pick_name, | 608 | bn_goods: t.data.data, bn_pickname: gg.pick_name, |
@@ -834,13 +846,17 @@ Page({ | @@ -834,13 +846,17 @@ Page({ | ||
834 | 846 | ||
835 | if(th.data.bn_is_order_yh && th.data.kt_type != 3 ){ | 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,6 +1484,31 @@ Page({ | ||
1468 | 'prom_id': th.data.bn_goods.prom_id, //促销活动id | 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 | if (getApp().globalData.skinface_id) { | 1512 | if (getApp().globalData.skinface_id) { |
1472 | goods.skinface_id = getApp().globalData.skinface_id; | 1513 | goods.skinface_id = getApp().globalData.skinface_id; |
1473 | } | 1514 | } |
@@ -2260,6 +2301,152 @@ Page({ | @@ -2260,6 +2301,152 @@ Page({ | ||
2260 | th.setData({ open_quan: 0 }); | 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,6 +102,13 @@ | ||
102 | <icon color="#f23030" size="16" type="info"></icon>{{order.store_prom}} | 102 | <icon color="#f23030" size="16" type="info"></icon>{{order.store_prom}} |
103 | </view> | 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 | <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}}"> | 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 | <view class="work-frame flex-space-between"> | 114 | <view class="work-frame flex-space-between"> |
packageE/pages/cart/cart_wk/cart_wk.js
@@ -539,6 +539,9 @@ Page({ | @@ -539,6 +539,9 @@ Page({ | ||
539 | }).then(res => { | 539 | }).then(res => { |
540 | if (res.data.code == 0) { | 540 | if (res.data.code == 0) { |
541 | ord_prom = res.data.data; | 541 | ord_prom = res.data.data; |
542 | + | ||
543 | + //如果订单促销的取价不是实收,清空订单促销 | ||
544 | + if(ord_prom && ord_prom.discount_field>0) ord_prom=null; | ||
542 | } | 545 | } |
543 | }) | 546 | }) |
544 | } | 547 | } |
packageG/pages/user/order_detail/order_detail.js
@@ -1157,13 +1157,39 @@ Page({ | @@ -1157,13 +1157,39 @@ Page({ | ||
1157 | //-- 优惠促销的时候控制取价规则 -- | 1157 | //-- 优惠促销的时候控制取价规则 -- |
1158 | // gg.prom_type!=3 && gg.prom_type!=10 同时商品不是普通购买的时候,又参与优惠促销,阶梯促销 | 1158 | // gg.prom_type!=3 && gg.prom_type!=10 同时商品不是普通购买的时候,又参与优惠促销,阶梯促销 |
1159 | if((gg.prom_type!=3 && gg.prom_type!=10) || gg.discount_field==undefined || gg.discount_field==0 ) { | 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 | }else{ | 1194 | }else{ |
1169 | if(good.prom_type==3 && good.prom_type==10){ | 1195 | if(good.prom_type==3 && good.prom_type==10){ |
pages/cart/cart/cart.js
@@ -1192,10 +1192,10 @@ Page({ | @@ -1192,10 +1192,10 @@ Page({ | ||
1192 | // if (this.data.btn_click) { | 1192 | // if (this.data.btn_click) { |
1193 | // return false; | 1193 | // return false; |
1194 | // } | 1194 | // } |
1195 | + | ||
1195 | setTimeout(() => { | 1196 | setTimeout(() => { |
1196 | if (this.data.up_dating == 1) return false; | 1197 | if (this.data.up_dating == 1) return false; |
1197 | this.data.up_dating=1 | 1198 | this.data.up_dating=1 |
1198 | - | ||
1199 | this.data.btn_click = 1; | 1199 | this.data.btn_click = 1; |
1200 | var a = t.currentTarget.dataset.item; | 1200 | var a = t.currentTarget.dataset.item; |
1201 | var b = t.currentTarget.dataset.pitems; | 1201 | var b = t.currentTarget.dataset.pitems; |
pages/user/order_list/order_list.js
@@ -1446,14 +1446,43 @@ Page({ | @@ -1446,14 +1446,43 @@ Page({ | ||
1446 | //-- 优惠促销的时候控制取价规则 -- | 1446 | //-- 优惠促销的时候控制取价规则 -- |
1447 | // gg.prom_type!=3 && gg.prom_type!=10 同时商品不是普通购买的时候,又参与优惠促销,阶梯促销 | 1447 | // gg.prom_type!=3 && gg.prom_type!=10 同时商品不是普通购买的时候,又参与优惠促销,阶梯促销 |
1448 | if((gg.prom_type!=3 && gg.prom_type!=10) || gg.discount_field==undefined || gg.discount_field==0 ){ | 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 | }else{ | 1486 | }else{ |
1458 | 1487 | ||
1459 | if(good.prom_type==3 || good.prom_type==10 ){ | 1488 | if(good.prom_type==3 || good.prom_type==10 ){ |