Commit 379f101b10769786c92c6c4b93562ab6a23dfca8
Merge branch 'dev' into 'test'
Dev See merge request !980
Showing
2 changed files
with
176 additions
and
166 deletions
packageA/pages/goodsInfo/goodsInfo.js
| ... | ... | @@ -859,16 +859,16 @@ Page({ | 
| 859 | 859 | return false; | 
| 860 | 860 | }; | 
| 861 | 861 | |
| 862 | - | |
| 862 | + // 秒杀活动 | |
| 863 | 863 | if(this.data.prom_type == 1) { | 
| 864 | 864 | |
| 865 | 865 | this.data.sele_g.viplimited = this.data.sele_g.buy_limit; | 
| 866 | 866 | |
| 867 | - // 每人限购数 | |
| 867 | + // 每人最大限购数 | |
| 868 | 868 | th.data.sele_g.viplimited = th.data.sele_g.buy_limit; | 
| 869 | 869 | |
| 870 | 870 | //----获取用户活动购买数---- | 
| 871 | - // 已经付款的单数 | |
| 871 | + // 已经付款的单数,已经成功购买的数量 | |
| 872 | 872 | var gd_buy_num = 0; | 
| 873 | 873 | await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum?store_id="+os.stoid+"&user_id="+getApp().globalData.user_id+"&card_id="+th.data.options.goods_id+"&prom_type="+th.data.options.prom_type+"&prom_id="+th.data.options.prom_id, { | 
| 874 | 874 | }).then(res => { | 
| ... | ... | @@ -884,51 +884,64 @@ Page({ | 
| 884 | 884 | }; | 
| 885 | 885 | }); | 
| 886 | 886 | |
| 887 | - // 获取购物车同款数量 判断是否超库存 | |
| 888 | - var cartGoodsNum = 0; | |
| 889 | - await getApp().request.promiseGet("/api/weshop/cartService/page?store_id="+os.stoid+"&user_id="+oo.user_id+"&service_id="+th.data.data.id+"&pick_id="+th.data.sto_sele_id, | |
| 890 | - { }).then(res => { | |
| 891 | - if (res.data.data.pageData.length > 0) { | |
| 892 | - const tmpObj = res.data.data.pageData[0]; | |
| 893 | - cartGoodsNum = !tmpObj.goods_num ? 0 : tmpObj.goods_num; | |
| 894 | - } | |
| 895 | - | |
| 896 | - }); | |
| 897 | - | |
| 898 | - | |
| 899 | 887 | |
| 900 | 888 | // 有库存的情况下,走秒杀活动流程 否则 走正常购买流程 | 
| 901 | - // 没有库存,已抢光的情况下,走正常购买流程 | |
| 889 | + // 没有库存,已抢光的情况下,走正常购买流程 | |
| 902 | 890 | if(redisNum > 0 && !this.data.is_normal) { | 
| 903 | 891 | // 输入的数量 | 
| 904 | 892 | var t = th.data.goodsInputNum; | 
| 893 | + // 获取购物车同款数量 | |
| 894 | + var cartGoodsNum = 0; | |
| 895 | + | |
| 896 | + // 购物车 | |
| 897 | + if (action != "buy") { | |
| 898 | + await getApp().request.promiseGet("/api/weshop/cartService/page?store_id="+os.stoid+"&user_id="+oo.user_id+"&service_id="+th.data.data.id, | |
| 899 | + { }).then(res => { | |
| 900 | + if (res.data.data.pageData.length > 0) { | |
| 901 | + const tmpObj = res.data.data.pageData; | |
| 902 | + | |
| 903 | + tmpObj.forEach(v => { | |
| 904 | + cartGoodsNum += parseInt(v.goods_num); | |
| 905 | + }); | |
| 906 | + | |
| 907 | + } | |
| 908 | + | |
| 909 | + }); | |
| 910 | + | |
| 911 | + // 输入的数量 + 购物车同款商品的数量 | |
| 912 | + t = parseInt(t) + parseInt(cartGoodsNum); | |
| 913 | + } | |
| 914 | + | |
| 915 | + // 剩余购买数量 | |
| 916 | + let num = th.data.sele_g.viplimited - gd_buy_num; | |
| 917 | + num = num < 0 ? 0 : num; | |
| 905 | 918 | |
| 906 | 919 | if (t > redisNum) { | 
| 907 | 920 | wx.showToast({ | 
| 908 | - title: '超出活动库存' + redisNum, | |
| 921 | + title: '超出活动库存', | |
| 909 | 922 | icon: 'none' | 
| 910 | 923 | }); | 
| 911 | 924 | |
| 912 | 925 | // 开启限购 | 
| 913 | 926 | if (th.data.sele_g.viplimited > 0) { | 
| 914 | 927 | |
| 915 | - let num = th.data.sele_g.viplimited - gd_buy_num; | |
| 916 | - if (action !="buy") { | |
| 917 | - // 购物车 | |
| 918 | - if (num > redisNum) { | |
| 919 | - th.setData({goodsInputNum: redisNum}); | |
| 920 | - } else { | |
| 921 | - th.setData({goodsInputNum: num}); | |
| 928 | + if (action != "buy") { | |
| 929 | + if (t > num) { | |
| 930 | + th.setData({goodsInputNum: num - cartGoodsNum < 0 ? 0 : num - cartGoodsNum}); | |
| 922 | 931 | } | 
| 923 | - } else { | |
| 924 | - // 立即购买 | |
| 925 | - if (num > redisNum) { | |
| 926 | - th.setData({goodsInputNum: redisNum}); | |
| 927 | - } else { | |
| 928 | - th.setData({goodsInputNum: num}); | |
| 932 | + if (redisNum < num) { | |
| 933 | + th.setData({goodsInputNum: redisNum - cartGoodsNum < 0 ? 0 : redisNum - cartGoodsNum}); | |
| 929 | 934 | } | 
| 935 | + } else { | |
| 936 | + if (num > redisNum) { | |
| 937 | + th.setData({goodsInputNum: redisNum}); | |
| 938 | + } else { | |
| 939 | + th.setData({goodsInputNum: num}); | |
| 940 | + } | |
| 930 | 941 | } | 
| 931 | 942 | |
| 943 | + | |
| 944 | + | |
| 932 | 945 | |
| 933 | 946 | } else { | 
| 934 | 947 | th.setData({goodsInputNum: redisNum}); | 
| ... | ... | @@ -937,64 +950,27 @@ Page({ | 
| 937 | 950 | return false; | 
| 938 | 951 | } | 
| 939 | 952 | |
| 940 | - | |
| 941 | - | |
| 942 | - // 跳过<立即购买> 购物车 | |
| 943 | - if (action !="buy") { | |
| 944 | - | |
| 945 | - // 输入的数量 + 购物车同款商品的数量 | |
| 946 | - var maxNum = parseInt(t) + parseInt(cartGoodsNum); | |
| 947 | - // 是否开启个人限购 | |
| 948 | - if (th.data.sele_g.viplimited > 0) { | |
| 949 | - if (maxNum + gd_buy_num > th.data.sele_g.buy_limit) { | |
| 950 | - wx.showToast({ | |
| 951 | - title: '超出活动限购数量', | |
| 952 | - icon: 'none' | |
| 953 | - }); | |
| 954 | - | |
| 955 | - // 可购买数量 | |
| 956 | - let num = th.data.sele_g.viplimited - gd_buy_num - cartGoodsNum; | |
| 957 | - th.setData({goodsInputNum: num < 0 ? 0 : num}); | |
| 958 | - return false; | |
| 959 | - } | |
| 960 | - | |
| 961 | - } | |
| 962 | - | |
| 963 | - if (maxNum > redisNum) { | |
| 964 | - wx.showToast({ | |
| 965 | - title: '超出活动库存', | |
| 966 | - icon: 'none' | |
| 967 | - }); | |
| 968 | - // 可购买数量 | |
| 969 | - let num = redisNum - cartGoodsNum; | |
| 970 | - th.setData({goodsInputNum: num}); | |
| 971 | - return false; | |
| 972 | - } | |
| 973 | - | |
| 974 | - } else { | |
| 975 | - // 以下为立即购买 | |
| 976 | - // 是否开启个人限购 | |
| 953 | + // 以下小于等于库存 | |
| 954 | + if (t <= redisNum) { | |
| 977 | 955 | if (th.data.sele_g.viplimited > 0) { | 
| 978 | 956 | |
| 979 | - if (t + gd_buy_num > th.data.sele_g.viplimited) { | |
| 957 | + if (t > num) { | |
| 980 | 958 | wx.showToast({ | 
| 981 | 959 | title: '超出活动限购数量', | 
| 982 | 960 | icon: 'none' | 
| 983 | 961 | }); | 
| 984 | - | |
| 985 | - let num = th.data.sele_g.viplimited - gd_buy_num; | |
| 962 | + | |
| 986 | 963 | if (num > redisNum) { | 
| 987 | 964 | th.setData({goodsInputNum: redisNum}); | 
| 988 | 965 | } else { | 
| 989 | 966 | th.setData({goodsInputNum: num}); | 
| 990 | 967 | } | 
| 991 | 968 | return false; | 
| 992 | - } | |
| 993 | - | |
| 994 | - | |
| 995 | - }; | |
| 996 | - | |
| 969 | + } | |
| 970 | + | |
| 971 | + } | |
| 997 | 972 | } | 
| 973 | + | |
| 998 | 974 | |
| 999 | 975 | }; | 
| 1000 | 976 | }; | 
| ... | ... | @@ -1042,7 +1018,13 @@ Page({ | 
| 1042 | 1018 | // console.log('newd++++++++', newd); | 
| 1043 | 1019 | th.buyNow(newd); | 
| 1044 | 1020 | } else { // 购物车 | 
| 1045 | - | |
| 1021 | + | |
| 1022 | + // 购买数量大于0的才能加入到购物车 | |
| 1023 | + if (th.data.goodsInputNum <= 0) { | |
| 1024 | + th.closeSpecModal(); | |
| 1025 | + return false; | |
| 1026 | + } | |
| 1027 | + | |
| 1046 | 1028 | var newd = { | 
| 1047 | 1029 | service_id: th.data.data.id, | 
| 1048 | 1030 | service_sn:th.data.data.service_sn, | ... | ... | 
pages/cart/cart/cart.js
| ... | ... | @@ -1079,9 +1079,10 @@ Page({ | 
| 1079 | 1079 | if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) { | 
| 1080 | 1080 | var s = { | 
| 1081 | 1081 | goods_num: a, | 
| 1082 | - goods_id: e.goods_id, | |
| 1082 | + goods_id: e.service_id, | |
| 1083 | 1083 | id: e.id, | 
| 1084 | 1084 | store_id: oo.stoid, | 
| 1085 | + is_pd_normal: e.is_pd_normal | |
| 1085 | 1086 | }; | 
| 1086 | 1087 | if(e.prom_type) { | 
| 1087 | 1088 | s.prom_type = e.prom_type; | 
| ... | ... | @@ -1113,6 +1114,7 @@ Page({ | 
| 1113 | 1114 | id: a.id, | 
| 1114 | 1115 | goods_id: a.service_id, | 
| 1115 | 1116 | store_id: oo.stoid, | 
| 1117 | + is_pd_normal: a.is_pd_normal | |
| 1116 | 1118 | }; | 
| 1117 | 1119 | if(a.prom_type) { | 
| 1118 | 1120 | e.prom_type = a.prom_type; | 
| ... | ... | @@ -1150,9 +1152,11 @@ Page({ | 
| 1150 | 1152 | var e = { | 
| 1151 | 1153 | goods_num: a.goods_num - 1, | 
| 1152 | 1154 | id: a.id, | 
| 1153 | - goods_id: a.goods_id, | |
| 1154 | - store_id: oo.stoid | |
| 1155 | + goods_id: a.service_id, | |
| 1156 | + store_id: oo.stoid, | |
| 1157 | + is_pd_normal: a.is_pd_normal | |
| 1155 | 1158 | }; | 
| 1159 | + | |
| 1156 | 1160 | this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); | 
| 1157 | 1161 | } | 
| 1158 | 1162 | }, | 
| ... | ... | @@ -2025,102 +2029,127 @@ Page({ | 
| 2025 | 2029 | e.setData({ | 
| 2026 | 2030 | [txt]: t.goods_num | 
| 2027 | 2031 | }); | 
| 2028 | - | |
| 2029 | - | |
| 2030 | - if(t.prom_type == 1) { | |
| 2031 | - var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num"; | |
| 2032 | - var redis_num = 0; | |
| 2033 | - | |
| 2034 | - //------判断活动是否抢光----- | |
| 2035 | - await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + | |
| 2036 | - t.store_id + "/" + t.prom_type + "/" + t.prom_id, { | |
| 2037 | - 1: 1 | |
| 2038 | - }).then(res => { | |
| 2039 | - redis_num = res.data.data; | |
| 2040 | - }); | |
| 2041 | - | |
| 2042 | - // 检测库存 | |
| 2043 | - if(redis_num == 0) { | |
| 2044 | - wx.showToast({ | |
| 2045 | - title: '超出活动库存', | |
| 2046 | - icon: 'none', | |
| 2047 | - }); | |
| 2048 | - th.setData({[txt]: redis_num}); | |
| 2049 | - await e.doCheckAll(); | |
| 2050 | - return false; | |
| 2051 | - }; | |
| 2052 | 2032 | |
| 2053 | - var buylimit = 0 | |
| 2054 | - await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + t.store_id + "/" + getApp().globalData.user_id + "/" + t.prom_id, { | |
| 2033 | + // 1.秒杀活动 | |
| 2034 | + // 2.活动开始 | |
| 2035 | + if(t.prom_type == 1 && t.is_pd_normal == 0) { | |
| 2036 | + var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num"; | |
| 2037 | + var redis_num = 0; | |
| 2038 | + | |
| 2039 | + // 获取其他门店,同类商品的数量 | |
| 2040 | + var cartGoodsNum = 0; | |
| 2041 | + await getApp().request.promiseGet("/api/weshop/cartService/page?store_id="+t.store_id+"&user_id="+getApp().globalData.user_id+"&service_id="+t.goods_id, | |
| 2042 | + { }).then(res => { | |
| 2043 | + if (res.data.data.pageData.length > 0) { | |
| 2044 | + const tmpObj = res.data.data.pageData; | |
| 2045 | + tmpObj.forEach(v => { | |
| 2046 | + if (t.id != v.id) { | |
| 2047 | + cartGoodsNum += parseInt(v.goods_num); | |
| 2048 | + } | |
| 2055 | 2049 | |
| 2056 | - }).then(res => { | |
| 2057 | - if(res.data.code == 0) { | |
| 2058 | - | |
| 2059 | - th.data.sele_g = res.data.data; | |
| 2060 | - th.data.sele_g.viplimited = res.data.data.buy_limit; | |
| 2061 | - buylimit = !res.data.data.buy_limit ? 0 : res.data.data.buy_limit; | |
| 2062 | - }; | |
| 2063 | 2050 | }); | 
| 2051 | + } | |
| 2052 | + }); | |
| 2053 | + // 当前商品数量包括其他门店 | |
| 2054 | + var totalNum = 0 | |
| 2055 | + if (cartGoodsNum > 0) { | |
| 2056 | + totalNum = t.goods_num + cartGoodsNum; | |
| 2057 | + } else { | |
| 2058 | + totalNum = t.goods_num; | |
| 2059 | + } | |
| 2064 | 2060 | |
| 2065 | - //----获取用户活动购买数---- | |
| 2066 | - var gd_buy_num = 0; | |
| 2067 | - await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum?store_id="+t.store_id+"&user_id="+getApp().globalData.user_id+"&card_id="+t.card_id+"&prom_type="+t.prom_type+"&prom_id="+t.prom_id, { | |
| 2068 | - }).then(tt => { | |
| 2069 | - if (tt.data.code == 0) { | |
| 2070 | - gd_buy_num = !tt.data.data.promcardbuynum ? 0 : tt.data.data.promcardbuynum; | |
| 2071 | - th.setData({ | |
| 2072 | - promcardbuynum: !tt.data.data.promcardbuynum ? 0 : tt.data.data.promcardbuynum, | |
| 2073 | - cardbuynum: tt.data.data.cardbuynum, | |
| 2074 | - }); | |
| 2075 | - }; | |
| 2061 | + //获取当前商品活动库存 | |
| 2062 | + await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + | |
| 2063 | + t.store_id + "/" + t.prom_type + "/" + t.prom_id, { | |
| 2064 | + 1: 1 | |
| 2065 | + }).then(res => { | |
| 2066 | + redis_num = res.data.data; | |
| 2067 | + }); | |
| 2068 | + | |
| 2069 | + // 检测库存 | |
| 2070 | + if(redis_num == 0) { | |
| 2071 | + wx.showToast({ | |
| 2072 | + title: '超出活动库存', | |
| 2073 | + icon: 'none', | |
| 2074 | + }); | |
| 2075 | + th.setData({[txt]: redis_num}); | |
| 2076 | + await e.doCheckAll(); | |
| 2077 | + return false; | |
| 2078 | + }; | |
| 2079 | + | |
| 2080 | + // 限购数量 | |
| 2081 | + var buylimit = 0 | |
| 2082 | + await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + t.store_id + "/" + getApp().globalData.user_id + "/" + t.prom_id, { | |
| 2083 | + | |
| 2084 | + }).then(res => { | |
| 2085 | + if(res.data.code == 0) { | |
| 2086 | + th.data.sele_g = res.data.data; | |
| 2087 | + th.data.sele_g.viplimited = res.data.data.buy_limit; | |
| 2088 | + buylimit = !res.data.data.buy_limit ? 0 : res.data.data.buy_limit; | |
| 2089 | + }; | |
| 2090 | + }); | |
| 2091 | + | |
| 2092 | + //用户已经成功付款购买的数量 | |
| 2093 | + var gd_buy_num = 0; | |
| 2094 | + await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum?store_id="+t.store_id+"&user_id="+getApp().globalData.user_id+"&card_id="+t.card_id+"&prom_type="+t.prom_type+"&prom_id="+t.prom_id, { | |
| 2095 | + }).then(tt => { | |
| 2096 | + if (tt.data.code == 0) { | |
| 2097 | + gd_buy_num = !tt.data.data.promcardbuynum ? 0 : tt.data.data.promcardbuynum; | |
| 2098 | + th.setData({ | |
| 2099 | + promcardbuynum: !tt.data.data.promcardbuynum ? 0 : tt.data.data.promcardbuynum, | |
| 2100 | + cardbuynum: tt.data.data.cardbuynum, | |
| 2076 | 2101 | }); | 
| 2102 | + }; | |
| 2103 | + }); | |
| 2077 | 2104 | |
| 2105 | + // 剩余购买数 | |
| 2106 | + let num = buylimit - gd_buy_num; | |
| 2078 | 2107 | |
| 2079 | - if(t.goods_num > redis_num) { | |
| 2080 | - wx.showToast({ | |
| 2081 | - title: '超出活动库存', | |
| 2082 | - icon: 'none', | |
| 2083 | - }); | |
| 2084 | - // 开启限购 | |
| 2085 | - if (buylimit > 0) { | |
| 2086 | - let num = buylimit - gd_buy_num; | |
| 2087 | - if (num > redis_num) { | |
| 2088 | - th.setData({[txt]: redis_num}); | |
| 2089 | - } else { | |
| 2090 | - th.setData({[txt]: num}); | |
| 2091 | - } | |
| 2092 | - } else { | |
| 2093 | - th.setData({[txt]: redis_num}); | |
| 2094 | - } | |
| 2108 | + if(totalNum > redis_num) { | |
| 2109 | + wx.showToast({ | |
| 2110 | + title: '超出活动库存', | |
| 2111 | + icon: 'none', | |
| 2112 | + }); | |
| 2113 | + // 开启限购 | |
| 2114 | + if (buylimit > 0) { | |
| 2115 | + if (num > redis_num) { | |
| 2116 | + th.setData({[txt]: redis_num-cartGoodsNum}); | |
| 2117 | + } else { | |
| 2118 | + th.setData({[txt]: num - cartGoodsNum}); | |
| 2119 | + } | |
| 2120 | + } else { | |
| 2121 | + th.setData({[txt]: redis_num - cartGoodsNum}); | |
| 2122 | + } | |
| 2095 | 2123 | |
| 2096 | - await e.doCheckAll(); | |
| 2097 | - return false; | |
| 2098 | - }; | |
| 2124 | + await e.doCheckAll(); | |
| 2125 | + return false; | |
| 2126 | + }; | |
| 2099 | 2127 | |
| 2128 | + | |
| 2129 | + //--秒杀:判断商品是否超出活动限购-- | |
| 2130 | + if (buylimit > 0) { | |
| 2131 | + | |
| 2132 | + // 如果限购数量<=活动库存数量,增加数量时会先超过限购数量,此时应提示“超出活动限购数量” | |
| 2133 | + if(totalNum > num) { | |
| 2134 | + // 计算还可以购买的数量:库存量 - 已购数 | |
| 2135 | + wx.showToast({ | |
| 2136 | + title: '超出活动限购', | |
| 2137 | + icon: 'none', | |
| 2138 | + }); | |
| 2139 | + if (num <= 0) num = 1; | |
| 2140 | + th.setData({[txt]: num - cartGoodsNum}); | |
| 2141 | + await e.doCheckAll(); | |
| 2142 | + return false; | |
| 2143 | + }; | |
| 2100 | 2144 | |
| 2101 | - //--秒杀:判断商品是否超出活动限购-- | |
| 2102 | - if (buylimit > 0) { | |
| 2103 | - | |
| 2104 | - // 如果限购数量<=活动库存数量,增加数量时会先超过限购数量,此时应提示“超出活动限购数量” | |
| 2105 | - if(t.goods_num + gd_buy_num > buylimit) { | |
| 2106 | - // 计算还可以购买的数量:库存量 - 已购数 | |
| 2107 | - wx.showToast({ | |
| 2108 | - title: '超出活动限购', | |
| 2109 | - icon: 'none', | |
| 2110 | - }); | |
| 2111 | - let num = buylimit - gd_buy_num; | |
| 2112 | - if (num <= 0) num = 1; | |
| 2113 | - th.setData({[txt]: num}); | |
| 2114 | - await e.doCheckAll(); | |
| 2115 | - return false; | |
| 2116 | - }; | |
| 2117 | - | |
| 2118 | - } | |
| 2119 | - | |
| 2120 | - | |
| 2121 | - } | |
| 2122 | - await e.doCheckAll(); | |
| 2123 | - await e.update_cart_ser(t, pitem, item); | |
| 2145 | + } | |
| 2146 | + | |
| 2147 | + | |
| 2148 | + } | |
| 2149 | + | |
| 2150 | + | |
| 2151 | + await e.doCheckAll(); | |
| 2152 | + await e.update_cart_ser(t, pitem, item); | |
| 2124 | 2153 | |
| 2125 | 2154 | |
| 2126 | 2155 | }, | 
| ... | ... | @@ -2334,7 +2363,6 @@ Page({ | 
| 2334 | 2363 | update_cart_ser: function (t, pitem, item) { | 
| 2335 | 2364 | var e = this; | 
| 2336 | 2365 | |
| 2337 | - console.log('t===>', t); | |
| 2338 | 2366 | getApp().request.put("/api/weshop/cartService/update", { | 
| 2339 | 2367 | data: t, | 
| 2340 | 2368 | success: async function (ee) { | ... | ... |