From f51f020edc5e02f97a3dee1ebcc2f856a624514b Mon Sep 17 00:00:00 2001 From: yvan.ni Date: Sat, 3 Feb 2024 17:36:47 +0800 Subject: [PATCH] 秒杀和团购在结算的时候,判断库存 --- pages/cart/cart/cart.js | 70 ++++++++++++++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 46 insertions(+), 24 deletions(-) diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js index 73c1909..fa7f0cc 100644 --- a/pages/cart/cart/cart.js +++ b/pages/cart/cart/cart.js @@ -121,6 +121,7 @@ Page({ wx.setNavigationBarTitle({ title: "购物车", }) + //判断是否有登录 t.auth.hadAuth() && t.getUserInfo(function () { //a.getCardList(); @@ -3518,7 +3519,7 @@ Page({ title: "计算中" }) } - + //--- 避免重复点击 --- if(this.data.checkouting) return false; this.data.checkouting=1; @@ -3563,14 +3564,14 @@ Page({ var pid=this.data.requestData[i].pid; var _pick=null; - //获取商品信息,包含线下商品ID,指定门店销售的信息 - var rh=await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+pid, {}); - if(rh && rh.data.code==0){ - _pick=rh.data.data; - } - var i_arr = this.data.requestData[i].goods; + //-- 优化不用调用接口 -- + _pick={ + pickup_id:pid, + distr_type:i_arr[0].pickup_distr_type + }; + //判断一下商品能不能满足优惠促销的条件 await th.check_can_yh_pro(i_arr); @@ -3685,6 +3686,7 @@ Page({ goods_price: i_arr[j].goods_price, prom_id: i_arr[j].prom_id, prom_type: i_arr[j].prom_type, + g_num:i_arr[j].goods_num //新增 }; //判断是不是线下取价 if (i_arr[j].is_offline) { @@ -3694,12 +3696,15 @@ Page({ } g_arr.push(ie); - if (map.has(i_arr[j].goods_id + "")) { - var num11 = map.get(i_arr[j].goods_id + ""); - var num22 = parseInt(i_arr[j].goods_num) + parseInt(num11); - map.set(i_arr[j].goods_id + "", num22); - } else { - map.set(i_arr[j].goods_id + "", i_arr[j].goods_num); + //赠品不拿来计算库存 + if(!i_arr[j].is_gift) { + if (map.has(i_arr[j].goods_id + "")) { + var num11 = map.get(i_arr[j].goods_id + ""); + var num22 = parseInt(i_arr[j].goods_num) + parseInt(num11); + map.set(i_arr[j].goods_id + "", num22); + } else { + map.set(i_arr[j].goods_id + "", i_arr[j].goods_num); + } } //glist += i_arr[j].goods_id + ","; @@ -4041,8 +4046,23 @@ Page({ cart_buy_next(glist,map,g_arr,checkArr7){ var th=this; - var map_limit = new Map(); //使用map值键进行存储限购 + var map_limit = new Map(); //使用map值键进行存储限购,这里存的是活动的 + var act_buyed_map={}; //活动当前购买数量的map var up_cart_data=[]; + + //获取活动的购买的数量 + for (let ig = 0; ig 1) s_num=buyed; if (s_num > val.store_count) { @@ -4100,13 +4121,14 @@ Page({ return false; } - if (buyed > val.redisnum && val.redisnum) { + if(cur_buyed && cur_buyed.g_num > val.redisnum && val.redisnum) { isok = 0; gname = val.goods_name; err="超出活动库存"; break; } - if (buyed > val.goods_num - val.buy_num && val.goods_num) { + + if(cur_buyed && buyed.g_num > val.goods_num - val.buy_num && val.goods_num) { isok = 0; gname = val.goods_name; err="超出活动库存"; @@ -4114,7 +4136,7 @@ Page({ } } - if (th.data.sales_rules == 1) { + if (th.data.sales_rules == 1 || val.prom_type == 1 || val.prom_type == 2) { if (num > val.store_count) { isok = 0; gname = val.goods_name; -- libgit2 0.21.4