From d22333ab4ae7a2f0bff86819def21bbf4ac31512 Mon Sep 17 00:00:00 2001 From: yvan.ni Date: Thu, 10 Aug 2023 09:28:56 +0800 Subject: [PATCH] 服务卡项的秒杀活动指定门店销售 --- packageA/pages/details_serviceCard/details_serviceCard.js | 19 ++++++++++++++++--- packageA/pages/goodsInfo/goodsInfo.js | 231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------- packageA/pages/goodsInfo/goodsInfo.wxml | 12 +++++++++--- pages/cart/cart/cart.js | 18 ++++++++++++++++++ pages/user/order_detail/order_detail.js | 2 +- pages/user/order_list/order_list.js | 18 ++++++++++++++++-- 6 files changed, 191 insertions(+), 109 deletions(-) diff --git a/packageA/pages/details_serviceCard/details_serviceCard.js b/packageA/pages/details_serviceCard/details_serviceCard.js index eb36139..a94af0f 100644 --- a/packageA/pages/details_serviceCard/details_serviceCard.js +++ b/packageA/pages/details_serviceCard/details_serviceCard.js @@ -605,7 +605,7 @@ Page({ let order_sn = this.data.details.order_sn; let order_id = this.data.details.order_id; let store_id = app.globalData.setting.stoid; - let user_id = os.user_id; + let user_id = getApp().globalData.user_id; let flag = true; // 如果是普通购买或单独购买,不用判断 @@ -648,7 +648,7 @@ Page({ var t_now = ut.gettimestamp(); - if (act_details.is_end == 0 && act_details.start_time < t_now && act_details.end_time > t_now) { + if (act_details.is_end == 1 || act_details.start_time > t_now || act_details.end_time < t_now) { wx.showModal({ title: '提示', content: '活动发生了变化,无法支付,请取消订单,重新购买!', @@ -658,10 +658,23 @@ Page({ return false; } + //指定门店的控制 + if (act_details.pick_up_lists) { + var idx0=act_details.pick_up_lists.findIndex(function (e){ + return e.pickup_id==it.pickup_id; + }) + if(idx0<0){ + getApp().confirmBox(it.service_name + "秒杀活动的门店不可售"); + th.setData({ paying: 0 }); + flag = false; + return false; + } + } + }; }); - if(act_details.buy_limit>0 && flag){ + if(act_details && act_details.buy_limit>0 && flag){ await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum", { data: { store_id: store_id, diff --git a/packageA/pages/goodsInfo/goodsInfo.js b/packageA/pages/goodsInfo/goodsInfo.js index 02760e7..564838e 100644 --- a/packageA/pages/goodsInfo/goodsInfo.js +++ b/packageA/pages/goodsInfo/goodsInfo.js @@ -625,26 +625,20 @@ Page({ //获取用户的默认门店 th.check_guide(()=>{ getApp().get_user_store(function(e) { - console.log('get_user_store'); - console.log("999999999"); - - if(!e) { th.data.fir_def_store={}; //赋值空对象 return false; } - console.log("000000"); - if(getApp().globalData.is_dj_pk) th.setData({has_def:1}) var ee=JSON.parse(JSON.stringify(e)); - - console.log(e); //--定时器推迟一下-- - setTimeout(function () { + var appd=getApp().globalData; + var w_time = setInterval(function() { + if (that.data.is_get_local_ok == 0) return false; if(!th.data.data){ return false; } @@ -654,77 +648,74 @@ Page({ ee.is_no_dis=1; } - var appd=getApp().globalData; - var w_time = setInterval(function() { - if (that.data.is_get_local_ok == 0) return false; - clearInterval(w_time); - var distance = null; - var e=JSON.parse(JSON.stringify(ee)); - - //如果有开启近距离的话,同时距离优不一样了 - if (that.data.lat != null) { - //如果经纬度有变化的话 - if(e && 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, - sto_sele_keyid:e.keyid, - }) - }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, is_pos: 1}, - }).then(res=>{ - if(ut.ajax_ok(res)){ - e=res.data.data.pageData[0]; - if (e){ - e.is_no_dis=ee.is_no_dis; - appd.pk_store=e; - that.data.fir_def_store=e; - - console.log('get_user_store--2'); - console.log(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, - sto_sele_keyid:e.keyid, - }) - } + clearInterval(w_time); + var distance = null; + var e=JSON.parse(JSON.stringify(ee)); + + //如果有开启近距离的话,同时距离优不一样了 + if (that.data.lat != null) { + //如果经纬度有变化的话 + if(e && 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, + sto_sele_keyid:e.keyid, + }) + }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, is_pos: 1}, + }).then(res=>{ + if(ut.ajax_ok(res)){ + e=res.data.data.pageData[0]; + if (e){ + e.is_no_dis=ee.is_no_dis; + appd.pk_store=e; + that.data.fir_def_store=e; + + console.log('get_user_store--2'); + console.log(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, + sto_sele_keyid:e.keyid, + }) } - }) - } - //e.distance = distance; - appd.lat=that.data.lat; - appd.lon=that.data.lon; + } + }) + } - } else { - if (e) { - - - console.log('get_user_store3---'); - console.log(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, - sto_sele_keyid:e.keyid, - }) - } + //e.distance = distance; + appd.lat=that.data.lat; + appd.lon=that.data.lon; + + } else { + if (e) { + + console.log('get_user_store3---'); + console.log(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, + sto_sele_keyid:e.keyid, + }) } - }, 500) - },1500) + } + }, 200) + }); }) @@ -808,7 +799,8 @@ Page({ }); th.data.enterAddressPage && (this.data.enterAddressPage = !1); - th.get_sto(); + //没有互动,就调用默认的门店 + if(!th.data.prom_type) th.get_sto(); }) @@ -1642,6 +1634,7 @@ Page({ var th = this,that=this; var timer_get = setInterval(function() { if (th.data.is_get_local_ok == 0) return false; + if (!th.data.fir_def_store) return false; var i = getApp().request; if (!th.data.data) return false; var dd= { @@ -1694,31 +1687,69 @@ Page({ } } - //如果有开启距离的功能,没有设置默认门店,要用最近的门店作为默认门店 - if(dd.lat && (!th.data.def_pick_store || JSON.stringify(th.data.def_pick_store)=='{}') && th.data.bconfig && th.data.bconfig.is_sort_storage){ - th.setData({ - def_pick_store:e.data.data.pageData[0], - sto_sele_name: e.data.data.pageData[0].pickup_name, - sto_sele_id: e.data.data.pageData[0].pickup_id, - sto_sele_distr: e.data.data.pageData[0].distr_type, - sto_sele_keyid: e.data.data.pageData[0].keyid, - }); - th.data.fir_def_store=e.data.data.pageData[0]; - } + //如果有秒杀的指定门店 + if(th.data.prom_type==1 && th.data.prom_act && th.data.prom_act.pick_up_lists && e.data.data.pageData.length){ + var pick_up_lists=th.data.prom_act.pick_up_lists; + for (var kq = 0; kq < e.data.data.pageData.length; kq++) { + var it0=e.data.data.pageData[kq]; + var idx0=pick_up_lists.findIndex(function (e){ + return e.pickup_id==it0.pickup_id; + }) + if (idx0<0) { + //删除 + e.data.data.pageData.splice(kq--, 1); + } + } + + if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store)!='{}'){ + //-- 查找一下门店有没有在 -- + var idx1=pick_up_lists.findIndex(function (e){ + return e.pickup_id==th.data.def_pick_store.pickup_id; + }) + if(idx1<0){ + //如果是秒杀的指定门店,就要设置秒杀的 + th.data.def_pick_store.is_no_dis_act=1; + that.setData({ + def_pick_store: th.data.def_pick_store + }) + } + } + + } + + //-- 如果门店过滤后,还会是数量 -- + if(e.data.data.pageData.length){ + //如果有开启距离的功能,没有设置默认门店,要用最近的门店作为默认门店 + if(dd.lat && (!th.data.def_pick_store || JSON.stringify(th.data.def_pick_store)=='{}') && th.data.bconfig && th.data.bconfig.is_sort_storage){ + th.setData({ + def_pick_store:e.data.data.pageData[0], + sto_sele_name: e.data.data.pageData[0].pickup_name, + sto_sele_id: e.data.data.pageData[0].pickup_id, + sto_sele_distr: e.data.data.pageData[0].distr_type, + sto_sele_keyid: e.data.data.pageData[0].keyid, + }); + th.data.fir_def_store=e.data.data.pageData[0]; + } + + //-- 如果有默认选择门店的时候,要把默认门店放在第一位,修改不要配送方式的判断 -- + if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store)!='{}'){ + for (var k = 0; k < e.data.data.pageData.length; k++) { + if (e.data.data.pageData[k].pickup_id == th.data.def_pick_store.pickup_id) { + e.data.data.pageData.splice(k, 1); //删除 + break; + } + } + e.data.data.pageData.splice(0, 0, th.data.def_pick_store); //添加 + } + + th.setData({all_pick_list:e.data.data.pageData}); + th.deal_pickup(e); + } + else{ + wx.hideLoading(); + } + - //-- 如果有默认选择门店的时候,要把默认门店放在第一位,修改不要配送方式的判断 -- - if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store)!='{}'){ - for (var k = 0; k < e.data.data.pageData.length; k++) { - if (e.data.data.pageData[k].pickup_id == th.data.def_pick_store.pickup_id) { - e.data.data.pageData.splice(k, 1); //删除 - break; - } - } - e.data.data.pageData.splice(0, 0, th.data.def_pick_store); //添加 - } - - th.setData({all_pick_list:e.data.data.pageData}); - th.deal_pickup(e); },800) } diff --git a/packageA/pages/goodsInfo/goodsInfo.wxml b/packageA/pages/goodsInfo/goodsInfo.wxml index 1962e91..cfbf176 100644 --- a/packageA/pages/goodsInfo/goodsInfo.wxml +++ b/packageA/pages/goodsInfo/goodsInfo.wxml @@ -172,6 +172,7 @@ (未找到门店) (未找到门店) + (该店不可售) (配送不匹配) @@ -686,6 +687,7 @@ (库存不足) (配送不匹配) + (该店不可售) (库存不足) @@ -709,6 +711,7 @@ 配送不匹配 + 该店不可售 @@ -831,9 +834,10 @@ {{item.pickup_name}} - + (配送不匹配) + (该店不可售) @@ -862,9 +866,10 @@ {{item.pickup_name}} - + (配送不匹配) + (该店不可售) @@ -894,9 +899,10 @@ {{item.pickup_name}} - + (配送不匹配) + (该店不可售) diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js index 1514781..006304b 100644 --- a/pages/cart/cart/cart.js +++ b/pages/cart/cart/cart.js @@ -997,6 +997,8 @@ Page({ }, 0, 1); continue; } + + item.prom=prom; //判断秒杀的限购 var msNum = 0 await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum", { @@ -3607,8 +3609,22 @@ Page({ store_id: oo.stoid } }); + + + //判断秒杀的指定门店 + if(i_arr[j].prom_type==1 && i_arr[j].prom && i_arr[j].prom.pick_up_lists && i_arr[j].selected){ + var idx0=i_arr[j].prom.pick_up_lists.findIndex(function (e){ + return e.pickup_id==i_arr[j].pick_id; + }) + if(idx0<0){ + getApp().confirmBox(i_arr[j].service_name + "秒杀活动的门店不可售"); + wx.hideLoading(); + return false; + } + } } } + //排除失效服务结算 this.data.invalidList.map(item => { if (item.selected && item.classType == 1) { @@ -3621,6 +3637,8 @@ Page({ }); } }) + + wx.hideLoading(); getApp().goto("/packageA/pages/cart2_ser/cart2_ser?is_cart=1"); } diff --git a/pages/user/order_detail/order_detail.js b/pages/user/order_detail/order_detail.js index 0bf2e6c..a1fbcd3 100644 --- a/pages/user/order_detail/order_detail.js +++ b/pages/user/order_detail/order_detail.js @@ -982,7 +982,7 @@ Page({ //指定门店的控制 if (goodsinfo.prom_type == 1 && prom.pick_up_lists) { var idx0=prom.pick_up_lists.findIndex(function (e){ - return e.pickup_id==order.pick_id; + return e.pickup_id==order.pickup_id; }) if(idx0<0){ getApp().confirmBox(goodsinfo.goods_name + "秒杀活动的门店不可售"); diff --git a/pages/user/order_list/order_list.js b/pages/user/order_list/order_list.js index 21b5fb2..95b35b4 100644 --- a/pages/user/order_list/order_list.js +++ b/pages/user/order_list/order_list.js @@ -1296,7 +1296,7 @@ Page({ //指定门店的控制 if (goodsinfo.prom_type == 1 && prom.pick_up_lists) { var idx0=prom.pick_up_lists.findIndex(function (e){ - return e.pickup_id==order.pick_id; + return e.pickup_id==order.pickup_id; }) if(idx0<0){ getApp().confirmBox(goodsinfo.goods_name + "秒杀活动的门店不可售"); @@ -2863,10 +2863,24 @@ Page({ return false; } + + //指定门店的控制 + if (act_details.pick_up_lists) { + var idx0=act_details.pick_up_lists.findIndex(function (e){ + return e.pickup_id==it.pickup_id; + }) + if(idx0<0){ + getApp().confirmBox(it.service_name + "秒杀活动的门店不可售"); + th.setData({ paying: 0 }); + flag = false; + return false; + } + } + } }); - if(act_details.buy_limit>0 && flag){ + if(act_details && act_details.buy_limit>0 && flag){ await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum", { data: { store_id: store_id, -- libgit2 0.21.4