From 8f94200f551e8fb5f7e8f0b144b4e470929b6c61 Mon Sep 17 00:00:00 2001 From: yvan.ni Date: Mon, 26 Jun 2023 09:02:35 +0800 Subject: [PATCH] 购物车 多门店 --- pages/cart/cart/cart.js | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 53 insertions(+), 7 deletions(-) diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js index 23f2cd7..b7fdd29 100644 --- a/pages/cart/cart/cart.js +++ b/pages/cart/cart/cart.js @@ -3167,6 +3167,11 @@ Page({ let checkObj3 = {}; //优惠促销次数判断 + var zh_buyed_m={}; + var zh_limit_m={} + var zh_all_ck={}; + + // let checkOff=false for (var i = 0; i < this.data.requestData.length; i++) { var i_arr = this.data.requestData[i].goods; @@ -3203,20 +3208,35 @@ Page({ } + if (i_arr[j].prom_type == 7 && (!this.data.requestData[i].need_list || (this.data.requestData[i].need_list && this.data.requestData[i].need_list.length == 0)) && i_arr[j].act && i_arr[j].act.buy_limit != 0) { - let userbuynum = await this.getUserBuyPromNum(i_arr[j].goods_prom_id) + let userbuynum = await this.getUserBuyPromNum(i_arr[j].goods_prom_id); + + if(!zh_buyed_m[i_arr[j].prom_id]) zh_buyed_m[i_arr[j].prom_id]=userbuynum; + if(i_arr[j].act.buy_limit>0){ + if(!zh_limit_m[i_arr[j].prom_id]) zh_limit_m[i_arr[j].prom_id]=i_arr[j].act.buy_limit; + } + console.log('活动次数:' + userbuynum); - if (userbuynum >= i_arr[j].act.buy_limit) { + if (userbuynum >= i_arr[j].act.buy_limit && i_arr[j].act.buy_limit>0) { // i_arr[j].act.buy_userbuynum=true checkArr7.push(i_arr[j]) + }else{ + if (zh_all_ck[i_arr[j].prom_id]) { + //相同门店只记录一单 + if(zh_all_ck[i_arr[j].prom_id].indexOf(i)==-1) zh_all_ck[i_arr[j].prom_id].push(i); + } else { + zh_all_ck[i_arr[j].prom_id] = [i]; + } + } } - //优惠活动次数限制 + //-- 优惠活动次数限制,相同门店的相同prom_id只能算一次 -- if (i_arr[j].prom_type == 3) { if (checkObj3[i_arr[j].prom_id]) { - checkObj3[i_arr[j].prom_id] += 1 + if(checkObj3[i_arr[j].prom_id].indexOf(i)==-1) checkObj3[i_arr[j].prom_id].push(i); } else { - checkObj3[i_arr[j].prom_id] = 1 + checkObj3[i_arr[j].prom_id] = [i]; } } //map 的key是不会重复,会覆盖,, @@ -3349,7 +3369,7 @@ Page({ if (gitem.pick_id != pro_stord_id) { pro_stord_off = true } - } else { + } else {`` pro_stord_id = gitem.pick_id } } @@ -3370,7 +3390,7 @@ Page({ if (prom && prom.limit_num) { let user_pre_buynum = await this.getUserBuyPromNum_pre(key) if (user_pre_buynum < prom.limit_num) { - user_pre_buynum += checkObj3[key] + user_pre_buynum += checkObj3[key].length if (user_pre_buynum > prom.limit_num) { checkObj3_off = true } @@ -3381,12 +3401,38 @@ Page({ } } } + if (checkObj3_off) { t.my_warnning("已超出优惠促销次数", 0, th); wx.hideLoading(); return false } + let zh_off = false + //-- 如果有组合购限购的时候 -- + let zh_ck_arr = Object.keys(zh_limit_m); + if(zh_ck_arr && zh_ck_arr.length ){ + for (let xg = 0; xg < zh_ck_arr.length; xg++) { + var ky=zh_ck_arr[xg]; + var zh_buyed=zh_buyed_m[ky]?zh_buyed_m[ky]:0; + var zh_limit=zh_limit_m[ky]?zh_limit_m[ky]:0; + var zh_all=zh_all_ck[ky]?zh_all_ck[ky]:0; + if(zh_limit<=0) continue; + + if(zh_all+zh_buyed>zh_limit){ + zh_off=true; + break; + } + } + } + + if (zh_off) { + t.my_warnning("已超出组合购优惠次数", 0, th); + wx.hideLoading(); + return false + } + + if (checkArr7.length > 0) { let checkStr = [] checkArr7.map(item => { -- libgit2 0.21.4