Commit 8f94200f551e8fb5f7e8f0b144b4e470929b6c61
1 parent
1a0c81c4
购物车 多门店
Showing
1 changed file
with
53 additions
and
7 deletions
pages/cart/cart/cart.js
... | ... | @@ -3167,6 +3167,11 @@ Page({ |
3167 | 3167 | |
3168 | 3168 | let checkObj3 = {}; //优惠促销次数判断 |
3169 | 3169 | |
3170 | + var zh_buyed_m={}; | |
3171 | + var zh_limit_m={} | |
3172 | + var zh_all_ck={}; | |
3173 | + | |
3174 | + | |
3170 | 3175 | // let checkOff=false |
3171 | 3176 | for (var i = 0; i < this.data.requestData.length; i++) { |
3172 | 3177 | var i_arr = this.data.requestData[i].goods; |
... | ... | @@ -3203,20 +3208,35 @@ Page({ |
3203 | 3208 | } |
3204 | 3209 | |
3205 | 3210 | |
3211 | + | |
3206 | 3212 | 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) { |
3207 | - let userbuynum = await this.getUserBuyPromNum(i_arr[j].goods_prom_id) | |
3213 | + let userbuynum = await this.getUserBuyPromNum(i_arr[j].goods_prom_id); | |
3214 | + | |
3215 | + if(!zh_buyed_m[i_arr[j].prom_id]) zh_buyed_m[i_arr[j].prom_id]=userbuynum; | |
3216 | + if(i_arr[j].act.buy_limit>0){ | |
3217 | + if(!zh_limit_m[i_arr[j].prom_id]) zh_limit_m[i_arr[j].prom_id]=i_arr[j].act.buy_limit; | |
3218 | + } | |
3219 | + | |
3208 | 3220 | console.log('活动次数:' + userbuynum); |
3209 | - if (userbuynum >= i_arr[j].act.buy_limit) { | |
3221 | + if (userbuynum >= i_arr[j].act.buy_limit && i_arr[j].act.buy_limit>0) { | |
3210 | 3222 | // i_arr[j].act.buy_userbuynum=true |
3211 | 3223 | checkArr7.push(i_arr[j]) |
3224 | + }else{ | |
3225 | + if (zh_all_ck[i_arr[j].prom_id]) { | |
3226 | + //相同门店只记录一单 | |
3227 | + if(zh_all_ck[i_arr[j].prom_id].indexOf(i)==-1) zh_all_ck[i_arr[j].prom_id].push(i); | |
3228 | + } else { | |
3229 | + zh_all_ck[i_arr[j].prom_id] = [i]; | |
3230 | + } | |
3231 | + | |
3212 | 3232 | } |
3213 | 3233 | } |
3214 | - //优惠活动次数限制 | |
3234 | + //-- 优惠活动次数限制,相同门店的相同prom_id只能算一次 -- | |
3215 | 3235 | if (i_arr[j].prom_type == 3) { |
3216 | 3236 | if (checkObj3[i_arr[j].prom_id]) { |
3217 | - checkObj3[i_arr[j].prom_id] += 1 | |
3237 | + if(checkObj3[i_arr[j].prom_id].indexOf(i)==-1) checkObj3[i_arr[j].prom_id].push(i); | |
3218 | 3238 | } else { |
3219 | - checkObj3[i_arr[j].prom_id] = 1 | |
3239 | + checkObj3[i_arr[j].prom_id] = [i]; | |
3220 | 3240 | } |
3221 | 3241 | } |
3222 | 3242 | //map 的key是不会重复,会覆盖,, |
... | ... | @@ -3349,7 +3369,7 @@ Page({ |
3349 | 3369 | if (gitem.pick_id != pro_stord_id) { |
3350 | 3370 | pro_stord_off = true |
3351 | 3371 | } |
3352 | - } else { | |
3372 | + } else {`` | |
3353 | 3373 | pro_stord_id = gitem.pick_id |
3354 | 3374 | } |
3355 | 3375 | } |
... | ... | @@ -3370,7 +3390,7 @@ Page({ |
3370 | 3390 | if (prom && prom.limit_num) { |
3371 | 3391 | let user_pre_buynum = await this.getUserBuyPromNum_pre(key) |
3372 | 3392 | if (user_pre_buynum < prom.limit_num) { |
3373 | - user_pre_buynum += checkObj3[key] | |
3393 | + user_pre_buynum += checkObj3[key].length | |
3374 | 3394 | if (user_pre_buynum > prom.limit_num) { |
3375 | 3395 | checkObj3_off = true |
3376 | 3396 | } |
... | ... | @@ -3381,12 +3401,38 @@ Page({ |
3381 | 3401 | } |
3382 | 3402 | } |
3383 | 3403 | } |
3404 | + | |
3384 | 3405 | if (checkObj3_off) { |
3385 | 3406 | t.my_warnning("已超出优惠促销次数", 0, th); |
3386 | 3407 | wx.hideLoading(); |
3387 | 3408 | return false |
3388 | 3409 | } |
3389 | 3410 | |
3411 | + let zh_off = false | |
3412 | + //-- 如果有组合购限购的时候 -- | |
3413 | + let zh_ck_arr = Object.keys(zh_limit_m); | |
3414 | + if(zh_ck_arr && zh_ck_arr.length ){ | |
3415 | + for (let xg = 0; xg < zh_ck_arr.length; xg++) { | |
3416 | + var ky=zh_ck_arr[xg]; | |
3417 | + var zh_buyed=zh_buyed_m[ky]?zh_buyed_m[ky]:0; | |
3418 | + var zh_limit=zh_limit_m[ky]?zh_limit_m[ky]:0; | |
3419 | + var zh_all=zh_all_ck[ky]?zh_all_ck[ky]:0; | |
3420 | + if(zh_limit<=0) continue; | |
3421 | + | |
3422 | + if(zh_all+zh_buyed>zh_limit){ | |
3423 | + zh_off=true; | |
3424 | + break; | |
3425 | + } | |
3426 | + } | |
3427 | + } | |
3428 | + | |
3429 | + if (zh_off) { | |
3430 | + t.my_warnning("已超出组合购优惠次数", 0, th); | |
3431 | + wx.hideLoading(); | |
3432 | + return false | |
3433 | + } | |
3434 | + | |
3435 | + | |
3390 | 3436 | if (checkArr7.length > 0) { |
3391 | 3437 | let checkStr = [] |
3392 | 3438 | checkArr7.map(item => { | ... | ... |