Commit acc24ed95f2f90b1013de03cd97e1ad066841355
1 parent
4a706205
fix再来一次单增加限购判断
Showing
3 changed files
with
94 additions
and
15 deletions
packageA/pages/details_serviceCard/details_serviceCard.js
@@ -228,7 +228,7 @@ Page({ | @@ -228,7 +228,7 @@ Page({ | ||
228 | 228 | ||
229 | 229 | ||
230 | // 再来一单 | 230 | // 再来一单 |
231 | - buy2(t) { | 231 | + buy2: async function(t) { |
232 | let details = this.data.details; | 232 | let details = this.data.details; |
233 | var th = this; | 233 | var th = this; |
234 | var ind = 1; // 1:加入购物车 | 234 | var ind = 1; // 1:加入购物车 |
@@ -288,17 +288,57 @@ Page({ | @@ -288,17 +288,57 @@ Page({ | ||
288 | if(details.list[0].prom_type == 1) { | 288 | if(details.list[0].prom_type == 1) { |
289 | newd['prom_type'] = details.list[0].prom_type; | 289 | newd['prom_type'] = details.list[0].prom_type; |
290 | newd['prom_id'] = details.list[0].prom_id; | 290 | newd['prom_id'] = details.list[0].prom_id; |
291 | - // if(th.data.openSpecModal_flash_normal) { | ||
292 | - // newd['money'] = th.data.data.shop_price; | ||
293 | - // newd['is_pd_normal'] = 1; | ||
294 | - // } else { | ||
295 | - // newd['money'] = th.data.prom_price; | ||
296 | - // }; | ||
297 | }; | 291 | }; |
298 | - | 292 | + |
293 | + var prom_id = details.list[0].prom_id > 0 ? details.list[0].prom_id : 0; | ||
294 | + var card_id = details.list[0].card_id; | ||
295 | + var prom_type = details.list[0].prom_type > 0 ? details.list[0].prom_type : 0; | ||
296 | + var is_pd_normal = details.list[0].is_pd_normal; | ||
297 | + // 库存 | ||
298 | + var redisNums = 0; | ||
299 | + // 限购数 | ||
300 | + var limitNum = 0; | ||
301 | + // 已购买数量 | ||
302 | + var boughtNum = 0; | ||
303 | + | ||
304 | + // 秒杀活动中购买 | ||
305 | + if (prom_type == 1 && !is_pd_normal) { | ||
306 | + | ||
307 | + // 获取已购数量 | ||
308 | + 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, { | ||
309 | + }).then(res => { | ||
310 | + boughtNum = !res.data.data.promcardbuynum ? 0 : res.data.data.promcardbuynum; | ||
311 | + }); | ||
312 | + | ||
313 | + // 获取库存 | ||
314 | + await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + os.stoid + "/1/" + prom_id, {}).then(res => { | ||
315 | + if (res.data.code == 0) { | ||
316 | + redisNums = !res.data.data ? 0 : res.data.data; | ||
317 | + }; | ||
318 | + }); | ||
319 | + | ||
320 | + // 获取限购数 | ||
321 | + var user_id = getApp().globalData.user_id; | ||
322 | + await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + os.stoid + "/" + user_id + "/" + prom_id, {}).then(res => { | ||
323 | + if (res.data.code == 0) { | ||
324 | + limitNum = res.data.data.buy_limit; | ||
325 | + } | ||
326 | + }); | ||
327 | + | ||
328 | + var snum = limitNum - boughtNum; | ||
329 | + var snum = limitNum - boughtNum; | ||
330 | + if (snum <= 0) { | ||
331 | + wx.showModal({ | ||
332 | + title: '超出限购数量', | ||
333 | + }); | ||
334 | + return false; | ||
335 | + } | ||
336 | + | ||
337 | + } | ||
338 | + | ||
299 | 339 | ||
300 | //----先看会员在购物车中是否加入了该商品----- | 340 | //----先看会员在购物车中是否加入了该商品----- |
301 | - app.request.get("/api/weshop/cartService/page", { | 341 | + app.request.get("/api/weshop/cartService/page", { |
302 | data: { | 342 | data: { |
303 | store_id: app.globalData.setting.stoid, | 343 | store_id: app.globalData.setting.stoid, |
304 | user_id: this.data.userInfo.user_id, | 344 | user_id: this.data.userInfo.user_id, |
@@ -306,13 +346,30 @@ Page({ | @@ -306,13 +346,30 @@ Page({ | ||
306 | pick_id: details.list[0].pickup_id, | 346 | pick_id: details.list[0].pickup_id, |
307 | }, | 347 | }, |
308 | success: function(re) { | 348 | success: function(re) { |
309 | - | ||
310 | //-------如果购物车中有相关的数据--------- | 349 | //-------如果购物车中有相关的数据--------- |
311 | if (re.data.data.total > 0) { | 350 | if (re.data.data.total > 0) { |
312 | var item = re.data.data.pageData[0]; | 351 | var item = re.data.data.pageData[0]; |
352 | + var totalNum = details.list[0].qty + item.goods_num; | ||
353 | + | ||
354 | + if (prom_type == 1 && !is_pd_normal) { | ||
355 | + // 秒杀购物车购买 修正数量 | ||
356 | + var snum = limitNum - boughtNum; | ||
357 | + | ||
358 | + if (totalNum >= redisNums){ | ||
359 | + if (redisNums > snum) { | ||
360 | + totalNum = snum; | ||
361 | + } else { | ||
362 | + totalNum = redisNums; | ||
363 | + } | ||
364 | + } else { | ||
365 | + if (totalNum > snum) | ||
366 | + totalNum = snum; | ||
367 | + } | ||
368 | + } | ||
369 | + | ||
313 | var updata = { | 370 | var updata = { |
314 | id: item.id, | 371 | id: item.id, |
315 | - goods_num: details.list[0].qty + item.goods_num, | 372 | + goods_num: totalNum, |
316 | money: details.list[0].price, | 373 | money: details.list[0].price, |
317 | store_id: app.globalData.setting.stoid, | 374 | store_id: app.globalData.setting.stoid, |
318 | }; | 375 | }; |
@@ -321,6 +378,7 @@ Page({ | @@ -321,6 +378,7 @@ Page({ | ||
321 | updata['guide_id'] = getApp().globalData.guide_id; | 378 | updata['guide_id'] = getApp().globalData.guide_id; |
322 | updata['guide_type'] = 1; | 379 | updata['guide_type'] = 1; |
323 | } | 380 | } |
381 | + | ||
324 | getApp().request.put("/api/weshop/cartService/update", { | 382 | getApp().request.put("/api/weshop/cartService/update", { |
325 | data: updata, | 383 | data: updata, |
326 | success: function(t) { | 384 | success: function(t) { |
@@ -333,6 +391,8 @@ Page({ | @@ -333,6 +391,8 @@ Page({ | ||
333 | // th.closeSpecModal(); | 391 | // th.closeSpecModal(); |
334 | } | 392 | } |
335 | }); | 393 | }); |
394 | + | ||
395 | + | ||
336 | } else { | 396 | } else { |
337 | 397 | ||
338 | getApp().request.post("/api/weshop/cartService/save", { | 398 | getApp().request.post("/api/weshop/cartService/save", { |
packageA/pages/goodsInfo/goodsInfo.js
@@ -1004,9 +1004,16 @@ Page({ | @@ -1004,9 +1004,16 @@ Page({ | ||
1004 | if (re.data.data.total > 0) { | 1004 | if (re.data.data.total > 0) { |
1005 | var item = re.data.data.pageData[0]; | 1005 | var item = re.data.data.pageData[0]; |
1006 | var totalNum = th.data.goodsInputNum + item.goods_num; | 1006 | var totalNum = th.data.goodsInputNum + item.goods_num; |
1007 | + | ||
1008 | + // 秒杀购物车购买 修正数量 | ||
1007 | if (th.data.prom_type == 1 && !th.data.is_normal) { | 1009 | if (th.data.prom_type == 1 && !th.data.is_normal) { |
1008 | var snum = limitNum - boughtNum; | 1010 | var snum = limitNum - boughtNum; |
1009 | - | 1011 | + if (snum <= 0) { |
1012 | + wx.showModal({ | ||
1013 | + title: '超出限购数量', | ||
1014 | + }); | ||
1015 | + return false; | ||
1016 | + } | ||
1010 | if (totalNum >= redisNums){ | 1017 | if (totalNum >= redisNums){ |
1011 | if (redisNums > snum) { | 1018 | if (redisNums > snum) { |
1012 | totalNum = snum; | 1019 | totalNum = snum; |
pages/cart/cart/cart.js
@@ -2073,7 +2073,9 @@ Page({ | @@ -2073,7 +2073,9 @@ Page({ | ||
2073 | icon: 'none', | 2073 | icon: 'none', |
2074 | }); | 2074 | }); |
2075 | th.setData({[txt]: redis_num}); | 2075 | th.setData({[txt]: redis_num}); |
2076 | - await e.doCheckAll(); | 2076 | + t.goods_num = redis_num; |
2077 | + await th.doCheckAll(); | ||
2078 | + await th.update_cart_ser(t, pitem, item); | ||
2077 | return false; | 2079 | return false; |
2078 | }; | 2080 | }; |
2079 | 2081 | ||
@@ -2114,14 +2116,22 @@ Page({ | @@ -2114,14 +2116,22 @@ Page({ | ||
2114 | if (buylimit > 0) { | 2116 | if (buylimit > 0) { |
2115 | if (num > redis_num) { | 2117 | if (num > redis_num) { |
2116 | th.setData({[txt]: redis_num-cartGoodsNum}); | 2118 | th.setData({[txt]: redis_num-cartGoodsNum}); |
2119 | + t.goods_num = redis_num-cartGoodsNum; | ||
2120 | + await th.doCheckAll(); | ||
2121 | + await th.update_cart_ser(t, pitem, item); | ||
2117 | } else { | 2122 | } else { |
2118 | th.setData({[txt]: num - cartGoodsNum}); | 2123 | th.setData({[txt]: num - cartGoodsNum}); |
2124 | + t.goods_num = num - cartGoodsNum; | ||
2125 | + await th.doCheckAll(); | ||
2126 | + await th.update_cart_ser(t, pitem, item); | ||
2119 | } | 2127 | } |
2120 | } else { | 2128 | } else { |
2121 | th.setData({[txt]: redis_num - cartGoodsNum}); | 2129 | th.setData({[txt]: redis_num - cartGoodsNum}); |
2130 | + t.goods_num = redis_num - cartGoodsNum; | ||
2131 | + await th.doCheckAll(); | ||
2132 | + await th.update_cart_ser(t, pitem, item); | ||
2122 | } | 2133 | } |
2123 | 2134 | ||
2124 | - await e.doCheckAll(); | ||
2125 | return false; | 2135 | return false; |
2126 | }; | 2136 | }; |
2127 | 2137 | ||
@@ -2138,7 +2148,9 @@ Page({ | @@ -2138,7 +2148,9 @@ Page({ | ||
2138 | }); | 2148 | }); |
2139 | if (num <= 0) num = 1; | 2149 | if (num <= 0) num = 1; |
2140 | th.setData({[txt]: num - cartGoodsNum}); | 2150 | th.setData({[txt]: num - cartGoodsNum}); |
2141 | - await e.doCheckAll(); | 2151 | + t.goods_num = num - cartGoodsNum; |
2152 | + await th.doCheckAll(); | ||
2153 | + await th.update_cart_ser(t, pitem, item); | ||
2142 | return false; | 2154 | return false; |
2143 | }; | 2155 | }; |
2144 | 2156 |