Commit ef1f42faea76a2a19095c7191ddb6f4599d2390a

Authored by WXD-SEASON\season
2 parents c5589e3c 028e1d98

合并订单促销

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 ){
utils/more_cx.js
@@ -36,6 +36,7 @@ module.exports = { @@ -36,6 +36,7 @@ module.exports = {
36 } 36 }
37 return 0; 37 return 0;
38 } 38 }
  39 +
39 var goods =gdlist; 40 var goods =gdlist;
40 var all_num=0; 41 var all_num=0;
41 var need_to_buy=0; 42 var need_to_buy=0;