Commit d22333ab4ae7a2f0bff86819def21bbf4ac31512

Authored by yvan.ni
1 parent 2c239812

服务卡项的秒杀活动指定门店销售

packageA/pages/details_serviceCard/details_serviceCard.js
... ... @@ -605,7 +605,7 @@ Page({
605 605 let order_sn = this.data.details.order_sn;
606 606 let order_id = this.data.details.order_id;
607 607 let store_id = app.globalData.setting.stoid;
608   - let user_id = os.user_id;
  608 + let user_id = getApp().globalData.user_id;
609 609  
610 610 let flag = true;
611 611 // 如果是普通购买或单独购买,不用判断
... ... @@ -648,7 +648,7 @@ Page({
648 648  
649 649  
650 650 var t_now = ut.gettimestamp();
651   - if (act_details.is_end == 0 && act_details.start_time < t_now && act_details.end_time > t_now) {
  651 + if (act_details.is_end == 1 || act_details.start_time > t_now || act_details.end_time < t_now) {
652 652 wx.showModal({
653 653 title: '提示',
654 654 content: '活动发生了变化,无法支付,请取消订单,重新购买!',
... ... @@ -658,10 +658,23 @@ Page({
658 658 return false;
659 659 }
660 660  
  661 + //指定门店的控制
  662 + if (act_details.pick_up_lists) {
  663 + var idx0=act_details.pick_up_lists.findIndex(function (e){
  664 + return e.pickup_id==it.pickup_id;
  665 + })
  666 + if(idx0<0){
  667 + getApp().confirmBox(it.service_name + "秒杀活动的门店不可售");
  668 + th.setData({ paying: 0 });
  669 + flag = false;
  670 + return false;
  671 + }
  672 + }
  673 +
661 674 };
662 675 });
663 676  
664   - if(act_details.buy_limit>0 && flag){
  677 + if(act_details && act_details.buy_limit>0 && flag){
665 678 await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum", {
666 679 data: {
667 680 store_id: store_id,
... ...
packageA/pages/goodsInfo/goodsInfo.js
... ... @@ -625,26 +625,20 @@ Page({
625 625 //获取用户的默认门店
626 626 th.check_guide(()=>{
627 627 getApp().get_user_store(function(e) {
628   - console.log('get_user_store');
629   - console.log("999999999");
630   -
631   -
632 628 if(!e) {
633 629 th.data.fir_def_store={}; //赋值空对象
634 630 return false;
635 631 }
636 632  
637   - console.log("000000");
638   -
639 633 if(getApp().globalData.is_dj_pk) th.setData({has_def:1})
640 634  
641 635 var ee=JSON.parse(JSON.stringify(e));
642   -
643   -
644 636 console.log(e);
645 637  
646 638 //--定时器推迟一下--
647   - setTimeout(function () {
  639 + var appd=getApp().globalData;
  640 + var w_time = setInterval(function() {
  641 + if (that.data.is_get_local_ok == 0) return false;
648 642 if(!th.data.data){
649 643 return false;
650 644 }
... ... @@ -654,77 +648,74 @@ Page({
654 648 ee.is_no_dis=1;
655 649 }
656 650  
657   - var appd=getApp().globalData;
658   - var w_time = setInterval(function() {
659   - if (that.data.is_get_local_ok == 0) return false;
660   - clearInterval(w_time);
661   - var distance = null;
662   - var e=JSON.parse(JSON.stringify(ee));
663   -
664   - //如果有开启近距离的话,同时距离优不一样了
665   - if (that.data.lat != null) {
666   - //如果经纬度有变化的话
667   - if(e && appd.lat==that.data.lat && appd.lon==that.data.lon && e.distance>0 ){
668   - that.data.fir_def_store=e;
669   - that.setData({
670   - def_pick_store: e,
671   - sto_sele_name: e.pickup_name,
672   - sto_sele_id: e.pickup_id,
673   - sto_sele_distr: e.distr_type,
674   - sto_sele_keyid:e.keyid,
675   - })
676   - }else{
677   - //要用接口是获取距离,js的计算不准
678   - getApp().request.promiseGet("/api/weshop/pickup/list",{
679   - data:{store_id:os.stoid,pickup_id:e.pickup_id,lat:th.data.lat,lon: th.data.lon, is_pos: 1},
680   - }).then(res=>{
681   - if(ut.ajax_ok(res)){
682   - e=res.data.data.pageData[0];
683   - if (e){
684   - e.is_no_dis=ee.is_no_dis;
685   - appd.pk_store=e;
686   - that.data.fir_def_store=e;
687   -
688   - console.log('get_user_store--2');
689   - console.log(e);
690   -
691   - that.setData({
692   - def_pick_store: e,
693   - sto_sele_name: e.pickup_name,
694   - sto_sele_id: e.pickup_id,
695   - sto_sele_distr: e.distr_type,
696   - sto_sele_keyid:e.keyid,
697   - })
698   - }
699 651  
  652 + clearInterval(w_time);
  653 + var distance = null;
  654 + var e=JSON.parse(JSON.stringify(ee));
  655 +
  656 + //如果有开启近距离的话,同时距离优不一样了
  657 + if (that.data.lat != null) {
  658 + //如果经纬度有变化的话
  659 + if(e && appd.lat==that.data.lat && appd.lon==that.data.lon && e.distance>0 ){
  660 + that.data.fir_def_store=e;
  661 + that.setData({
  662 + def_pick_store: e,
  663 + sto_sele_name: e.pickup_name,
  664 + sto_sele_id: e.pickup_id,
  665 + sto_sele_distr: e.distr_type,
  666 + sto_sele_keyid:e.keyid,
  667 + })
  668 + }else{
  669 + //要用接口是获取距离,js的计算不准
  670 + getApp().request.promiseGet("/api/weshop/pickup/list",{
  671 + data:{store_id:os.stoid,pickup_id:e.pickup_id,lat:th.data.lat,lon: th.data.lon, is_pos: 1},
  672 + }).then(res=>{
  673 + if(ut.ajax_ok(res)){
  674 + e=res.data.data.pageData[0];
  675 + if (e){
  676 + e.is_no_dis=ee.is_no_dis;
  677 + appd.pk_store=e;
  678 + that.data.fir_def_store=e;
  679 +
  680 + console.log('get_user_store--2');
  681 + console.log(e);
  682 +
  683 + that.setData({
  684 + def_pick_store: e,
  685 + sto_sele_name: e.pickup_name,
  686 + sto_sele_id: e.pickup_id,
  687 + sto_sele_distr: e.distr_type,
  688 + sto_sele_keyid:e.keyid,
  689 + })
700 690 }
701   - })
702   - }
703 691  
704   - //e.distance = distance;
705   - appd.lat=that.data.lat;
706   - appd.lon=that.data.lon;
  692 + }
  693 + })
  694 + }
707 695  
708   - } else {
709   - if (e) {
710   -
711   -
712   - console.log('get_user_store3---');
713   - console.log(e);
714   -
715   - e.distance = null;
716   - that.data.fir_def_store=e;
717   - that.setData({
718   - def_pick_store: e,
719   - sto_sele_name: e.pickup_name,
720   - sto_sele_id: e.pickup_id,
721   - sto_sele_distr: e.distr_type,
722   - sto_sele_keyid:e.keyid,
723   - })
724   - }
  696 + //e.distance = distance;
  697 + appd.lat=that.data.lat;
  698 + appd.lon=that.data.lon;
  699 +
  700 + } else {
  701 + if (e) {
  702 +
  703 + console.log('get_user_store3---');
  704 + console.log(e);
  705 +
  706 + e.distance = null;
  707 + that.data.fir_def_store=e;
  708 + that.setData({
  709 + def_pick_store: e,
  710 + sto_sele_name: e.pickup_name,
  711 + sto_sele_id: e.pickup_id,
  712 + sto_sele_distr: e.distr_type,
  713 + sto_sele_keyid:e.keyid,
  714 + })
725 715 }
726   - }, 500)
727   - },1500)
  716 + }
  717 + }, 200)
  718 +
728 719  
729 720 });
730 721 })
... ... @@ -808,7 +799,8 @@ Page({
808 799 });
809 800  
810 801 th.data.enterAddressPage && (this.data.enterAddressPage = !1);
811   - th.get_sto();
  802 + //没有互动,就调用默认的门店
  803 + if(!th.data.prom_type) th.get_sto();
812 804 })
813 805  
814 806  
... ... @@ -1642,6 +1634,7 @@ Page({
1642 1634 var th = this,that=this;
1643 1635 var timer_get = setInterval(function() {
1644 1636 if (th.data.is_get_local_ok == 0) return false;
  1637 + if (!th.data.fir_def_store) return false;
1645 1638 var i = getApp().request;
1646 1639 if (!th.data.data) return false;
1647 1640 var dd= {
... ... @@ -1694,31 +1687,69 @@ Page({
1694 1687 }
1695 1688 }
1696 1689  
1697   - //如果有开启距离的功能,没有设置默认门店,要用最近的门店作为默认门店
1698   - if(dd.lat && (!th.data.def_pick_store || JSON.stringify(th.data.def_pick_store)=='{}') && th.data.bconfig && th.data.bconfig.is_sort_storage){
1699   - th.setData({
1700   - def_pick_store:e.data.data.pageData[0],
1701   - sto_sele_name: e.data.data.pageData[0].pickup_name,
1702   - sto_sele_id: e.data.data.pageData[0].pickup_id,
1703   - sto_sele_distr: e.data.data.pageData[0].distr_type,
1704   - sto_sele_keyid: e.data.data.pageData[0].keyid,
1705   - });
1706   - th.data.fir_def_store=e.data.data.pageData[0];
1707   - }
  1690 + //如果有秒杀的指定门店
  1691 + if(th.data.prom_type==1 && th.data.prom_act && th.data.prom_act.pick_up_lists && e.data.data.pageData.length){
  1692 + var pick_up_lists=th.data.prom_act.pick_up_lists;
  1693 + for (var kq = 0; kq < e.data.data.pageData.length; kq++) {
  1694 + var it0=e.data.data.pageData[kq];
  1695 + var idx0=pick_up_lists.findIndex(function (e){
  1696 + return e.pickup_id==it0.pickup_id;
  1697 + })
  1698 + if (idx0<0) {
  1699 + //删除
  1700 + e.data.data.pageData.splice(kq--, 1);
  1701 + }
  1702 + }
  1703 +
  1704 + if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store)!='{}'){
  1705 + //-- 查找一下门店有没有在 --
  1706 + var idx1=pick_up_lists.findIndex(function (e){
  1707 + return e.pickup_id==th.data.def_pick_store.pickup_id;
  1708 + })
  1709 + if(idx1<0){
  1710 + //如果是秒杀的指定门店,就要设置秒杀的
  1711 + th.data.def_pick_store.is_no_dis_act=1;
  1712 + that.setData({
  1713 + def_pick_store: th.data.def_pick_store
  1714 + })
  1715 + }
  1716 + }
  1717 +
  1718 + }
  1719 +
  1720 + //-- 如果门店过滤后,还会是数量 --
  1721 + if(e.data.data.pageData.length){
  1722 + //如果有开启距离的功能,没有设置默认门店,要用最近的门店作为默认门店
  1723 + if(dd.lat && (!th.data.def_pick_store || JSON.stringify(th.data.def_pick_store)=='{}') && th.data.bconfig && th.data.bconfig.is_sort_storage){
  1724 + th.setData({
  1725 + def_pick_store:e.data.data.pageData[0],
  1726 + sto_sele_name: e.data.data.pageData[0].pickup_name,
  1727 + sto_sele_id: e.data.data.pageData[0].pickup_id,
  1728 + sto_sele_distr: e.data.data.pageData[0].distr_type,
  1729 + sto_sele_keyid: e.data.data.pageData[0].keyid,
  1730 + });
  1731 + th.data.fir_def_store=e.data.data.pageData[0];
  1732 + }
  1733 +
  1734 + //-- 如果有默认选择门店的时候,要把默认门店放在第一位,修改不要配送方式的判断 --
  1735 + if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store)!='{}'){
  1736 + for (var k = 0; k < e.data.data.pageData.length; k++) {
  1737 + if (e.data.data.pageData[k].pickup_id == th.data.def_pick_store.pickup_id) {
  1738 + e.data.data.pageData.splice(k, 1); //删除
  1739 + break;
  1740 + }
  1741 + }
  1742 + e.data.data.pageData.splice(0, 0, th.data.def_pick_store); //添加
  1743 + }
  1744 +
  1745 + th.setData({all_pick_list:e.data.data.pageData});
  1746 + th.deal_pickup(e);
  1747 + }
  1748 + else{
  1749 + wx.hideLoading();
  1750 + }
  1751 +
1708 1752  
1709   - //-- 如果有默认选择门店的时候,要把默认门店放在第一位,修改不要配送方式的判断 --
1710   - if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store)!='{}'){
1711   - for (var k = 0; k < e.data.data.pageData.length; k++) {
1712   - if (e.data.data.pageData[k].pickup_id == th.data.def_pick_store.pickup_id) {
1713   - e.data.data.pageData.splice(k, 1); //删除
1714   - break;
1715   - }
1716   - }
1717   - e.data.data.pageData.splice(0, 0, th.data.def_pick_store); //添加
1718   - }
1719   -
1720   - th.setData({all_pick_list:e.data.data.pageData});
1721   - th.deal_pickup(e);
1722 1753 },800)
1723 1754  
1724 1755 }
... ...
packageA/pages/goodsInfo/goodsInfo.wxml
... ... @@ -172,6 +172,7 @@
172 172 <view class="no_store" wx:if="{{only_pk && !only_pk.length}}">(未找到门店)</view>
173 173 <block wx:else>
174 174 <view class="no_store" wx:if="{{def_pickpu_list && !def_pickpu_list.length}}">(未找到门店)</view>
  175 + <text wx:elif="{{def_pick_store.is_no_dis_act}}" class="no_store">(该店不可售)</text>
175 176 <block wx:else>
176 177 <view class="no_store" wx:if="{{def_pick_store && def_pick_store.is_no_dis}}">(配送不匹配)</view>
177 178 </block>
... ... @@ -686,6 +687,7 @@
686 687 <view wx:if="{{def_pickpu_list && !def_pickpu_list.length}}">(库存不足)</view>
687 688 <block wx:else>
688 689 <view class="no_store" wx:if="{{def_pick_store.is_no_dis}}">(配送不匹配)</view>
  690 + <view class="no_store" wx:elif="{{def_pick_store.is_no_dis_act}}">(该店不可售)</view>
689 691 <view wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && !filters.is_virtual_gd(sele_g.is_virtual) && sales_rules==2 && prom_type==0}}">(库存不足)</view>
690 692 </block>
691 693 </block>
... ... @@ -709,6 +711,7 @@
709 711  
710 712 <view class="spec-cart-btns">
711 713 <view wx:if="{{def_pick_store && def_pick_store.is_no_dis}}" class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999;">配送不匹配</view>
  714 + <view wx:elif="{{def_pick_store && def_pick_store.is_no_dis_act}}" class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999;">该店不可售</view>
712 715 <block wx:else>
713 716  
714 717 <!-- 根本就找不到门店 -->
... ... @@ -831,9 +834,10 @@
831 834 <view class="flex-vertical-between butttem5">
832 835 <view class="flex xc-ash">
833 836 <view class="fs30 xc-black3 address_name">{{item.pickup_name}}
834   - <block wx:if="{{tool.is_no_dis(sele_g.storageId,item.keyid)}}">
  837 + <block wx:if="{{tool.is_no_dis(data.storageId,item.keyid)}}">
835 838 <text class="no_store">(配送不匹配)</text>
836 839 </block>
  840 + <text wx:elif="{{item.is_no_dis_act}}" class="no_store">(该店不可售)</text>
837 841  
838 842 </view>
839 843 </view>
... ... @@ -862,9 +866,10 @@
862 866 <view class="flex-vertical-between ">
863 867 <view class="flex xc-ash">
864 868 <view class="fs30 xc-black3 address_name">{{item.pickup_name}}
865   - <block wx:if="{{tool.is_no_dis(sele_g.storageId,item.keyid)}}">
  869 + <block wx:if="{{tool.is_no_dis(data.storageId,item.keyid)}}">
866 870 <text class="no_store">(配送不匹配)</text>
867 871 </block>
  872 + <text wx:elif="{{item.is_no_dis_act}}" class="no_store">(该店不可售)</text>
868 873 </view>
869 874 </view>
870 875 <view>
... ... @@ -894,9 +899,10 @@
894 899 <view class="flex-vertical-between ">
895 900 <view class="flex xc-ash">
896 901 <view class="fs28 xc-black3 address_name">{{item.pickup_name}}
897   - <block wx:if="{{tool.is_no_dis(sele_g.storageId,item.keyid)}}">
  902 + <block wx:if="{{tool.is_no_dis(data.storageId,item.keyid)}}">
898 903 <text class="no_store">(配送不匹配)</text>
899 904 </block>
  905 + <text wx:elif="{{item.is_no_dis_act}}" class="no_store">(该店不可售)</text>
900 906 </view>
901 907 </view>
902 908 <view>
... ...
pages/cart/cart/cart.js
... ... @@ -997,6 +997,8 @@ Page({
997 997 }, 0, 1);
998 998 continue;
999 999 }
  1000 +
  1001 + item.prom=prom;
1000 1002 //判断秒杀的限购
1001 1003 var msNum = 0
1002 1004 await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum", {
... ... @@ -3607,8 +3609,22 @@ Page({
3607 3609 store_id: oo.stoid
3608 3610 }
3609 3611 });
  3612 +
  3613 +
  3614 + //判断秒杀的指定门店
  3615 + if(i_arr[j].prom_type==1 && i_arr[j].prom && i_arr[j].prom.pick_up_lists && i_arr[j].selected){
  3616 + var idx0=i_arr[j].prom.pick_up_lists.findIndex(function (e){
  3617 + return e.pickup_id==i_arr[j].pick_id;
  3618 + })
  3619 + if(idx0<0){
  3620 + getApp().confirmBox(i_arr[j].service_name + "秒杀活动的门店不可售");
  3621 + wx.hideLoading();
  3622 + return false;
  3623 + }
  3624 + }
3610 3625 }
3611 3626 }
  3627 +
3612 3628 //排除失效服务结算
3613 3629 this.data.invalidList.map(item => {
3614 3630 if (item.selected && item.classType == 1) {
... ... @@ -3621,6 +3637,8 @@ Page({
3621 3637 });
3622 3638 }
3623 3639 })
  3640 +
  3641 +
3624 3642 wx.hideLoading();
3625 3643 getApp().goto("/packageA/pages/cart2_ser/cart2_ser?is_cart=1");
3626 3644 }
... ...
pages/user/order_detail/order_detail.js
... ... @@ -982,7 +982,7 @@ Page({
982 982 //指定门店的控制
983 983 if (goodsinfo.prom_type == 1 && prom.pick_up_lists) {
984 984 var idx0=prom.pick_up_lists.findIndex(function (e){
985   - return e.pickup_id==order.pick_id;
  985 + return e.pickup_id==order.pickup_id;
986 986 })
987 987 if(idx0<0){
988 988 getApp().confirmBox(goodsinfo.goods_name + "秒杀活动的门店不可售");
... ...
pages/user/order_list/order_list.js
... ... @@ -1296,7 +1296,7 @@ Page({
1296 1296 //指定门店的控制
1297 1297 if (goodsinfo.prom_type == 1 && prom.pick_up_lists) {
1298 1298 var idx0=prom.pick_up_lists.findIndex(function (e){
1299   - return e.pickup_id==order.pick_id;
  1299 + return e.pickup_id==order.pickup_id;
1300 1300 })
1301 1301 if(idx0<0){
1302 1302 getApp().confirmBox(goodsinfo.goods_name + "秒杀活动的门店不可售");
... ... @@ -2863,10 +2863,24 @@ Page({
2863 2863 return false;
2864 2864 }
2865 2865  
  2866 +
  2867 + //指定门店的控制
  2868 + if (act_details.pick_up_lists) {
  2869 + var idx0=act_details.pick_up_lists.findIndex(function (e){
  2870 + return e.pickup_id==it.pickup_id;
  2871 + })
  2872 + if(idx0<0){
  2873 + getApp().confirmBox(it.service_name + "秒杀活动的门店不可售");
  2874 + th.setData({ paying: 0 });
  2875 + flag = false;
  2876 + return false;
  2877 + }
  2878 + }
  2879 +
2866 2880 }
2867 2881 });
2868 2882  
2869   - if(act_details.buy_limit>0 && flag){
  2883 + if(act_details && act_details.buy_limit>0 && flag){
2870 2884 await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum", {
2871 2885 data: {
2872 2886 store_id: store_id,
... ...