diff --git a/packageA/pages/details_serviceCard/details_serviceCard.js b/packageA/pages/details_serviceCard/details_serviceCard.js index 2da4ff8..e0b6576 100644 --- a/packageA/pages/details_serviceCard/details_serviceCard.js +++ b/packageA/pages/details_serviceCard/details_serviceCard.js @@ -228,7 +228,7 @@ Page({ // 再来一单 - buy2(t) { + buy2: async function(t) { let details = this.data.details; var th = this; var ind = 1; // 1:加入购物车 @@ -288,17 +288,57 @@ Page({ if(details.list[0].prom_type == 1) { newd['prom_type'] = details.list[0].prom_type; newd['prom_id'] = details.list[0].prom_id; - // if(th.data.openSpecModal_flash_normal) { - // newd['money'] = th.data.data.shop_price; - // newd['is_pd_normal'] = 1; - // } else { - // newd['money'] = th.data.prom_price; - // }; }; - + + var prom_id = details.list[0].prom_id > 0 ? details.list[0].prom_id : 0; + var card_id = details.list[0].card_id; + var prom_type = details.list[0].prom_type > 0 ? details.list[0].prom_type : 0; + var is_pd_normal = details.list[0].is_pd_normal; + // 库存 + var redisNums = 0; + // 限购数 + var limitNum = 0; + // 已购买数量 + var boughtNum = 0; + + // 秒杀活动中购买 + if (prom_type == 1 && !is_pd_normal) { + + // 获取已购数量 + await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum?store_id="+os.stoid+"&user_id="+getApp().globalData.user_id+"&card_id="+card_id+"&prom_type="+prom_type+"&prom_id="+prom_id, { + }).then(res => { + boughtNum = !res.data.data.promcardbuynum ? 0 : res.data.data.promcardbuynum; + }); + + // 获取库存 + await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + os.stoid + "/1/" + prom_id, {}).then(res => { + if (res.data.code == 0) { + redisNums = !res.data.data ? 0 : res.data.data; + }; + }); + + // 获取限购数 + var user_id = getApp().globalData.user_id; + await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + os.stoid + "/" + user_id + "/" + prom_id, {}).then(res => { + if (res.data.code == 0) { + limitNum = res.data.data.buy_limit; + } + }); + + var snum = limitNum - boughtNum; + var snum = limitNum - boughtNum; + if (snum <= 0) { + wx.showModal({ + title: '超出限购数量', + }); + return false; + } + + } + //----先看会员在购物车中是否加入了该商品----- - app.request.get("/api/weshop/cartService/page", { + app.request.get("/api/weshop/cartService/page", { data: { store_id: app.globalData.setting.stoid, user_id: this.data.userInfo.user_id, @@ -306,13 +346,30 @@ Page({ pick_id: details.list[0].pickup_id, }, success: function(re) { - //-------如果购物车中有相关的数据--------- if (re.data.data.total > 0) { var item = re.data.data.pageData[0]; + var totalNum = details.list[0].qty + item.goods_num; + + if (prom_type == 1 && !is_pd_normal) { + // 秒杀购物车购买 修正数量 + var snum = limitNum - boughtNum; + + if (totalNum >= redisNums){ + if (redisNums > snum) { + totalNum = snum; + } else { + totalNum = redisNums; + } + } else { + if (totalNum > snum) + totalNum = snum; + } + } + var updata = { id: item.id, - goods_num: details.list[0].qty + item.goods_num, + goods_num: totalNum, money: details.list[0].price, store_id: app.globalData.setting.stoid, }; @@ -321,6 +378,7 @@ Page({ updata['guide_id'] = getApp().globalData.guide_id; updata['guide_type'] = 1; } + getApp().request.put("/api/weshop/cartService/update", { data: updata, success: function(t) { @@ -333,6 +391,8 @@ Page({ // th.closeSpecModal(); } }); + + } else { getApp().request.post("/api/weshop/cartService/save", { diff --git a/packageA/pages/goodsInfo/goodsInfo.js b/packageA/pages/goodsInfo/goodsInfo.js index f044674..8b46ef0 100644 --- a/packageA/pages/goodsInfo/goodsInfo.js +++ b/packageA/pages/goodsInfo/goodsInfo.js @@ -1004,9 +1004,16 @@ Page({ if (re.data.data.total > 0) { var item = re.data.data.pageData[0]; var totalNum = th.data.goodsInputNum + item.goods_num; + + // 秒杀购物车购买 修正数量 if (th.data.prom_type == 1 && !th.data.is_normal) { var snum = limitNum - boughtNum; - + if (snum <= 0) { + wx.showModal({ + title: '超出限购数量', + }); + return false; + } if (totalNum >= redisNums){ if (redisNums > snum) { totalNum = snum; diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js index a39b752..b16ff8e 100644 --- a/pages/cart/cart/cart.js +++ b/pages/cart/cart/cart.js @@ -2073,7 +2073,9 @@ Page({ icon: 'none', }); th.setData({[txt]: redis_num}); - await e.doCheckAll(); + t.goods_num = redis_num; + await th.doCheckAll(); + await th.update_cart_ser(t, pitem, item); return false; }; @@ -2114,14 +2116,22 @@ Page({ if (buylimit > 0) { if (num > redis_num) { th.setData({[txt]: redis_num-cartGoodsNum}); + t.goods_num = redis_num-cartGoodsNum; + await th.doCheckAll(); + await th.update_cart_ser(t, pitem, item); } else { th.setData({[txt]: num - cartGoodsNum}); + t.goods_num = num - cartGoodsNum; + await th.doCheckAll(); + await th.update_cart_ser(t, pitem, item); } } else { th.setData({[txt]: redis_num - cartGoodsNum}); + t.goods_num = redis_num - cartGoodsNum; + await th.doCheckAll(); + await th.update_cart_ser(t, pitem, item); } - await e.doCheckAll(); return false; }; @@ -2138,7 +2148,9 @@ Page({ }); if (num <= 0) num = 1; th.setData({[txt]: num - cartGoodsNum}); - await e.doCheckAll(); + t.goods_num = num - cartGoodsNum; + await th.doCheckAll(); + await th.update_cart_ser(t, pitem, item); return false; };