diff --git a/pages/goods/goodsInfo/goodsInfo.js b/pages/goods/goodsInfo/goodsInfo.js index f6aa22b..643ab30 100644 --- a/pages/goods/goodsInfo/goodsInfo.js +++ b/pages/goods/goodsInfo/goodsInfo.js @@ -219,6 +219,7 @@ Page({ new_user: 0, //新用户 def_pick_store: null, // 默认的门店 + fir_def_store:null, //客户默认的门店的 lat: null, //维度 lon: null, //经度 @@ -233,11 +234,13 @@ Page({ is_collect_load:0, //是不是处理 is_newsales_rules:0, //是否开启最新的门店规则,此时会新读门店,当点击选择门店时会触发读取线下库存 sales_rules:1, //默认是线上销售 + + wait_for_user_store:null, + }, //------初始化加载---------- onLoad: function(t) { - wx.setNavigationBarTitle({ title: "商品详情", }) @@ -297,7 +300,6 @@ Page({ //---如果后台又开等级卡的开关--- if(sw_arr.rank_switch && sw_arr.rank_switch=="2"){ th.setData({rank_switch:true}); - //---回调卡的列表--- th.getPlusCardType(function(ob){ th.setData({card_list:ob.card_list}); @@ -346,38 +348,38 @@ Page({ clearInterval(w_time); var distance = null; var e=JSON.parse(JSON.stringify(ee)); - //如果有开启近距离的话,同时距离优不一样了 if (that.data.lat != null) { //如果经纬度有变化的话 if( appd.lat==that.data.lat && appd.lon==that.data.lon && e.distance>0 ){ + that.data.fir_def_store=e; that.setData({ def_pick_store: e, sto_sele_name: e.pickup_name, sto_sele_id: e.pickup_id, sto_sele_distr: e.distr_type }) - }else{ - //要用接口是获取距离,js的计算不准 - getApp().request.get("/api/weshop/pickup/list",{ - data:{store_id:os.stoid,pickup_id:e.pickup_id,lat:th.data.lat,lon: th.data.lon}, - success:function (res) { - if(res.data.code==0){ - e=res.data.data.pageData[0]; - if (e){ - appd.pk_store=e; - that.setData({ - def_pick_store: e, - sto_sele_name: e.pickup_name, - sto_sele_id: e.pickup_id, - sto_sele_distr: e.distr_type - }) - } - - } - } - }) + }else{ + //要用接口是获取距离,js的计算不准 + getApp().request.promiseGet("/api/weshop/pickup/list",{ + data:{store_id:os.stoid,pickup_id:e.pickup_id,lat:th.data.lat,lon: th.data.lon}, + }).then(res=>{ + if(res.data.code==0){ + e=res.data.data.pageData[0]; + if (e){ + appd.pk_store=e; + that.data.fir_def_store=e; + that.setData({ + def_pick_store: e, + sto_sele_name: e.pickup_name, + sto_sele_id: e.pickup_id, + sto_sele_distr: e.distr_type + }) + } + + } + }) } //e.distance = distance; @@ -387,18 +389,16 @@ Page({ }else{ if (e) { e.distance = null; + that.data.fir_def_store=e; that.setData({ def_pick_store: e, sto_sele_name: e.pickup_name, sto_sele_id: e.pickup_id, sto_sele_distr: e.distr_type }) - } - - + } } - - + }, 500) }); @@ -549,7 +549,7 @@ Page({ //---展示--- onShow: function() { - var goods_list = null,th = this; + var goods_list = null,th = this,that=this; var ui = setInterval(function () { goods_list = th.selectComponent("#goods_list"); if (goods_list) { @@ -626,10 +626,49 @@ Page({ //获取统一条形码,普通商品和优惠促销的商品 - if (ee.data.data.prom_type == 0 || ee.data.data.prom_type == 2 || ee.data.data.prom_type == 3 || ee.data.data.prom_type == 4 || ee.data.data.prom_type == 5){ - - //获取门店 - ee.get_sto(); + if (ee.data.data.prom_type == 0 || ee.data.data.prom_type == 2 || ee.data.data.prom_type == 3 || ee.data.data.prom_type == 4 || ee.data.data.prom_type == 5){ + //默认门店要拿下门店库存 + if(that.data.sales_rules==2 && that.data.is_newsales_rules){ + //--等待某个值只运行---,这里有可能因为导航的时间太久,而不能计算门店库存 + getApp().waitfor2(that,"wait_for_user_store","fir_def_store",function(){ + if(th.data.fir_def_store){ + var lock=0,plist=null; + //先读取门店的lock,采用链式写法,少用await + getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ + data:{store_id:os.stoid,wareId:ee.data.data.goods_id,storageId:that.data.fir_def_store.pickup_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 + } + //---通过接口获取门店的线下库存信息-- + return getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ + data:{storageNos:that.data.fir_def_store.pickup_no,wareIds:encodeURIComponent(th.data.data.erpwareid),storeId:os.stoid} + }) + }).then(res=>{ + if(res.data.code==0 && res.data.data.total>0){ + plist=res.data.data.pageData[0]; + } + if(plist && plist.CanOutQty-lock>0){ + that.data.fir_def_store.CanOutQty=plist.CanOutQty-lock; + }else{ + that.data.fir_def_store.CanOutQty=0; + } + //--给门店赋值线下库存-- + th.setData({def_pick_store:that.data.fir_def_store}); + //获取门店 + ee.get_sto(); + }) + }else{ + //--获取门店-- + ee.get_sto(); + } + }) + }else{ + //获取门店 + ee.get_sto(); + } + ee.get_sku(o.stoid, t.data.data.sku, gid); } else { @@ -1453,6 +1492,7 @@ Page({ //-----------选择属性的按钮事件---------- sele_spec: function(e) { + var that=this,ee=this,th=this; var gid = e.currentTarget.dataset.gid; var sku_g = this.data.sku_g; var item = null; @@ -1466,7 +1506,37 @@ Page({ sele_g: item, gid: gid }); - this.get_sto(); + + this.get_sto(); + //默认门店要拿下门店库存 + if(that.data.sales_rules==2 && that.data.def_pick_store){ + var lock=0,plist=null; + //先读取门店的lock,采用链式写法,少用await + getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ + data:{store_id:os.stoid,wareId:ee.data.sele_g.goods_id,storageId:that.data.def_pick_store.pickup_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 + } + //---通过接口获取门店的线下库存信息-- + return getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ + data:{storageNos:that.data.def_pick_store.pickup_no,wareIds:encodeURIComponent(th.data.sele_g.erpwareid),storeId:os.stoid} + }) + }).then(res=>{ + if(res.data.code==0 && res.data.data.total>0){ + plist=res.data.data.pageData[0]; + } + if(plist && plist.CanOutQty-lock>0){ + that.data.def_pick_store.CanOutQty=plist.CanOutQty-lock; + }else{ + that.data.def_pick_store.CanOutQty=0; + } + //--给门店赋值线下库存-- + th.setData({def_pick_store:that.data.def_pick_store}); + }) + } + this.sele_spec_chech_activity(); }, @@ -1521,7 +1591,7 @@ Page({ //---------拿出门店分类和门店------------ get_sto(e) { - var th = this; + var th = this,that=this; var timer_get = setInterval(function() { if (th.data.is_get_local_ok == 0) return false; var dd = null, @@ -1562,6 +1632,7 @@ Page({ sto_sele_id: e.data.data.pageData[0].pickup_id, sto_sele_distr: e.data.data.pageData[0].distr_type }); + th.data.fir_def_store=e.data.data.pageData[0]; } //-- 如果有默认选择门店的时候,要把默认门店放在第一位 -- @@ -1599,7 +1670,7 @@ Page({ var th=this; //单总量超出5个的时候 if (e.data.data.total > 5) { - i.get("/api/weshop/storagecategory/page", { + getApp().request.get("/api/weshop/storagecategory/page", { data: { store_id: o.stoid, is_show: 1, @@ -1780,10 +1851,11 @@ Page({ o_plist[kk].CanOutQty=n_item.CanOutQty-lock_num; new_list.push(o_plist[kk]); //如果找到默认门店 - if(def_pick_store && n_item.StorageNo==def_pick_store.pickup_no){ - def_pick_store.CanOutQty=n_item.CanOutQty-lock_num; - th.setData({def_pick_store:def_pick_store}) - is_find_def_store=1; + if(n_item.StorageNo==th.data.fir_def_store.pickup_no){ + th.data.fir_def_store.CanOutQty=n_item.CanOutQty-lock_num; + if(def_pick_store.pickup_id==th.data.fir_def_store.pickup_id) + th.setData({def_pick_store:th.data.fir_def_store}) + is_find_def_store=1; } } break; @@ -1794,14 +1866,21 @@ Page({ //数据组装下 var em={};em.data={};em.data.data={}; em.data.data.total=new_list.length; - em.data.data.pageData=new_list; - + em.data.data.pageData=new_list; + + if(th.data.fir_def_store && !is_find_def_store){ + th.data.fir_def_store.CanOutQty=0; + //--当选择的门店是客户默认的门店的时候-- + if(th.data.fir_def_store.pickup_id==th.data.def_pick_store.pickup_id) { + th.setData({def_pick_store:th.data.fir_def_store}); + em.data.data.pageData.unshift(th.data.def_pick_store); + }else{ + em.data.data.pageData.splice(1,0,th.data.fir_def_store); + } + } + //---把数组组装进去--- - th.deal_pickup(em); - if(th.data.def_pick_store && !is_find_def_store){ - th.setData({def_pick_store:null}); - } - + th.deal_pickup(em); }else{ th.setData({def_pick_store:null,all_sto:null,only_pk:null}) } @@ -2172,7 +2251,7 @@ Page({ t.data.data.ct_rylist = JSON.parse(t.data.data.ct_rylist); var max_num = 0; t.data.data.ct_rylist.forEach(function(val, ind) { - if (val.rynum > max_num) max_num = val.rynum; + if (parseInt(val.rynum) > max_num) max_num = parseInt(val.rynum); }) t.data.data.max_ct_num = max_num; } @@ -3405,7 +3484,7 @@ Page({ // 选择门店 choice_store: function(ee) { var th = this; - //var ind=ee.currentTarget.dataset.ind; + var ind=ee.currentTarget.dataset.ind; var bconfig = th.data.bconfig; if(!th.data.only_pk && !th.data.def_pickpu_list){ @@ -3461,25 +3540,63 @@ Page({ th.get_sto(); } - - - - this.setData({ - //open_ind_store: ind, - store: 1, - openSpecModal: !1, - openSpecModal_pt: !1 - }) + if(ind!=undefined && ind!=null ){ + this.setData({ + open_ind_store: ind, + store: 1, + openSpecModal: !1, + openSpecModal_pt: !1 + }) + }else{ + this.setData({ + store: 1, + openSpecModal: !1, + openSpecModal_pt: !1 + }) + } }, //关闭选择门店 close_popup: function(e) { - + var th=this; this.setData({ store: 0, choice_sort_store: 0, - sort_store: 0 + sort_store: 0, + fir_pick_index:0, + sec_pick_index:0 }) + + var openindstore=this.data.open_ind_store; + if (openindstore == 1) { + th.setData({ + openSpecModal: !0, + openSpecModal_ind: openindstore, + }); + } else if (openindstore == 2) { + th.setData({ + openSpecModal: !0, + openSpecModal_ind: openindstore, + }); + } + else if (openindstore == 4) { //4就是拼团 + th.setData({ + openSpecModal_pt: 1, //打开拼团购买界面 + store: 0, //关闭门店 + choice_sort_store: 0, //关闭门店2级 + sort_store: 0, //关闭门店2级 + }); + } + else { + th.setData({ + store: 0, + choice_sort_store: 0, + sort_store: 0 + }) + } + + }, + //选择更多门店 more_store: function() { this.setData({ @@ -3509,19 +3626,18 @@ Page({ sec_pick_index: 0 }); }, + choose_for_store_fir: function(e) { var index_c = e.currentTarget.dataset.ind; - var th=this; - this.check_the_pick(index_c,function(){ - th.setData({ - fir_pick_index: index_c - }) - }) - + var th=this; + th.setData({ + fir_pick_index: index_c + }) + }, //如果开启线下库存,已经急速库存才会使用 - async check_the_pick(index,func){ + async check_the_pick(item,func){ var th=this; var goodsinfo=th.data.sele_g; var erpwareid=goodsinfo.erpwareid; @@ -3535,18 +3651,8 @@ Page({ if(this.data.sales_rules!=2 && this.data.is_newsales_rules!=1){ func(); - }else{ - var item=null; - if (th.data.choice_sort_store == 0) { - if (th.data.is_show_sto_cat == 1) { - item = th.data.def_pickpu_list[index]; - } else { - item = th.data.only_pk[index]; //当没有门店分类的时候 - } - } else { - item = th.data.sec_sto.s_arr[index]; - } - + }else{ + //先读取门店的lock await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ data:{store_id:os.stoid,wareId:goodsinfo.goods_id,storageId:item.pickup_id} @@ -3555,8 +3661,7 @@ Page({ for(var i in res.data.data.pageData ) lock+=res.data.data.pageData[i].outQty; } - }) - + }) //读取线下的门店库存 await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ data:{storageNos:item.pickup_no,wareIds:encodeURIComponent(erpwareid),storeId:os.stoid} @@ -3567,6 +3672,7 @@ Page({ }) if(plist && plist.CanOutQty-lock>0){ + item.CanOutQty=plist.CanOutQty-lock; func(); return false; } @@ -3594,144 +3700,142 @@ Page({ var index = th.data.sec_pick_index; item = th.data.sec_sto.s_arr[index]; } - th.setData({ - def_pick_store: item, - sto_sele_name: item.pickup_name, - sto_sele_id: item.pickup_id, - sto_sele_distr: item.distr_type, - store: 0, - choice_sort_store: 0, - fir_pick_index: 0 - }); - - if (openindstore == 1) { - th.setData({ - openSpecModal: !0, - openSpecModal_ind: openindstore, - }); - } else if (openindstore == 2) { - th.setData({ - openSpecModal: !0, - openSpecModal_ind: openindstore, - }); - } - else if (openindstore == 4) { //4就是拼团 - th.setData({ - openSpecModal_pt: 1, //打开拼团购买界面 - store: 0, //关闭门店 - choice_sort_store: 0, //关闭门店2级 - sort_store: 0, //关闭门店2级 - }); - } - - else { - th.setData({ - store: 0, - choice_sort_store: 0, - sort_store: 0 - }) - } - + + //--回调函数的用法-- + th.check_the_pick(item,function(){ + th.setData({ + def_pick_store: item, + sto_sele_name: item.pickup_name, + sto_sele_id: item.pickup_id, + sto_sele_distr: item.distr_type, + store: 0, + choice_sort_store: 0, + fir_pick_index: 0 + }); + + if (openindstore == 1) { + th.setData({ + openSpecModal: !0, + openSpecModal_ind: openindstore, + }); + } else if (openindstore == 2) { + th.setData({ + openSpecModal: !0, + openSpecModal_ind: openindstore, + }); + } + else if (openindstore == 4) { //4就是拼团 + th.setData({ + openSpecModal_pt: 1, //打开拼团购买界面 + store: 0, //关闭门店 + choice_sort_store: 0, //关闭门店2级 + sort_store: 0, //关闭门店2级 + }); + } + else { + th.setData({ + store: 0, + choice_sort_store: 0, + sort_store: 0 + }) + } + }) }, //---点击二级之后的选择--- choose_for_store: function(e) { var index_c = e.currentTarget.dataset.ind; - var th=this; - th.check_the_pick(index_c,function(){ - th.setData({ + var th=this; + th.setData({ sec_pick_index: index_c, fir_pick_index: index_c - }) - }) + }) + }, //把选择的门店设置成默认的门店def_pick set_def_pick: function(e) { var th = this; var item = null; - if (th.data.choice_sort_store == 0) { - var index = th.data.fir_pick_index; - if (th.data.is_show_sto_cat == 1) { item = th.data.def_pickpu_list[index]; } else { item = th.data.only_pk[index]; //当没有门店分类的时候 - } } else { var index = th.data.sec_pick_index; item = th.data.sec_sto.s_arr[index]; } - - var store_id = o.stoid; - var user_id = getApp().globalData.user_id; - var def_pickup_id = item.pickup_id; - - getApp().request.put('/api/weshop/users/update', { - data: { - user_id, - def_pickup_id - }, - success: function(res) { - if (res.data.code == 0) { - if (th.data.choice_sort_store == 0) th.setData({ - fir_pick_index: 0 - }); - getApp().globalData.pk_store = item; - } else { - //s.showWarning("设置默认门店地址失败", null, 500, !1); - getApp().my_warnning("设置默认门店地址失败",0,th) - } - - } - }); - - th.setData({ - def_pick_store: item, - sto_sele_name: item.pickup_name, - sto_sele_id: item.pickup_id, - sto_sele_distr: item.distr_type, - store: 0, - choice_sort_store: 0 - }); - - - var openindstore = th.data.open_ind_store; - if (openindstore == 1) { - th.setData({ - openSpecModal: !0, - openSpecModal_ind: openindstore, - store: 0, - choice_sort_store: 0, - sort_store: 0, - }); - } else if (openindstore == 2) { - th.setData({ - openSpecModal: !0, - openSpecModal_ind: openindstore, - store: 0, - choice_sort_store: 0, - sort_store: 0, - }); - } - else if (openindstore == 4) { //4就是拼团 - th.setData({ - openSpecModal_pt: 1, //打开拼团购买界面 - store: 0, //关闭门店 - choice_sort_store: 0, //关闭门店2级 - sort_store: 0, //关闭门店2级 - }); - } - - else { - th.setData({ - store: 0, - choice_sort_store: 0, - sort_store: 0, - }) - } - + + //先设置之前,要判断是不是有库存 + th.check_the_pick(item,function(){ + var store_id = o.stoid; + var user_id = getApp().globalData.user_id; + var def_pickup_id = item.pickup_id; + + getApp().request.put('/api/weshop/users/update', { + data: { + user_id, + def_pickup_id + }, + success: function(res) { + if (res.data.code == 0) { + if (th.data.choice_sort_store == 0) th.setData({ + fir_pick_index: 0 + }); + getApp().globalData.pk_store = item; + } else { + //s.showWarning("设置默认门店地址失败", null, 500, !1); + getApp().my_warnning("设置默认门店地址失败",0,th) + } + + } + }); + + th.setData({ + def_pick_store: item, + sto_sele_name: item.pickup_name, + sto_sele_id: item.pickup_id, + sto_sele_distr: item.distr_type, + store: 0, + choice_sort_store: 0 + }); + + var openindstore = th.data.open_ind_store; + if (openindstore == 1) { + th.setData({ + openSpecModal: !0, + openSpecModal_ind: openindstore, + store: 0, + choice_sort_store: 0, + sort_store: 0, + }); + } else if (openindstore == 2) { + th.setData({ + openSpecModal: !0, + openSpecModal_ind: openindstore, + store: 0, + choice_sort_store: 0, + sort_store: 0, + }); + } + else if (openindstore == 4) { //4就是拼团 + th.setData({ + openSpecModal_pt: 1, //打开拼团购买界面 + store: 0, //关闭门店 + choice_sort_store: 0, //关闭门店2级 + sort_store: 0, //关闭门店2级 + }); + } + + else { + th.setData({ + store: 0, + choice_sort_store: 0, + sort_store: 0, + }) + } + }) }, wait_for_store_config: function() { diff --git a/pages/goods/goodsInfo/goodsInfo.wxml b/pages/goods/goodsInfo/goodsInfo.wxml index 51fc111..9bf1fc3 100644 --- a/pages/goods/goodsInfo/goodsInfo.wxml +++ b/pages/goods/goodsInfo/goodsInfo.wxml @@ -404,7 +404,15 @@ 距离:{{def_pick_store.distance>1000?filters.toFix(def_pick_store.distance/1000,2)+"km":filters.toFix(def_pick_store.distance,0)+"m"}} - + + (库存不足) + + (库存不足) + + (库存不足) + + + 地址:{{def_pick_store.fulladdress}} @@ -910,11 +918,11 @@ - 门店库存不足 + (库存不足) - 门店库存不足 + (库存不足) - 门店库存不足 + (库存不足) @@ -960,11 +968,10 @@ 请先选择门店 - - + - + 库存不足 diff --git a/pages/goods/goodsInfo/goodsInfo.wxss b/pages/goods/goodsInfo/goodsInfo.wxss index fe63d77..af9058f 100644 --- a/pages/goods/goodsInfo/goodsInfo.wxss +++ b/pages/goods/goodsInfo/goodsInfo.wxss @@ -2254,7 +2254,7 @@ right:17rpx; top:55rpx; height: 90rpx; } .sn_height{ - height: 170rpx; + min-height: 170rpx; height: auto;padding: 10rpx 0; } .xc-address_frame .address_frame{ width: 92%; @@ -2566,4 +2566,5 @@ border-radius: 55rpx; button.custom-service { line-height: normal; border: 0;} button.custom-service::after{ border: 0; -} \ No newline at end of file +} +.no_store{color:#d60021; font-size: 26rpx;} \ No newline at end of file diff --git a/pages/user/order_detail/order_detail.js b/pages/user/order_detail/order_detail.js index 5280c89..01c93a3 100644 --- a/pages/user/order_detail/order_detail.js +++ b/pages/user/order_detail/order_detail.js @@ -1,5 +1,7 @@ var e = getApp(), r = e.request,rq=r,t = require("../../../utils/util.js"), o = require("../../../utils/common.js"),oo=e.globalData,os=oo.setting; var regeneratorRuntime = require('../../../utils/runtime.js'); +var ut= require('../../../utils/util.js'); + Page({ data: { @@ -270,10 +272,206 @@ 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 +591,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..25ed2f6 100644 --- a/pages/user/order_list/order_list.js +++ b/pages/user/order_list/order_list.js @@ -422,13 +422,18 @@ Page({ return false; } + + console.log("-----------------111-------------------"); + 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; + 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){ @@ -507,6 +512,8 @@ Page({ } } + + console.log("------------------------------------"); var prom=null; //---如果是活动的时候--- @@ -604,7 +611,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; } }) //先获取门店的编号