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