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) { | ... | ... |