Commit aecfcdd8afbf6a00fa3239f812a51f71824f6d29
1 parent
aa90b8a0
立即支付的库存判断
Showing
2 changed files
with
242 additions
and
6 deletions
pages/user/order_detail/order_detail.js
@@ -270,10 +270,204 @@ Page({ | @@ -270,10 +270,204 @@ Page({ | ||
270 | }, | 270 | }, |
271 | 271 | ||
272 | //--------立即支付---------- | 272 | //--------立即支付---------- |
273 | - jumpToCart4: function(e) { | ||
274 | - this.data.optionIsGoup ? wx.navigateTo({ | ||
275 | - url: "/pages/team/team_confirm/team_confirm?orderSn=" + this.data.order.order_sn + "&orderPay=true" | ||
276 | - }) : o.jumpToCart4({ | 273 | + async jumpToCart4(e) { |
274 | + var th=this; | ||
275 | + if(this.data.optionIsGoup) | ||
276 | + wx.navigateTo({ | ||
277 | + url: "/pages/team/team_confirm/team_confirm?orderSn=" + this.data.order.order_sn + "&orderPay=true" | ||
278 | + }) | ||
279 | + var order=this.data.order; | ||
280 | + var order_goods=order.order_goods; | ||
281 | + | ||
282 | + for(var i in order_goods){ | ||
283 | + var good=order_goods[i]; | ||
284 | + //如果不是小程序有的功能,直接提示要去3.0处理 | ||
285 | + if(good.prom_type==2 || good.prom_type==3 || good.prom_type==4 || good.prom_type==5){ | ||
286 | + wx.showModal({ | ||
287 | + title: '提示', | ||
288 | + content: '小程序还未有该活动,请到3.0公众号支付' | ||
289 | + }); | ||
290 | + return false; | ||
291 | + } | ||
292 | + | ||
293 | + //要每件每件的商品进行检查,看有么有超出库存,超出限购 | ||
294 | + var good= order_goods[i],goodsbuynum=0,promgoodsbuynum=0,gg=null; | ||
295 | + //获取单品的现在的活动状态 | ||
296 | + await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + good.goods_id, { | ||
297 | + }).then(res=>{ | ||
298 | + gg=res.data.data; | ||
299 | + }) | ||
300 | + var limit = gg.viplimited; | ||
301 | + var store_count = gg.store_count; | ||
302 | + | ||
303 | + //---要获得商品,该用户买了多少件,同步应用--- | ||
304 | + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { | ||
305 | + data: { | ||
306 | + store_id: os.stoid, | ||
307 | + user_id: getApp().globalData.user_id, | ||
308 | + goods_id: good.goods_id, | ||
309 | + prom_type: good.prom_type, | ||
310 | + prom_id: good.prom_id | ||
311 | + }, | ||
312 | + }).then(res => { | ||
313 | + var buy_num_data = res.data.data; | ||
314 | + if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; | ||
315 | + goodsbuynum = buy_num_data.goodsbuynum; | ||
316 | + }) | ||
317 | + | ||
318 | + var buyed_mum2=goodsbuynum+good.goods_num; | ||
319 | + if (buyed_mum2 > limit && limit > 0) { | ||
320 | + wx.showModal({ | ||
321 | + title: '提示', | ||
322 | + content: gg.goods_name+'购买数量超出商品限购' | ||
323 | + }); | ||
324 | + return false; | ||
325 | + } | ||
326 | + | ||
327 | + if(good.prom_type==1 || good.prom_type==6){ | ||
328 | + if(gg.prom_type!=good.prom_type) | ||
329 | + wx.showModal({ | ||
330 | + title: '提示', | ||
331 | + content: gg.goods_name+'商品的活动发生了变化' | ||
332 | + }); | ||
333 | + return false; | ||
334 | + }else{ | ||
335 | + | ||
336 | + if(gg.prom_type==1 || gg.prom_type==6){ | ||
337 | + var prom=null; | ||
338 | + //---如果是活动的时候--- | ||
339 | + var prom=null,th=this; | ||
340 | + if(gg.prom_type==1){ | ||
341 | + await getApp().request.promiseGet("/api/ms/flash_sale/get/"+os.stoid+"/"+gg.prom_id,{ | ||
342 | + }).then(res=>{ | ||
343 | + if(res.data.code==0){ | ||
344 | + prom=res.data.data; | ||
345 | + } | ||
346 | + }) | ||
347 | + } | ||
348 | + if(gg.prom_type==6){ | ||
349 | + await getApp().request.promiseGet("/api/weshop/teamlist/get/"+os.stoid+"/"+gg.prom_id,{ | ||
350 | + }).then(res=>{ | ||
351 | + if(res.data.code==0){ | ||
352 | + prom=res.data.data; | ||
353 | + } | ||
354 | + }) | ||
355 | + } | ||
356 | + | ||
357 | + if(prom){ | ||
358 | + var t_now=ut.gettimestamp(); | ||
359 | + if(prom.is_end==0 && prom.start_time<t_now && prom.end_time>t_now){ | ||
360 | + wx.showModal({ | ||
361 | + title: '提示', | ||
362 | + content: gg.goods_name+'商品的活动发生了变化' | ||
363 | + }); | ||
364 | + return false; | ||
365 | + } | ||
366 | + } | ||
367 | + } | ||
368 | + | ||
369 | + | ||
370 | + var isok=1; | ||
371 | + var card_field=th.data.card_field; | ||
372 | + //如果会员是等级会员,商品有等级价,且不是活动商品 | ||
373 | + if(card_field && gg[card_field]>0){ | ||
374 | + if (good.goods_price != gg[card_field]) isok = 0; | ||
375 | + }else{ | ||
376 | + if (good.goods_price != gg.shop_price) isok = 0; | ||
377 | + | ||
378 | + } | ||
379 | + if(!isok){ | ||
380 | + wx.showModal({ | ||
381 | + title: '提示', | ||
382 | + content: gg.goods_name+'商品的价格发生了变化' | ||
383 | + }); | ||
384 | + return false; | ||
385 | + } | ||
386 | + | ||
387 | + //--如果是线下库存的时候-- | ||
388 | + if(th.data.conf.sales_rules==2){ | ||
389 | + var ob={}; | ||
390 | + await th.check_down_line_next(gg,good.goods_num,order.pickup_id,function(obj){ | ||
391 | + ob=obj; | ||
392 | + }) | ||
393 | + if(ob.code==-1){ | ||
394 | + wx.showModal({ | ||
395 | + title: '提示', | ||
396 | + content: gg.goods_name+'门店库存不足' | ||
397 | + }); | ||
398 | + return false; | ||
399 | + } | ||
400 | + | ||
401 | + }else{ | ||
402 | + if(good.goods_num>store_count){ | ||
403 | + wx.showModal({ | ||
404 | + title: '提示', | ||
405 | + content: gg.goods_name+'商品的库存不足' | ||
406 | + }); | ||
407 | + return false; | ||
408 | + } | ||
409 | + | ||
410 | + } | ||
411 | + } | ||
412 | + | ||
413 | + var prom=null; | ||
414 | + //---如果是活动的时候--- | ||
415 | + var prom=null,goodsinfo=good,th=this; | ||
416 | + if(goodsinfo.prom_type==1){ | ||
417 | + await getApp().request.promiseGet("/api/ms/flash_sale/get/"+os.stoid+"/"+goodsinfo.prom_id,{ | ||
418 | + }).then(res=>{ | ||
419 | + if(res.data.code==0){ | ||
420 | + prom=res.data.data; | ||
421 | + } | ||
422 | + }) | ||
423 | + } | ||
424 | + if(goodsinfo.prom_type==6){ | ||
425 | + await getApp().request.promiseGet("/api/weshop/teamlist/get/"+os.stoid+"/"+goodsinfo.prom_id,{ | ||
426 | + }).then(res=>{ | ||
427 | + if(res.data.code==0){ | ||
428 | + prom=res.data.data; | ||
429 | + } | ||
430 | + }) | ||
431 | + } | ||
432 | + //----------如果有活动,并且在进行中,就不计算线下库存--------------- | ||
433 | + if(prom){ | ||
434 | + var now=ut.gettimestamp(); | ||
435 | + if(prom.is_end==1 && prom.end_time<now){ | ||
436 | + wx.showModal({ | ||
437 | + title: '提示', | ||
438 | + content: goodsinfo.goods_name+'商品的活动已经结束' | ||
439 | + }); | ||
440 | + return false; | ||
441 | + } | ||
442 | + | ||
443 | + buyed_mum2=promgoodsbuynum+good.goods_num; | ||
444 | + if (buyed_mum2 > prom.buy_limit && prom.buy_limit > 0) { | ||
445 | + wx.showModal({ | ||
446 | + title: '提示', | ||
447 | + content: goodsinfo.goods_name+'购买数量超出商品活动限购' | ||
448 | + }); | ||
449 | + return false; | ||
450 | + } | ||
451 | + | ||
452 | + var redis_num = 0; | ||
453 | + //------判断活动是否抢光----- | ||
454 | + await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + | ||
455 | + os.stoid + "/" + goodsinfo.prom_type + "/" + goodsinfo.prom_id, { | ||
456 | + }).then(res => { | ||
457 | + redis_num = res.data.data; | ||
458 | + }); | ||
459 | + | ||
460 | + if (good.goods_num > redis_num) { | ||
461 | + wx.showModal({ | ||
462 | + title: gg.goods_name+'超出商品活动库存', | ||
463 | + }); | ||
464 | + return false; | ||
465 | + } | ||
466 | + } | ||
467 | + | ||
468 | + } | ||
469 | + | ||
470 | + o.jumpToCart4({ | ||
277 | order_sn: this.data.order.order_sn, | 471 | order_sn: this.data.order.order_sn, |
278 | order_amount: this.data.order.order_amount | 472 | order_amount: this.data.order.order_amount |
279 | }, 1); | 473 | }, 1); |
@@ -393,7 +587,48 @@ Page({ | @@ -393,7 +587,48 @@ Page({ | ||
393 | if(item.order_amount==0 || item.user_money==0) return true; | 587 | if(item.order_amount==0 || item.user_money==0) return true; |
394 | } | 588 | } |
395 | return false; | 589 | return false; |
396 | - } | 590 | + }, |
591 | + | ||
592 | + | ||
593 | + | ||
594 | + //---检验线下库存的数量的子函数--- | ||
595 | + async check_down_line_next(gg,num,pick_id,func){ | ||
596 | + | ||
597 | + var lock=0,pick_no,plist; | ||
598 | + //先读取门店的lock | ||
599 | + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ | ||
600 | + data:{store_id:os.stoid,wareId:gg.goods_id,storageId:pick_id} | ||
601 | + }).then(res=>{ | ||
602 | + if(res.data.code==0 && res.data.data.total>0){ | ||
603 | + for(var i in res.data.data.pageData) | ||
604 | + lock+=res.data.data.pageData[i].outQty; | ||
605 | + } | ||
606 | + }) | ||
607 | + //先获取门店的编号 | ||
608 | + await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+pick_id,{ | ||
609 | + data:{storeId:os.stoid,goodsId:gg.goods_id,pickupId:pick_id} | ||
610 | + }).then(res=>{ | ||
611 | + if(res.data.code==0){ | ||
612 | + pick_no=res.data.data.pickup_no; | ||
613 | + } | ||
614 | + }) | ||
615 | + //读取线下的门店库存 | ||
616 | + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ | ||
617 | + data:{storageNos:pick_no,wareIds:encodeURIComponent(gg.erpwareid),storeId:os.stoid} | ||
618 | + }).then(res=>{ | ||
619 | + if(res.data.code==0){ | ||
620 | + plist=res.data.data.pageData[0]; | ||
621 | + } | ||
622 | + }) | ||
623 | + var ob={}; ob.code=1; | ||
624 | + if(num>plist.CanOutQty-lock){ | ||
625 | + ob.code=-1; | ||
626 | + ob.CanOutQty=plist.CanOutQty-lock | ||
627 | + if(ob.CanOutQty<0) ob.CanOutQty=0; | ||
628 | + } | ||
629 | + func(ob) | ||
630 | + }, | ||
631 | + | ||
397 | 632 | ||
398 | 633 | ||
399 | 634 |
pages/user/order_list/order_list.js
@@ -604,7 +604,8 @@ Page({ | @@ -604,7 +604,8 @@ Page({ | ||
604 | data:{store_id:os.stoid,wareId:gg.goods_id,storageId:pick_id} | 604 | data:{store_id:os.stoid,wareId:gg.goods_id,storageId:pick_id} |
605 | }).then(res=>{ | 605 | }).then(res=>{ |
606 | if(res.data.code==0 && res.data.data.total>0){ | 606 | if(res.data.code==0 && res.data.data.total>0){ |
607 | - lock=res.data.data.pageData[0].outQty; | 607 | + for(var i in res.data.data.pageData) |
608 | + lock+=res.data.data.pageData[i].outQty; | ||
608 | } | 609 | } |
609 | }) | 610 | }) |
610 | //先获取门店的编号 | 611 | //先获取门店的编号 |