diff --git a/pages/user/order_detail/order_detail.js b/pages/user/order_detail/order_detail.js index ec840be..46d77c7 100644 --- a/pages/user/order_detail/order_detail.js +++ b/pages/user/order_detail/order_detail.js @@ -350,101 +350,140 @@ Page({ 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; var user_id=order.user_id; - - var wlist=""; - for(var i in order_goods){ - var good=order_goods[i]; - //线下取价功能已经关闭或者过期 - if(!th.data.is_open_offline && good.offline_cut>0){ - wx.showModal({ - title: '提示', - content: '线下取价功能已经关闭或者过期!' - }); - th.setData({paying: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; - good.erpwareid=gg.erpwareid; - - //---要获得商品,该用户买了多少件,同步应用--- - 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) { - - var content=gg.goods_name+'购买数量超出商品限购,请取消订单'; - th.toast(content); - th.setData({paying:0}); - return false; - } + + + //如果使用预存的话,要重新效验下预存金额是否足够 + if(order.pre_cut && order.pre_json){ + let pickup_id=order.pickup_id + let res = await r.promiseGet('/api/weshop/pickup/get/' + os.stoid + '/' + pickup_id, {}) + let keyid = res.data.data.keyid + let resdata = await th.vipadvancesum(keyid,order.pre_cut,order.pre_json) + if(resdata.code !=0){ + let msg=resdata.msg || "预存金额不足" + getApp().confirmBox(msg); + th.setData({ paying: 0 }); + return false; + } + } + // 幸运购检查库存量 api/weshop/activitylist/getActLen/{store_id}/{prom_type}/{prom_id} + if (parseInt(order_goods['0']['prom_type']) == 9) { + var aid = order_goods['0']['prom_id']; + var knum = 0; + await r.promiseGet('/api/weshop/activitylist/getActLen/' + os.stoid + '/9/' + aid, { + }).then(res => { + if (res.data.code == 0) { + knum = res.data.data; + } + }); + + if (knum <= 0) { + getApp().confirmBox("库存为0,支付失败"); + th.setData({ paying: 0 }); + return false; + } + + } + + var wlist = ""; + for (var i in order_goods) { + var good = order_goods[i]; + + + //线下取价功能已经关闭或者过期 + if (!th.data.is_open_offline && good.offline_cut > 0) { + wx.showModal({ + title: '提示', + content: '线下取价功能已经关闭或者过期!' + }); + th.setData({ paying: 0 }); + return false; + } + + //要每件每件的商品进行检查,看有么有超出库存,超出限购 + var good = order_goods[i], goodsbuynum = 0, promgoodsbuynum = 0, gg = null, presellList = 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; + good.erpwareid = gg.erpwareid; + + //---要获得商品,该用户买了多少件,同步应用--- + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { + data: { + store_id: os.stoid, + user_id: 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) { + var content = gg.goods_name + '购买数量超出商品限购,请取消订单'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + //当是组合优惠的时候 - if(good.prom_type==7){ + if (good.prom_type == 7) { //如果有组合购 var isok = 1; + var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + good.prom_id + "/" + getApp().globalData.userInfo.user_id; let zh_buy_info=null - var url="/api/weshop/prom/zhbuy/get/"+os.stoid+"/"+good.prom_id+"/"+getApp().globalData.userInfo.user_id; await getApp().request.promiseGet(url, {}).then(res => { - if(res.data.code==0 && res.data.data){ - zh_buy_info = res.data.data - if(res.data.data.is_show!=1){ - isok=0; + if (res.data.code == 0 && res.data.data) { + zh_buy_info = res.data.data + if (res.data.data.is_show != 1) { + isok = 0; } //如果活动已经结束 - if(res.data.data.is_end==1){ - isok=0; + if (res.data.data.is_end == 1) { + isok = 0; } //已经结束 - if(ut.gettimestamp()>res.data.data.end_time){ - isok=0; + if (ut.gettimestamp() > res.data.data.end_time) { + isok = 0; } //还未开始 - if(ut.gettimestamp()= zh_buy_info.buy_limit) { - var content = gg.goods_name + '超出组合购限购次数,请取消订单'; - th.toast(content); - th.setData({ paying: 0 }); - return false; + var content = gg.goods_name + '超出组合购限购次数,请取消订单'; + th.toast(content); + th.setData({ paying: 0 }); + return false; } var url1 = "/api/weshop/prom/zhbuyGoods/page"; @@ -453,380 +492,611 @@ Page({ pageSize: 1, store_id: os.stoid, zh_id: good.prom_id, - goods_id:good.goods_id + goods_id: good.goods_id } await getApp().request.promiseGet(url1, { data: req_data }).then(res => { if (ut.ajax_ok(res)) { var gdlist = res.data.data.pageData[0]; - good.buyqty=gdlist.buyqty; + good.buyqty = gdlist.buyqty; } }) - var num=good['buyqty']; - console.log(1111); - console.log(num); + var num = good['buyqty']; //---- 要计算商品的限购 ----- - if(good['buyqty']>0){ - if(good.goods_num+promgoodsbuynum>good['buyqty']){ + if (good['buyqty'] > 0) { + if (good.goods_num + promgoodsbuynum > good['buyqty']) { + var content = good['goods_name'] + "超出活动限购\n"; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + } + } + //如果是预售的时候, + if (good.prom_type == 8) { + await getApp().request.promiseGet("/api/weshop/order/orderPresell/countBuyGoodsSum", { + data: { store_id: os.stoid, user_id: user_id, goods_id: good.goods_id, prom_id: good.prom_id }, + }).then(e => { + if (e.data.code == 0) { + promgoodsbuynum = e.data.data.sumgoodsnum; + } + }) + + var presell_id = good.prom_id; + var url = "/api/weshop/marketing/marketingPresellList/list" + var rd = { + store_id: os.stoid, + presell_id: presell_id, + goods_id: good.goods_id + } + //------获取预售从表---------- + await getApp().request.promiseGet(url, { + data: rd + }).then(res => { + if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { + var arr = res.data.data[0]; + presellList = arr + } + }) - var content= good['goods_name']+"超出活动限购\n"; + if (presellList) { + + if (good.goods_num > presellList.presell_sumqty - presellList.buy_goodnum) { + var content = good.goods_name + '购买数量超出商品库存,请取消订单'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + var buyed_mum3 = promgoodsbuynum + good.goods_num; + if (buyed_mum3 > presellList.vip_butyqty && presellList.vip_butyqty > 0) { + var content = good.goods_name + '购买数量超出商品限购,请取消订单'; th.toast(content); - th.setData({paying:0}); + th.setData({ paying: 0 }); return false; } + } } //如果优惠促销和搭配购的时候 - if((good.prom_type==3 || good.prom_type==5) && good.is_collocation!=1 && good.is_gift!=1){ - var p_ok = 1,is_g_prom=0; - //因为有全场优惠活动,商品参加的活动还未开始 - var url="/api/weshop/activitylist/getGoodActInfo"; - var req_data={ - store_id:os.stoid,goodsidlist:good.goods_id,is_detail:1,user_id:user_id - }; - await getApp().request.promiseGet(url, {data:req_data}).then(async function (res) { - if(res.data.code==0 && res.data.data && res.data.data.length){ - for(let i in res.data.data){ - let item=res.data.data[i]; - if(item.prom_type==3 || item.prom_type==5) { - is_g_prom=1; break; - } + if ((good.prom_type == 3 || good.prom_type == 5 || good.prom_type == 10) && good.is_gift != 1 && good.is_collocation != 1) { + var p_ok = 1, is_g_prom = 0; + //只读优化促销和阶梯促销 + await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromListNew1/" + os.stoid + "/" + good.goods_id+"/0/"+user_id, {}).then(res => { + if (res.data.code == 0) { + var r_data = res.data.data; + if (!r_data.collocationPromList && good.prom_type == 5) { + var content = good.goods_name + '未找到活动,请取消订单重新购买'; + th.toast(content) + p_ok = 0; } + if (!r_data.promGoodsLists && good.prom_type == 3) { + var content = good.goods_name + '未找到活动,请取消订单重新购买'; + th.toast(content); + p_ok = 0; + } + if (!r_data.ladderLists && good.prom_type == 10) { + var content = good.goods_name + '未找到活动,请取消订单重新购买'; + th.toast(content); + p_ok = 0; + } + } else { + + var content = good.goods_name + '未找到活动,请取消订单重新购买' + th.toast(content); + p_ok = 0; } }) - if(is_g_prom){ - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + good.goods_id + "/0"+"/"+getApp().globalData.user_id, {}).then(res => { - if (res.data.code == 0) { - var r_data = res.data.data; - if (!r_data.collocationPromList && good.prom_type == 5) { - - var content = good.goods_name + '未找到活动,请取消订单重新购买'; - th.toast(content) - p_ok = 0; - } - if (!r_data.promGoodsLists && good.prom_type == 3) { + if (!p_ok) { + th.setData({ paying: 0 }); + return false; + } + } - var content = good.goods_name + '未找到活动,请取消订单重新购买'; - th.toast(content); - p_ok = 0; - } - } else { + //-- 商品的普通购买 ,不要进行判断 -- + if ((good.prom_type == 1 || good.prom_type == 2 || good.prom_type == 6 || good.prom_type == 4 || good.prom_type == 8 || good.prom_type == 9) + && !good.is_gift && !good.is_collocation && !good.is_integral_normal && !good.is_pd_normal) { - var content = good.goods_name + '未找到活动,请取消订单重新购买' - th.toast(content); - th.setData({paying:0}); - p_ok = 0; + } else { + + //因为商品的prom_type=0,所以商品的实际活动要重新获取 + var url = '/api/weshop/activitylist/listGoodActInfo2New'; + var req_d = { + "store_id": os.stoid, + "goods_id": good.goods_id, + "user_id": user_id, + } + await getApp().request.promiseGet(url, { + data: req_d + }).then(res => { + if (res.data.code == 0 && res.data.data) { + var arr = res.data.data; + //-- 预热也要计算 -- + var arr2 = arr.filter(function (e) { + return e.s_time < ut.gettimestamp() || (e.warm_uptime && e.warm_uptime < ut.gettimestamp()) + }) + if (arr2.length == 1) { + gg.prom_type=arr2[0].prom_type; + gg.prom_id=arr2[0].act_id; } - }) - }else{ - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromNormal/" + os.stoid + "/" + good.goods_id, {}).then(res => { - if (res.data.code == 0) { - var r_data = res.data.data; - if (!r_data.collocationPromList && good.prom_type == 5) { + } + }) - var content = good.goods_name + '未找到活动,请取消订单重新购买'; - th.toast(content) - p_ok = 0; + if ((gg.prom_type == 1 || gg.prom_type == 2 || gg.prom_type == 4 || gg.prom_type == 6 || gg.prom_type == 8 || gg.prom_type == 9) + && !good.is_collocation && !good.is_gift && !good.is_integral_normal && !good.is_pd_normal) { + var prom = null; + //---如果是活动的时候--- + var prom = null, th = this; + if (gg.prom_type == 1) { + await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + os.stoid + "/" + user_id + "/" + gg.prom_id, {}).then(res => { + if (res.data.code == 0) { + prom = res.data.data; + prom.price = prom.user_price; } - if (!r_data.promGoodsLists && good.prom_type == 3) { - - var content = good.goods_name + '未找到活动,请取消订单重新购买'; - th.toast(content); - p_ok = 0; + }) + } + if (gg.prom_type == 2) { + await getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + gg.goods_id + "/" + gg.prom_id, {}).then(res => { + if (res.data.code == 0) { + prom = res.data.data; + prom.price = prom.price; + } + }) + } + 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 (gg.prom_type == 4) { + await getApp().request.promiseGet("/api/weshop/integralbuy/pageIntegralBuyGoodsList?stype=1&stypeup=1&timetype=2", { + data: { store_id: os.stoid, goods_id: gg.goods_id,user_id: getApp().globalData.user_id, } + }).then(res => { + if (res.data.code == 0 && res.data.data && res.data.data.pageData) { + prom = res.data.data.pageData[0]; } - } else { + }) + } + if (prom) { + var t_now = ut.gettimestamp(); + if (prom.is_end == 0 && prom.start_time < t_now && prom.end_time > t_now) { - var content = good.goods_name + '未找到活动,请取消订单重新购买' + var content = gg.goods_name + '商品的活动发生了变化,请取消订单重新购买'; th.toast(content); - p_ok = 0; + th.setData({ paying: 0 }); + return false; } + } + + //-- 幸运购的时候 -- + if(gg.prom_type==8 || gg.prom_type==9){ + var content = gg.goods_name + '商品的活动发生了变化,请取消订单重新购买'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + + } + else { + var t_ok = 1; + //-- 如果是普通购买的时候,此时计算的一定是商品的prom_type==0了, (组合购在普通购买的时候,就不判断了,因为组合购本身就可以普通购买)--- + if(!good.is_collocation && !good.is_gift && good.is_pd_normal!=2 && gg.prom_type!=7 ){ + + var promgoodsbuynum0=0; + //---要获得商品,该用户买了多少件,同步应用--- + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { + data: { + store_id: os.stoid, + user_id: user_id, + goods_id: good.goods_id, + prom_type: gg.prom_type, + prom_id: gg.prom_id + }, + }).then(res => { + var buy_num_data = res.data.data; + if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; + }) + + + if(good.prom_type != gg.prom_type && good.prom_id != gg.prom_id){ + //如果商品有单独的活动的是偶 + switch (gg.prom_type){ + case 5: + case 10: + var content = gg.goods_name + '商品的活动发生了变化,请取消订单重新购买'; + th.toast(content); + t_ok = 0; + break; + //-- 优惠促销是有限购的 -- + case 3: + var prom=null; + var yh_check=1; + await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + gg.prom_id, {}).then(res => { + if (res.data.code == 0) { prom = res.data.data; } + }) + if (prom && prom.limit_num) { + var limit_num = prom.limit_num; + var user_pre_buynum = await this.getUserBuyPromNum_pre(prom.id) + if (limit_num>0 && user_pre_buynum >= limit_num) { + yh_check=0; + } + } + //-- 优惠促销活动没有超出限购的话 -- + if(yh_check){ + var content = gg.goods_name + '商品的活动发生了变化,请取消订单重新购买'; + th.toast(content); + t_ok = 0; + break; + } + + break + case 7: + //获取组合购活动 + var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + gg.prom_id + "/" + getApp().globalData.userInfo.user_id; + let zh_buy_info=null + await getApp().request.promiseGet(url, {}).then(res => { + if (res.data.code == 0 && res.data.data) { + zh_buy_info = res.data.data + } + }) + //判断活动超出限购 + var is_act_ok=1; + let userbuynum = await th.getUserBuyPromNum(gg.prom_id) + if (zh_buy_info.buy_limit !=0 && zh_buy_info && userbuynum >= zh_buy_info.buy_limit) { + is_act_ok=0; + } + + //判断活动商品超出限购,在从表 + var url1 = "/api/weshop/prom/zhbuyGoods/page"; + var req_data = { + page: 1, + pageSize: 1, + store_id: os.stoid, + zh_id: gg.prom_id, + goods_id: gg.goods_id + } + await getApp().request.promiseGet(url1, { + data: req_data + }).then(res => { + if (ut.ajax_ok(res)) { + var gdlist = res.data.data.pageData[0]; + gg.buyqty = gdlist.buyqty; + } + }) + var num = gg['buyqty']; + //---- 要计算商品的限购 ----- + if (gg['buyqty'] > 0) { + if (gg.goods_num + promgoodsbuynum0 > gg['buyqty']) { + is_act_ok=0; + } + } + if(is_act_ok){ + var content = gg.goods_name + '商品的活动发生了变化,请取消订单重新购买'; + th.toast(content); + t_ok = 0; + break; + } + } + } + } + //-- 判断活动是不是OK -- + if (!t_ok) { + th.setData({ paying: 0 }); return false; + } + + // if (!good.is_gift && good.prom_type != 3) { + // var t_ok = 1; + // await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + good.goods_id + "/0" + "/" + getApp().globalData.user_id, {}).then(res => { + // if (res.data.code == 0) { + // var r_data = res.data.data; + // //-- 参加了全局的优惠活动 -- + // if (r_data.promGoodsLists) { + // var content = gg.goods_name + '商品的活动发生了变化,请取消订单重新购买'; + // th.toast(content); + // t_ok = 0; + // } + // } + // }) + // if (!t_ok) { + // th.setData({ paying: 0 }); return false; + // } + // } + //-- 如果有参加线下取价 -- + if (good.offline_cut > 0) wlist += encodeURIComponent(gg.erpwareid) + ","; + } + //赠品和搭配购不判断商品金额 + var isok = 1; + var card_field = th.data.card_field; + + //-- 如果会员是等级会员,商品有等级价,且不是活动商品,同时线下取价的要放在最后来判断 -- + if (!good.is_gift && !good.is_collocation && gg.prom_type != 9) { + if (card_field && gg[card_field] > 0) { + if (good.goods_price != gg[card_field] && good.offline_cut <= 0) isok = 0; + if (good.goods_price > gg[card_field] && good.offline_cut > 0) isok = 0; //如果线下价格比较贵,则不通过 + + } else { + if (good.goods_price != gg.shop_price && good.offline_cut <= 0) isok = 0; + if (good.goods_price > gg.shop_price && good.offline_cut > 0) isok = 0; //如果线下价格比较贵,则不通过 + } + var is_h = 0; + if (!isok) { + + var content = gg.goods_name + '商品的价格发生了变化,请取消订单重新购买1' + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + } + + //--如果是线下库存的时候-- + if (th.data.conf.sales_rules >= 2 && !gg.whsle_id) { + var ob = {}; + await th.check_down_line_next(gg, good.goods_num, order.pickup_id, function (obj) { + ob = obj; }) + if (ob.code == -1) { + var content = gg.goods_name + '门店库存不足,请取消订单'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + + } else { + if (good.goods_num > store_count) { + + var content = gg.goods_name + '商品的库存不足,请取消订单'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } } - if (!p_ok){ - th.setData({paying:0});return false; + } + + //---如果是活动的时候--- + var prom = null, goodsinfo = good, th = this; + if (goodsinfo.prom_type == 1) { + await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + os.stoid + "/" + user_id + "/" + goodsinfo.prom_id, {}).then(res => { + if (res.data.code == 0) { + prom = res.data.data; + prom.price = prom.user_price; + } + }) + } + if (goodsinfo.prom_type == 2) { + await getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + good.goods_id + "/" + goodsinfo.prom_id, {}).then(res => { + if (res.data.code == 0) { + prom = res.data.data; + prom.price = prom.price; + } + }) + } + + if (goodsinfo.prom_type == 6 && !good.is_pd_normal) { + 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 (goodsinfo.prom_type == 4 && !good.is_integral_normal) { + await getApp().request.promiseGet("/api/weshop/integralbuy/pageIntegralBuyGoodsList?stype=1&stypeup=1&timetype=2", { + data: { store_id: os.stoid, goods_id: goodsinfo.goods_id,user_id: getApp().globalData.user_id, } + }).then(res => { + if (res.data.code == 0 && res.data.data && res.data.data.pageData) { + prom = res.data.data.pageData[0]; + } + }) + } + //----------如果有活动,并且在进行中,就不计算线下库存--------------- + if (prom) { + var now = ut.gettimestamp(); + if (prom.is_end == 1 && prom.end_time < now) { + var content = goodsinfo.goods_name + '商品的活动已经结束,请取消订单' + th.toast(content); + th.setData({ paying: 0 }); + return false; } - } + buyed_mum2 = promgoodsbuynum + good.goods_num; + if (buyed_mum2 > prom.buy_limit && prom.buy_limit > 0) { - //商品的普通购买 ,不要进行判断 - if((good.prom_type==1 || good.prom_type==2 || good.prom_type==6 || good.prom_type==4) && !good.is_gift && !good.is_collocation && !good.is_integral_normal && !good.is_pd_normal){ + var content = goodsinfo.goods_name + '购买数量超出商品活动限购,请取消订单' + th.toast(content); + th.setData({ paying: 0 }); + return false; + } - }else{ - if((gg.prom_type==1 || gg.prom_type==3 || gg.prom_type==5 || gg.prom_type==6 || gg.prom_type==4) - && !good.is_collocation && !good.is_gift && !good.is_integral_normal && !good.is_pd_normal) { - var prom=null; - //---如果是活动的时候--- - var prom=null,th=this; - if(gg.prom_type==1){ - await getApp().request.promiseGet("/api/ms/flash_sale/getNew/"+os.stoid+"/"+user_id+"/"+gg.prom_id,{ - }).then(res=>{ - if(res.data.code==0){ - prom=res.data.data; - prom.price=prom.user_price; - } - }) - } - - if (gg.prom_type == 2) { - await getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/"+ gg.goods_id + "/" + gg.prom_id, {}).then(res => { - if (res.data.code == 0) { - prom = res.data.data; - prom.price=prom.price; - } - }) - } - - - 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(gg.prom_type==4){ - await getApp().request.promiseGet("/api/weshop/integralbuy/pageIntegralBuyGoodsList?stype=1&stypeup=1&timetype=2",{ - data:{store_id:os.stoid,goods_id:gg.goods_id,user_id: getApp().globalData.user_id,} - }).then(res=>{ - if(res.data.code==0 && res.data.data && res.data.data.pageData && res.data.data.pageData.length){ - prom=res.data.data.pageData[0]; - } - }) - } - - if(prom){ - var t_now=ut.gettimestamp(); - if(prom.is_end==0 && prom.start_timet_now){ - - var content=gg.goods_name+'商品的活动发生了变化,请取消订单重新购买'; - th.toast(content); - th.setData({paying:0}); - return false; - } - } - }else{ - //不是赠品的时候 - if(!good.is_gift && good.prom_type!=3 && !good.is_collocation ){ - var t_ok=1; - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid+"/"+good.goods_id+"/0"+"/"+getApp().globalData.user_id, {}).then(res => { - if(res.data.code==0){ - var r_data=res.data.data; - //-- 参加了全局的优惠活动 -- - if(r_data.promGoodsLists){ - - var content=gg.goods_name+'商品的活动发生了变化,请取消订单重新购买'; - th.toast(content); - t_ok=0; - } - } - }) - if(!t_ok) { - th.setData({paying:0});return false; - } - } + // --看一下会员的秒杀价格是不是发生了变化,因为会员的身份发生了变化 + if (goodsinfo.prom_type == 1 && goodsinfo.goods_price != prom.price) { + var content = goodsinfo.goods_name + '秒杀活动的价格发生了变化'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } - //-- 如果有参加线下取价 -- - if(good.offline_cut>0) wlist+=encodeURIComponent(gg.erpwareid)+","; - } - //赠品和搭配购不判断商品金额 - var isok=1; - var card_field=th.data.card_field; // 会员等级 - //如果会员是等级会员,商品有等级价,且不是活动商品 - if(!good.is_gift && !good.is_collocation) { - if (card_field && gg[card_field] > 0) { - if (good.goods_price != gg[card_field] && good.offline_cut<=0) isok = 0; - if (good.goods_price >gg[card_field] && good.offline_cut>0) isok = 0; //如果线下价格比较贵,则不通过 - - } else { - if (good.goods_price != gg.shop_price && good.offline_cut<=0) isok = 0; - if (good.goods_price> gg.shop_price && good.offline_cut>0) isok = 0; //如果线下价格比较贵,则不通过 - } - var is_h=0; - if (!isok) { - - var content=gg.goods_name + '商品的价格发生了变化,请取消订单重新购买22'; - th.toast(content); - th.setData({paying:0}); - return false; - } - } - - //--如果是线下库存的时候-- - if(th.data.conf.sales_rules>=2 && !gg.whsle_id){ - var ob={}; - await th.check_down_line_next(gg,good.goods_num,order.pickup_id,function(obj){ - ob=obj; - }) - if(ob.code==-1){ - var content=gg.goods_name+'门店库存不足,请取消订单'; - th.toast(content); - th.setData({paying:0}); - return false; - } - - }else{ - if(good.goods_num>store_count){ - - var content=gg.goods_name+'商品的库存不足,请取消订单'; - th.toast(content); - th.setData({paying:0}); - return false; - } - - } - } - - console.log("------------------------------------"); - //---如果是活动的时候--- - var prom=null,goodsinfo=good,th=this; - if(goodsinfo.prom_type==1){ - await getApp().request.promiseGet("/api/ms/flash_sale/getNew/"+os.stoid+"/"+user_id+"/"+goodsinfo.prom_id,{ - }).then(res=>{ - if(res.data.code==0){ - prom=res.data.data; - prom.price=prom.user_price; - } - }) - } - - if (goodsinfo.prom_type == 2) { - await getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/"+ good.goods_id + "/" + goodsinfo.prom_id, {}).then(res => { - if (res.data.code == 0) { - prom = res.data.data; - prom.price=prom.price; - } - }) - } - - - if(goodsinfo.prom_type==6 && !good.is_pd_normal){ - 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(goodsinfo.prom_type==4 && !good.is_integral_normal){ - await getApp().request.promiseGet("/api/weshop/integralbuy/pageIntegralBuyGoodsList?stype=1&stypeup=1&timetype=2",{ - data:{store_id:os.stoid,goods_id:goodsinfo.goods_id,user_id: getApp().globalData.user_id,} - }).then(res=>{ - if(res.data.code==0 && res.data.data && res.data.data.pageData && res.data.data.pageData.length){ - prom=res.data.data.pageData[0]; - } - }) - } - - //----------如果有活动,并且在进行中,就不计算线下库存--------------- - if(prom){ - var now=ut.gettimestamp(); - if(prom.is_end==1 && prom.end_time prom.buy_limit && prom.buy_limit > 0) { - var content=goodsinfo.goods_name+'购买数量超出商品活动限购,请取消订单重新购买'; - th.toast(content); - th.setData({paying:0}); - return false; - } - //看一下会员的秒杀价格是不是发生了变化 - if(goodsinfo.prom_type==1 && goodsinfo.goods_price!=prom.price){ - var content=goodsinfo.goods_name+'秒杀活动的价格发生了变化'; - th.toast(content); - th.setData({paying:0}); - return false; - } - - //看一下会员的团购价格是不是发生了变化 - if(goodsinfo.prom_type==2 && goodsinfo.goods_price!=prom.price){ - var content=goodsinfo.goods_name+'秒杀活动的价格发生了变化'; - th.toast(content); - th.setData({paying:0}); - return false; - } + // --看一下会员的团购价格是不是发生了变化 + if (goodsinfo.prom_type == 2 && goodsinfo.goods_price != prom.price) { + var content = goodsinfo.goods_name + '秒杀活动的价格发生了变化'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + + if (goodsinfo.prom_type == 4) { + if (good.goods_num > prom.limitqty - prom.buy_num) { + + var content = goodsinfo.goods_name + '购买数量超出商品活动库存,请取消订单' + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + } else if (goodsinfo.prom_type == 1 || goodsinfo.prom_type == 2 || goodsinfo.prom_type == 6) { + if (order.add_time + 5 * 60 < ut.gettimestamp()) { + var content = gg.goods_name + '该订单已经超时无法支付,请取消订单'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + } - if(goodsinfo.prom_type==4){ - if (good.goods_num > prom.limitqty-prom.buy_num) { - - var content=goodsinfo.goods_name+'购买数量超出商品活动库存,请取消订单'; - th.toast(content); - th.setData({paying:0}); - return false; - } - }else if(goodsinfo.prom_type == 1 || goodsinfo.prom_type == 2 || goodsinfo.prom_type == 6 ) { - if(order.add_time+5*600){ - wlist=ut.sub_last(wlist); - var keyid=order.pickup_id; - var user_info=getApp().globalData.userInfo; - if(!keyid) { - th.setData({paying:0});return false; } - var offarr=null; - await getApp().request.promiseGet("/api/weshop/goods/listWarePrice", { - data:{ - VIPId:encodeURIComponent(user_info.erpvipid), - store_id:os.stoid, - PickupId:keyid, - WareIds:wlist}, - }, - ).then(res=>{ - if(res.data.code==0 && res.data.data && res.data.data.length>0){ - offarr=res.data.data; - } - }) - if(!offarr && offarr.length<=0 ){ - wx.showModal({ title: '获取线下取价失败',}); - } - var newarr=ut.convert_arr_key(offarr,'WareId'); - //-- 循环判断线下的价格 -- - for(var k in order_goods){ - var good=order_goods[k]; - //判断线下取价是不是一样 - if(newarr[good.erpwareid] && - parseFloat(newarr[good.erpwareid].WarePrice)!=parseFloat(good.goods_price)){ - - var content=good.goods_name + '商品的价格发生了变化,请取消订单重新购买'; - th.toast(content); - th.setData({paying:0}); - return false; - } - } - - } - /*--- - o.jumpToCart4({ - order_sn: this.data.order.order_sn, - order_amount: this.data.order.order_amount, - type: 1 //正常单 - }, 1);--*/ + //-- 预售和幸运购要单独计算 -- + if (goodsinfo.prom_type == 8) { + var presell_id= goodsinfo.prom_id; + //------获取预售主表,判断预售活动是不是到期不可以使用了---------- + var res= await getApp().request.promiseGet(`/api/weshop/marketing/marketingPresellForm/get/${os.stoid}/${presell_id}`, {}) + if (res.data.code == 0 && res.data.data) { + var act_data = res.data.data; + if (act_data.is_end) { + wx.showToast({ title: "活动已经结束", icon: 'none', duration: 3000 }); + return false; + } + if (act_data.isuse == 0) { + wx.showToast({ title: "活动未启用", icon: 'none', duration: 3000 }); + return false; + } + + var err_txt = "活动定金时间已经结束"; + var end_time = act_data.end_time; + if (act_data.presell_type == 1) { + err_txt = "活动时间已经结束"; + } + if (end_time < ut.gettimestamp()) { + wx.showToast({ title: err_txt, icon: 'none', duration: 3000 }); + return false; + } + + if (act_data.presell_type == 0) { + end_time = act_data.pay_enddate; + err_txt = "活动尾款时间已经结束"; + } + if (end_time < ut.gettimestamp()) { + wx.showToast({ title: err_txt, icon: 'none', duration: 3000 }); + return false; + } + } + + var all_pre_goods=null; + var userInfo = getApp().globalData.userInfo; + var pre_data = { store_id: os.stoid, is_end: 0, timetype: 1, isuse: 1, goods_id: goodsinfo.goods_id }; + if (userInfo) { + pre_data.user_id = userInfo.user_id; + } + var rs_pre= await getApp().request.promiseGet("/api/weshop/marketing/marketingPresellList/page", { + data: pre_data, + }) + if (rs_pre.data.code == 0 && rs_pre.data.data.pageData && rs_pre.data.data.pageData.length > 0) { + all_pre_goods = rs_pre.data.data.pageData; + } + + if(!all_pre_goods){ + wx.showToast({ title: "未找到活动商品", icon: 'none', duration: 3000 }); + return false; + } + var idx = all_pre_goods.findIndex(function (ele) { + return ele.goods_id == goodsinfo.goods_id; + }) + + if(idx==-1){ + wx.showToast({ title: "未找到活动商品", icon: 'none', duration: 3000 }); + return false; + } + var pre_arr = all_pre_goods[idx]; + var prom_buy_limit = pre_arr.vip_butyqty; + + if (goods.goods_num > th.data.pre_arr.presell_sumqty - th.data.pre_arr.buy_goodnum) { + wx.showToast({ title: "超出活动商品库存", icon: 'none', duration: 3000 }); + return false; + } + //--判断商品是否超出活动限购-- + if (promgoodsbuynum0 && prom_buy_limit > 0) { + wx.showToast({ title: "超出活动商品库存", icon: 'none', duration: 3000 }); + return false; + } + + } + //幸运购的时候 + if (goodsinfo.prom_type == 9 && !good.is_pt_normal) { + + var lk_act=null; + //获取单个活动成团信息 + var lk_rs= await getApp().request.promiseGet('/api/weshop/prom/luckyActivity/page', { + data: { + store_id: os.stoid, + is_end: 0, + timetype: 1, + id: goodsinfo.prom_id, + } + }); + + if(lk_rs && ut.ajax_ok(lk_rs)){ + lk_act= lk_rs.data.data.pageData[0]; + } + if(!lk_act){ + wx.showToast({ title: "未找到活动,或者活动已结束", icon: 'none', duration: 3000 }); + th.setData({ paying: 0 }); + return false; + } + // 检查幸运购活动商品库存 + var lk_redis=await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + os.stoid + "/9/" + goodsinfo.prom_id,{}); + if(!lk_redis || lk_redis 0) { + wlist = ut.sub_last(wlist); + var keyid = order.pickup_id; + var user_info = getApp().globalData.userInfo; + if (!keyid) { + th.setData({ paying: 0 }); return false; + } + var offarr = null; + await getApp().request.promiseGet("/api/weshop/goods/listWarePrice", { + data: { + VIPId: encodeURIComponent(user_info.erpvipid), + store_id: os.stoid, + PickupId: keyid, + WareIds: wlist + }, + }, + ).then(res => { + if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { + offarr = res.data.data; + } + }) + if (!offarr && offarr.length <= 0) { + th.toast('获取线下取价失败'); + } + var newarr = ut.convert_arr_key(offarr, 'WareId'); + //-- 循环判断线下的价格 -- + for (var k in order_goods) { + var good = order_goods[k]; + //判断线下取价是不是一样 + if (newarr[good.erpwareid] && + parseFloat(newarr[good.erpwareid].WarePrice) != parseFloat(good.goods_price)) { + + var content = good.goods_name + '商品的价格发生了变化,请取消订单重新购买'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + } + } + py.pay(this.data.order.order_sn, function() { th.setData({paying:0}); @@ -836,8 +1106,10 @@ Page({ th.setData({paying:0}); },os.stoid,1); - }, + + + checkTeam: function() { wx.navigateTo({ url: "/pages/team/team_detail/team_detail?foundId=" + this.data.order.orderTeamFound.found_id diff --git a/pages/user/order_list/order_list.js b/pages/user/order_list/order_list.js index 516a3fb..d8ff09d 100644 --- a/pages/user/order_list/order_list.js +++ b/pages/user/order_list/order_list.js @@ -611,7 +611,8 @@ Page({ } }); }, - //预存款判断 + + //-- 预存款判断 -- async vipadvancesum(keyid,pre_cut,pre_json){ let pre=JSON.parse(pre_json) let listform=[] @@ -676,7 +677,6 @@ Page({ if (res.data.code == 0) { knum = res.data.data; } - }); if (knum <= 0) { @@ -983,7 +983,7 @@ Page({ } else { - + var t_ok = 1; //-- 如果是普通购买的时候,此时计算的一定是商品的prom_type==0了, (组合购在普通购买的时候,就不判断了,因为组合购本身就可以普通购买)--- if(!good.is_collocation && !good.is_gift && good.is_pd_normal!=2 && gg.prom_type!=7 ){ @@ -1002,7 +1002,7 @@ Page({ if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; }) - var t_ok = 1; + if(good.prom_type != gg.prom_type && good.prom_id != gg.prom_id){ //如果商品有单独的活动的是偶 switch (gg.prom_type){ @@ -1396,6 +1396,7 @@ Page({ } } } + th.pay_next(e, o_index); },