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,6 +3167,11 @@ Page({
3167 3167
3168 let checkObj3 = {}; //优惠促销次数判断 3168 let checkObj3 = {}; //优惠促销次数判断
3169 3169
  3170 + var zh_buyed_m={};
  3171 + var zh_limit_m={}
  3172 + var zh_all_ck={};
  3173 +
  3174 +
3170 // let checkOff=false 3175 // let checkOff=false
3171 for (var i = 0; i < this.data.requestData.length; i++) { 3176 for (var i = 0; i < this.data.requestData.length; i++) {
3172 var i_arr = this.data.requestData[i].goods; 3177 var i_arr = this.data.requestData[i].goods;
@@ -3203,20 +3208,35 @@ Page({ @@ -3203,20 +3208,35 @@ Page({
3203 } 3208 }
3204 3209
3205 3210
  3211 +
3206 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) { 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 console.log('活动次数:' + userbuynum); 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 // i_arr[j].act.buy_userbuynum=true 3222 // i_arr[j].act.buy_userbuynum=true
3211 checkArr7.push(i_arr[j]) 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 if (i_arr[j].prom_type == 3) { 3235 if (i_arr[j].prom_type == 3) {
3216 if (checkObj3[i_arr[j].prom_id]) { 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 } else { 3238 } else {
3219 - checkObj3[i_arr[j].prom_id] = 1 3239 + checkObj3[i_arr[j].prom_id] = [i];
3220 } 3240 }
3221 } 3241 }
3222 //map 的key是不会重复,会覆盖,, 3242 //map 的key是不会重复,会覆盖,,
@@ -3349,7 +3369,7 @@ Page({ @@ -3349,7 +3369,7 @@ Page({
3349 if (gitem.pick_id != pro_stord_id) { 3369 if (gitem.pick_id != pro_stord_id) {
3350 pro_stord_off = true 3370 pro_stord_off = true
3351 } 3371 }
3352 - } else { 3372 + } else {``
3353 pro_stord_id = gitem.pick_id 3373 pro_stord_id = gitem.pick_id
3354 } 3374 }
3355 } 3375 }
@@ -3370,7 +3390,7 @@ Page({ @@ -3370,7 +3390,7 @@ Page({
3370 if (prom && prom.limit_num) { 3390 if (prom && prom.limit_num) {
3371 let user_pre_buynum = await this.getUserBuyPromNum_pre(key) 3391 let user_pre_buynum = await this.getUserBuyPromNum_pre(key)
3372 if (user_pre_buynum < prom.limit_num) { 3392 if (user_pre_buynum < prom.limit_num) {
3373 - user_pre_buynum += checkObj3[key] 3393 + user_pre_buynum += checkObj3[key].length
3374 if (user_pre_buynum > prom.limit_num) { 3394 if (user_pre_buynum > prom.limit_num) {
3375 checkObj3_off = true 3395 checkObj3_off = true
3376 } 3396 }
@@ -3381,12 +3401,38 @@ Page({ @@ -3381,12 +3401,38 @@ Page({
3381 } 3401 }
3382 } 3402 }
3383 } 3403 }
  3404 +
3384 if (checkObj3_off) { 3405 if (checkObj3_off) {
3385 t.my_warnning("已超出优惠促销次数", 0, th); 3406 t.my_warnning("已超出优惠促销次数", 0, th);
3386 wx.hideLoading(); 3407 wx.hideLoading();
3387 return false 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 if (checkArr7.length > 0) { 3436 if (checkArr7.length > 0) {
3391 let checkStr = [] 3437 let checkStr = []
3392 checkArr7.map(item => { 3438 checkArr7.map(item => {