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 | //先获取门店的编号 | ... | ... |