diff --git a/pages/user/order_detail/order_detail.js b/pages/user/order_detail/order_detail.js index 5280c89..ce9e048 100644 --- a/pages/user/order_detail/order_detail.js +++ b/pages/user/order_detail/order_detail.js @@ -270,10 +270,204 @@ Page({ }, //--------立即支付---------- - jumpToCart4: function(e) { - this.data.optionIsGoup ? wx.navigateTo({ - url: "/pages/team/team_confirm/team_confirm?orderSn=" + this.data.order.order_sn + "&orderPay=true" - }) : o.jumpToCart4({ + async jumpToCart4(e) { + var th=this; + if(this.data.optionIsGoup) + wx.navigateTo({ + url: "/pages/team/team_confirm/team_confirm?orderSn=" + this.data.order.order_sn + "&orderPay=true" + }) + var order=this.data.order; + var order_goods=order.order_goods; + + for(var i in order_goods){ + var good=order_goods[i]; + //如果不是小程序有的功能,直接提示要去3.0处理 + if(good.prom_type==2 || good.prom_type==3 || good.prom_type==4 || good.prom_type==5){ + wx.showModal({ + title: '提示', + content: '小程序还未有该活动,请到3.0公众号支付' + }); + return false; + } + + //要每件每件的商品进行检查,看有么有超出库存,超出限购 + var good= order_goods[i],goodsbuynum=0,promgoodsbuynum=0,gg=null; + //获取单品的现在的活动状态 + await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + good.goods_id, { + }).then(res=>{ + gg=res.data.data; + }) + var limit = gg.viplimited; + var store_count = gg.store_count; + + //---要获得商品,该用户买了多少件,同步应用--- + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { + data: { + store_id: os.stoid, + user_id: getApp().globalData.user_id, + goods_id: good.goods_id, + prom_type: good.prom_type, + prom_id: good.prom_id + }, + }).then(res => { + var buy_num_data = res.data.data; + if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; + goodsbuynum = buy_num_data.goodsbuynum; + }) + + var buyed_mum2=goodsbuynum+good.goods_num; + if (buyed_mum2 > limit && limit > 0) { + wx.showModal({ + title: '提示', + content: gg.goods_name+'购买数量超出商品限购' + }); + return false; + } + + if(good.prom_type==1 || good.prom_type==6){ + if(gg.prom_type!=good.prom_type) + wx.showModal({ + title: '提示', + content: gg.goods_name+'商品的活动发生了变化' + }); + return false; + }else{ + + if(gg.prom_type==1 || gg.prom_type==6){ + var prom=null; + //---如果是活动的时候--- + var prom=null,th=this; + if(gg.prom_type==1){ + await getApp().request.promiseGet("/api/ms/flash_sale/get/"+os.stoid+"/"+gg.prom_id,{ + }).then(res=>{ + if(res.data.code==0){ + prom=res.data.data; + } + }) + } + if(gg.prom_type==6){ + await getApp().request.promiseGet("/api/weshop/teamlist/get/"+os.stoid+"/"+gg.prom_id,{ + }).then(res=>{ + if(res.data.code==0){ + prom=res.data.data; + } + }) + } + + if(prom){ + var t_now=ut.gettimestamp(); + if(prom.is_end==0 && prom.start_timet_now){ + wx.showModal({ + title: '提示', + content: gg.goods_name+'商品的活动发生了变化' + }); + return false; + } + } + } + + + var isok=1; + var card_field=th.data.card_field; + //如果会员是等级会员,商品有等级价,且不是活动商品 + if(card_field && gg[card_field]>0){ + if (good.goods_price != gg[card_field]) isok = 0; + }else{ + if (good.goods_price != gg.shop_price) isok = 0; + + } + if(!isok){ + wx.showModal({ + title: '提示', + content: gg.goods_name+'商品的价格发生了变化' + }); + return false; + } + + //--如果是线下库存的时候-- + if(th.data.conf.sales_rules==2){ + var ob={}; + await th.check_down_line_next(gg,good.goods_num,order.pickup_id,function(obj){ + ob=obj; + }) + if(ob.code==-1){ + wx.showModal({ + title: '提示', + content: gg.goods_name+'门店库存不足' + }); + return false; + } + + }else{ + if(good.goods_num>store_count){ + wx.showModal({ + title: '提示', + content: gg.goods_name+'商品的库存不足' + }); + return false; + } + + } + } + + var prom=null; + //---如果是活动的时候--- + var prom=null,goodsinfo=good,th=this; + if(goodsinfo.prom_type==1){ + await getApp().request.promiseGet("/api/ms/flash_sale/get/"+os.stoid+"/"+goodsinfo.prom_id,{ + }).then(res=>{ + if(res.data.code==0){ + prom=res.data.data; + } + }) + } + if(goodsinfo.prom_type==6){ + await getApp().request.promiseGet("/api/weshop/teamlist/get/"+os.stoid+"/"+goodsinfo.prom_id,{ + }).then(res=>{ + if(res.data.code==0){ + prom=res.data.data; + } + }) + } + //----------如果有活动,并且在进行中,就不计算线下库存--------------- + if(prom){ + var now=ut.gettimestamp(); + if(prom.is_end==1 && prom.end_time prom.buy_limit && prom.buy_limit > 0) { + wx.showModal({ + title: '提示', + content: goodsinfo.goods_name+'购买数量超出商品活动限购' + }); + return false; + } + + var redis_num = 0; + //------判断活动是否抢光----- + await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + + os.stoid + "/" + goodsinfo.prom_type + "/" + goodsinfo.prom_id, { + }).then(res => { + redis_num = res.data.data; + }); + + if (good.goods_num > redis_num) { + wx.showModal({ + title: gg.goods_name+'超出商品活动库存', + }); + return false; + } + } + + } + + o.jumpToCart4({ order_sn: this.data.order.order_sn, order_amount: this.data.order.order_amount }, 1); @@ -393,7 +587,48 @@ Page({ if(item.order_amount==0 || item.user_money==0) return true; } return false; - } + }, + + + + //---检验线下库存的数量的子函数--- + async check_down_line_next(gg,num,pick_id,func){ + + var lock=0,pick_no,plist; + //先读取门店的lock + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ + data:{store_id:os.stoid,wareId:gg.goods_id,storageId:pick_id} + }).then(res=>{ + if(res.data.code==0 && res.data.data.total>0){ + for(var i in res.data.data.pageData) + lock+=res.data.data.pageData[i].outQty; + } + }) + //先获取门店的编号 + await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+pick_id,{ + data:{storeId:os.stoid,goodsId:gg.goods_id,pickupId:pick_id} + }).then(res=>{ + if(res.data.code==0){ + pick_no=res.data.data.pickup_no; + } + }) + //读取线下的门店库存 + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ + data:{storageNos:pick_no,wareIds:encodeURIComponent(gg.erpwareid),storeId:os.stoid} + }).then(res=>{ + if(res.data.code==0){ + plist=res.data.data.pageData[0]; + } + }) + var ob={}; ob.code=1; + if(num>plist.CanOutQty-lock){ + ob.code=-1; + ob.CanOutQty=plist.CanOutQty-lock + if(ob.CanOutQty<0) ob.CanOutQty=0; + } + func(ob) + }, + diff --git a/pages/user/order_list/order_list.js b/pages/user/order_list/order_list.js index 9a15d14..82ad728 100644 --- a/pages/user/order_list/order_list.js +++ b/pages/user/order_list/order_list.js @@ -604,7 +604,8 @@ Page({ data:{store_id:os.stoid,wareId:gg.goods_id,storageId:pick_id} }).then(res=>{ if(res.data.code==0 && res.data.data.total>0){ - lock=res.data.data.pageData[0].outQty; + for(var i in res.data.data.pageData) + lock+=res.data.data.pageData[i].outQty; } }) //先获取门店的编号