Commit 37406bb518caf04b0369a3b943a08d0fd372b9ca
1 parent
4ebe2a58
立即购买的时候,秒杀和团购参与订单促销取价的优化
Showing
2 changed files
with
127 additions
and
17 deletions
packageE/pages/cart/cart2/cart2.js
... | ... | @@ -2133,6 +2133,8 @@ Page({ |
2133 | 2133 | success: async function (tt) { |
2134 | 2134 | if (tt.data.code == 0) { |
2135 | 2135 | //t.data.data.shop_price = tt.data.data.prom_price; |
2136 | + | |
2137 | + gd.shop_price_y=gd.shop_price; | |
2136 | 2138 | gd.shop_price=t.data.data.shop_price = tt.data.data.prom_user_price; |
2137 | 2139 | th.data.ckeck_quan_price = 0; |
2138 | 2140 | |
... | ... | @@ -2181,6 +2183,9 @@ Page({ |
2181 | 2183 | } |
2182 | 2184 | |
2183 | 2185 | |
2186 | + //用深拷贝把商品缓存起来,方便后面使用 | |
2187 | + th.data.old_bn_goods=ut.deep_cp(gd); | |
2188 | + | |
2184 | 2189 | th.setData({ |
2185 | 2190 | bn_goods: gd, |
2186 | 2191 | bn_pickname: gg.pick_name, |
... | ... | @@ -2209,6 +2214,7 @@ Page({ |
2209 | 2214 | ut.get_active_info(2,gd.prom_id,os.stoid,function(e){ |
2210 | 2215 | |
2211 | 2216 | //t.data.data.shop_price = tt.data.data.prom_price; |
2217 | + gd.shop_price_y=gd.shop_price; | |
2212 | 2218 | gd.shop_price=t.data.data.shop_price = tt.data.data.price; |
2213 | 2219 | |
2214 | 2220 | t.data.data.fir_rate = tt.data.data.fir_rate; |
... | ... | @@ -2248,6 +2254,10 @@ Page({ |
2248 | 2254 | gd.is_xz_yh = 1; |
2249 | 2255 | } |
2250 | 2256 | |
2257 | + | |
2258 | + //用深拷贝把商品缓存起来,方便后面使用 | |
2259 | + th.data.old_bn_goods=ut.deep_cp(gd); | |
2260 | + | |
2251 | 2261 | th.setData({ |
2252 | 2262 | bn_goods: gd, |
2253 | 2263 | bn_pickname: gg.pick_name, |
... | ... | @@ -3147,22 +3157,17 @@ Page({ |
3147 | 3157 | |
3148 | 3158 | |
3149 | 3159 | var whsle_goods_price = 0; |
3150 | - var whsle_shop_price = 0; | |
3151 | - var whsle_market_price = 0; | |
3152 | - | |
3153 | 3160 | var no_zh_all_quan_num=0; //不是组合购商品的使用的优惠券综合 |
3154 | 3161 | |
3155 | 3162 | //--------循环计算总价----------- |
3156 | 3163 | for (var jc = 0; jc < item.length; jc++) { |
3157 | 3164 | |
3158 | 3165 | if (item[jc].prom_type == 0) { //如果item的prom_type==0,没有如果活动的时候 |
3159 | - th.get_order_prom_map_ck(item,pickid); | |
3166 | + th.get_order_prom_map_ck(item[jc],pickid); | |
3160 | 3167 | } |
3161 | 3168 | |
3162 | 3169 | if (item[jc].whsle_id > 0) { |
3163 | 3170 | whsle_goods_price += item[jc].goods_price * item[jc].goods_num; |
3164 | - whsle_shop_price += item[jc].shop_price * item[jc].goods_num; | |
3165 | - whsle_market_price += item[jc].goods_market_price * item[jc].goods_num; | |
3166 | 3171 | } |
3167 | 3172 | |
3168 | 3173 | var is_no_zh = 0; |
... | ... | @@ -4047,15 +4052,22 @@ Page({ |
4047 | 4052 | var ord_prom = null; |
4048 | 4053 | var is_ord_prom_post = 0; |
4049 | 4054 | |
4050 | - if (condition > 0 && th.data.bn_is_order_yh && !th.data.bn_goods.whsle_id) { | |
4051 | - await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { | |
4052 | - data: { store_id: os.stoid, orderAmount: condition, user_id: getApp().globalData.user_id } | |
4053 | - }).then(res => { | |
4054 | - if (res.data.code == 0) { | |
4055 | - var data = res.data.data; | |
4056 | - ord_prom = data; | |
4057 | - } | |
4058 | - }) | |
4055 | + //一件代发商品不参与订单优惠, 本身商品的活动也有要不要参与优惠促销的设置bn_is_order_yh | |
4056 | + if (th.data.bn_is_order_yh && !th.data.bn_goods.whsle_id) { | |
4057 | + | |
4058 | + th.set_by_now_ord_prom(th.data.bn_goods); | |
4059 | + th.data.order_prom_map_ck[bn_pick].goods_price_all=condition; | |
4060 | + | |
4061 | + // await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { | |
4062 | + // data: { store_id: os.stoid, orderAmount: condition, user_id: getApp().globalData.user_id } | |
4063 | + // }).then(res => { | |
4064 | + // if (res.data.code == 0) { | |
4065 | + // var data = res.data.data; | |
4066 | + // ord_prom = data; | |
4067 | + // } | |
4068 | + // }) | |
4069 | + ord_prom=await th.get_cur_ord_prom(bn_pick); | |
4070 | + | |
4059 | 4071 | if (ord_prom && ord_prom.is_post_temp) { |
4060 | 4072 | is_ord_prom_post = 1; |
4061 | 4073 | } |
... | ... | @@ -8492,10 +8504,13 @@ Page({ |
8492 | 8504 | |
8493 | 8505 | var cx_prom_group=this.data.cartlist[idx].show_can_cx[gd_key].act_arr; |
8494 | 8506 | |
8507 | + //-- 切换活动的时候,让订单促销参与不选中 -- | |
8508 | + let tt_wd="can_use_ord_prom["+pk+"]"; | |
8495 | 8509 | th.setData({ |
8496 | 8510 | send_lb:{}, |
8497 | 8511 | month_lb:{}, |
8498 | - send_gf:{} | |
8512 | + send_gf:{}, | |
8513 | + [tt_wd]:0 | |
8499 | 8514 | }) |
8500 | 8515 | |
8501 | 8516 | th.data.prom_goods_map={}; |
... | ... | @@ -8704,6 +8719,9 @@ Page({ |
8704 | 8719 | |
8705 | 8720 | //--- 不参与优惠促销的开关 --- |
8706 | 8721 | no_cj_prom: function (e) { |
8722 | + //避免重复点击 | |
8723 | + if(this.data.submit) return false; | |
8724 | + this.setData({ submit: 1,same_ok:1 }); | |
8707 | 8725 | |
8708 | 8726 | this.setData({ |
8709 | 8727 | send_lb:{}, |
... | ... | @@ -8798,6 +8816,9 @@ Page({ |
8798 | 8816 | //---订单促销累计的数据结构的构建,购物车计算流程的那一部分 |
8799 | 8817 | get_order_prom_map_ck(item,pickid) { |
8800 | 8818 | |
8819 | + //赠品不计算 | |
8820 | + if(item.is_gift) return false; | |
8821 | + | |
8801 | 8822 | var order_prom_map_ck= this.data.order_prom_map_ck; |
8802 | 8823 | if(!order_prom_map_ck[pickid]){ |
8803 | 8824 | order_prom_map_ck[pickid]={ |
... | ... | @@ -8822,6 +8843,25 @@ Page({ |
8822 | 8843 | pk_ord_map.goodsList.push(ite); |
8823 | 8844 | }, |
8824 | 8845 | |
8846 | + | |
8847 | + //-- 秒杀和团购使用 -- | |
8848 | + set_by_now_ord_prom(item){ | |
8849 | + let pickid=this.data.bn_pick; | |
8850 | + let order_prom_map_ck= this.data.order_prom_map_ck; | |
8851 | + order_prom_map_ck[pickid]={ | |
8852 | + shop_price_all:0, //手店价的累计 | |
8853 | + market_price_all:0, //市场价的累计 | |
8854 | + goods_price_all:0, //实收价的累计 | |
8855 | + no_ord_price:0, //要累计上不参与订单促销的金额 | |
8856 | + goodsList:[], | |
8857 | + } | |
8858 | + | |
8859 | + let pk_ord_map=order_prom_map_ck[pickid]; | |
8860 | + pk_ord_map.shop_price_all += item.shop_price_y * item.buynum; | |
8861 | + pk_ord_map.market_price_all += item.goods_market_price * item.buynum; | |
8862 | + | |
8863 | + }, | |
8864 | + | |
8825 | 8865 | //重置订单促销判断累计 |
8826 | 8866 | re_set_order_prom_map_ck() { |
8827 | 8867 | this.data.order_prom_map_ck = {} |
... | ... | @@ -8855,6 +8895,11 @@ Page({ |
8855 | 8895 | switch (ord_prom.discount_field) { |
8856 | 8896 | //实收价的时候 |
8857 | 8897 | case 0: |
8898 | + //要先还原 | |
8899 | + this.setData({ | |
8900 | + [txt1]: 0 | |
8901 | + }); | |
8902 | + | |
8858 | 8903 | if (ord_prom.money > order_prom_map_ck.goods_price_all){ |
8859 | 8904 | return null; |
8860 | 8905 | } |
... | ... | @@ -8862,6 +8907,10 @@ Page({ |
8862 | 8907 | //手店价的时候 |
8863 | 8908 | case 1: |
8864 | 8909 | if (ord_prom.money > order_prom_map_ck.shop_price_all){ |
8910 | + //要先还原 | |
8911 | + this.setData({ | |
8912 | + [txt1]: 0 | |
8913 | + }); | |
8865 | 8914 | return null; |
8866 | 8915 | } |
8867 | 8916 | //要显示订单促销使用的按钮 |
... | ... | @@ -8872,6 +8921,10 @@ Page({ |
8872 | 8921 | //市场价的时候 |
8873 | 8922 | case 2: |
8874 | 8923 | if (ord_prom.money > order_prom_map_ck.market_price_all){ |
8924 | + //要先还原 | |
8925 | + this.setData({ | |
8926 | + [txt1]: 0 | |
8927 | + }); | |
8875 | 8928 | return null; |
8876 | 8929 | } |
8877 | 8930 | //要显示订单促销使用的按钮 |
... | ... | @@ -8889,6 +8942,10 @@ Page({ |
8889 | 8942 | |
8890 | 8943 | //设置能够参与订单促销 |
8891 | 8944 | set_can_use_ord_prom: function (e) { |
8945 | + | |
8946 | + if(this.data.submit) return false; | |
8947 | + this.setData({ submit: 1,same_ok:1 }); | |
8948 | + | |
8892 | 8949 | let pickid = e.currentTarget.dataset.pd; |
8893 | 8950 | let txt = 'can_use_ord_prom[' + pickid + ']'; |
8894 | 8951 | let can_use = this.data.can_use_ord_prom[pickid] ? this.data.can_use_ord_prom[pickid] : 0; |
... | ... | @@ -8897,7 +8954,6 @@ Page({ |
8897 | 8954 | }) |
8898 | 8955 | |
8899 | 8956 | //购物车进行还原,一下数据的清理的必须的 |
8900 | - let carr = ut.deep_cp(this.data.cartlist_old); | |
8901 | 8957 | this.setData({ |
8902 | 8958 | send_lb: {}, |
8903 | 8959 | month_lb: {}, |
... | ... | @@ -8918,8 +8974,54 @@ Page({ |
8918 | 8974 | |
8919 | 8975 | //原始数据要有深拷贝不能有地址的牵连 |
8920 | 8976 | this.data.cartlist_y = JSON.parse(JSON.stringify(goods)) |
8977 | + //重新调用cart_next,进行下一步计算 | |
8978 | + wx.showLoading({ | |
8979 | + title: "处理中.", | |
8980 | + mark:true | |
8981 | + }) | |
8921 | 8982 | //-- 重新计算一下价格 -- |
8922 | 8983 | this.get_cart_next(null, 1, {prom_type: 0, prom_id: 0}); |
8984 | + }, | |
8985 | + | |
8986 | + //立即购买的时候,点击订单促销的参与 | |
8987 | + set_can_use_ord_prom_now:function (e){ | |
8988 | + | |
8989 | + if(this.data.submit) return false; | |
8990 | + this.setData({ submit: 1,same_ok:1 }); | |
8991 | + | |
8992 | + let pickid=this.data.bn_pick; | |
8993 | + let txt = 'can_use_ord_prom[' + pickid + ']'; | |
8994 | + let can_use = this.data.can_use_ord_prom[pickid] ? this.data.can_use_ord_prom[pickid] : 0; | |
8995 | + this.setData({ | |
8996 | + [txt]: !can_use | |
8997 | + }) | |
8998 | + | |
8999 | + let th=this; | |
9000 | + let good=th.data.bn_goods; | |
9001 | + | |
9002 | + //如果有要参与订单促销的按钮点击后,要修改商品的价格 | |
9003 | + if(th.data.can_use_ord_prom[pickid]){ | |
9004 | + let discount_field=th.data.show_ord_prom[pickid]; | |
9005 | + switch (discount_field){ | |
9006 | + case 1: | |
9007 | + good.shop_price=good.shop_price_y; | |
9008 | + break; | |
9009 | + case 2: | |
9010 | + good.shop_price=good.market_price; | |
9011 | + break; | |
9012 | + } | |
9013 | + }else{ | |
9014 | + good=ut.deep_cp(th.data.old_bn_goods); | |
9015 | + } | |
9016 | + | |
9017 | + th.setData({ | |
9018 | + bn_goods:good | |
9019 | + }) | |
9020 | + wx.showLoading({ | |
9021 | + title: "处理中.", | |
9022 | + mark:true | |
9023 | + }) | |
9024 | + th.calculatePrice2() | |
8923 | 9025 | } |
8924 | 9026 | |
8925 | 9027 | ... | ... |
packageE/pages/cart/cart2/cart2.wxml
... | ... | @@ -693,6 +693,14 @@ |
693 | 693 | <icon color="#f23030" size="16" type="info"></icon>{{order.store_prom}} |
694 | 694 | </view> |
695 | 695 | |
696 | + <!-- 订单促销取价规则的优化 --> | |
697 | + <view class="set-mes" wx:if="{{show_ord_prom[bn_pick]}}"> | |
698 | + <view class="use-item" bindtap='set_can_use_ord_prom_now'> | |
699 | + <icon color="{{can_use_ord_prom[bn_pick]?'red':'gray'}}" size="16" type="success"></icon> | |
700 | + <view class="yu_er">参与订单促销</view> | |
701 | + </view> | |
702 | + </view> | |
703 | + | |
696 | 704 | <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)}}"> |
697 | 705 | <view class="work-frame flex-space-between"> |
698 | 706 | <view class="work"> | ... | ... |