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 | 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 | 471 | order_sn: this.data.order.order_sn, |
278 | 472 | order_amount: this.data.order.order_amount |
279 | 473 | }, 1); |
... | ... | @@ -393,7 +587,48 @@ Page({ |
393 | 587 | if(item.order_amount==0 || item.user_money==0) return true; |
394 | 588 | } |
395 | 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 | 604 | data:{store_id:os.stoid,wareId:gg.goods_id,storageId:pick_id} |
605 | 605 | }).then(res=>{ |
606 | 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 | //先获取门店的编号 | ... | ... |