Commit 8f94200f551e8fb5f7e8f0b144b4e470929b6c61

Authored by yvan.ni
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 => {
... ...