Commit 937fb8b4ea30c07e73f03d32e305b76616881d53
1 parent
1ca5e1b6
fix购物车服务卡限购和库存
Showing
1 changed file
with
38 additions
and
15 deletions
pages/cart/cart/cart.js
... | ... | @@ -1150,9 +1150,10 @@ Page({ |
1150 | 1150 | var e = { |
1151 | 1151 | goods_num: a.goods_num - 1, |
1152 | 1152 | id: a.id, |
1153 | - goods_id: a.goods_id, | |
1153 | + goods_id: a.service_id, | |
1154 | 1154 | store_id: oo.stoid |
1155 | 1155 | }; |
1156 | + | |
1156 | 1157 | this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); |
1157 | 1158 | } |
1158 | 1159 | }, |
... | ... | @@ -2025,13 +2026,36 @@ Page({ |
2025 | 2026 | e.setData({ |
2026 | 2027 | [txt]: t.goods_num |
2027 | 2028 | }); |
2028 | - | |
2029 | - | |
2029 | + | |
2030 | + | |
2031 | + | |
2030 | 2032 | if(t.prom_type == 1) { |
2031 | 2033 | var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num"; |
2032 | 2034 | var redis_num = 0; |
2033 | 2035 | |
2034 | - //------判断活动是否抢光----- | |
2036 | + // 获取其他门店,同类商品的数量 | |
2037 | + var cartGoodsNum = 0; | |
2038 | + await getApp().request.promiseGet("/api/weshop/cartService/page?store_id="+t.store_id+"&user_id="+getApp().globalData.user_id+"&service_id="+t.goods_id, | |
2039 | + { }).then(res => { | |
2040 | + if (res.data.data.pageData.length > 0) { | |
2041 | + const tmpObj = res.data.data.pageData; | |
2042 | + tmpObj.forEach(v => { | |
2043 | + if (t.id != v.id) { | |
2044 | + cartGoodsNum += parseInt(v.goods_num); | |
2045 | + } | |
2046 | + | |
2047 | + }); | |
2048 | + } | |
2049 | + }); | |
2050 | + // 当前商品数量包括其他门店 | |
2051 | + var totalNum = 0 | |
2052 | + if (cartGoodsNum > 0) { | |
2053 | + totalNum = t.goods_num + cartGoodsNum; | |
2054 | + } else { | |
2055 | + totalNum = t.goods_num; | |
2056 | + } | |
2057 | + | |
2058 | + //获取当前商品活动库存 | |
2035 | 2059 | await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + |
2036 | 2060 | t.store_id + "/" + t.prom_type + "/" + t.prom_id, { |
2037 | 2061 | 1: 1 |
... | ... | @@ -2050,19 +2074,19 @@ Page({ |
2050 | 2074 | return false; |
2051 | 2075 | }; |
2052 | 2076 | |
2077 | + // 限购数量 | |
2053 | 2078 | var buylimit = 0 |
2054 | 2079 | await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + t.store_id + "/" + getApp().globalData.user_id + "/" + t.prom_id, { |
2055 | 2080 | |
2056 | 2081 | }).then(res => { |
2057 | 2082 | if(res.data.code == 0) { |
2058 | - | |
2059 | 2083 | th.data.sele_g = res.data.data; |
2060 | 2084 | th.data.sele_g.viplimited = res.data.data.buy_limit; |
2061 | 2085 | buylimit = !res.data.data.buy_limit ? 0 : res.data.data.buy_limit; |
2062 | 2086 | }; |
2063 | 2087 | }); |
2064 | 2088 | |
2065 | - //----获取用户活动购买数---- | |
2089 | + //用户已经成功付款购买的数量 | |
2066 | 2090 | var gd_buy_num = 0; |
2067 | 2091 | 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 | 2092 | }).then(tt => { |
... | ... | @@ -2075,22 +2099,23 @@ Page({ |
2075 | 2099 | }; |
2076 | 2100 | }); |
2077 | 2101 | |
2102 | + // 剩余购买数 | |
2103 | + let num = buylimit - gd_buy_num; | |
2078 | 2104 | |
2079 | - if(t.goods_num > redis_num) { | |
2105 | + if(totalNum > redis_num) { | |
2080 | 2106 | wx.showToast({ |
2081 | 2107 | title: '超出活动库存', |
2082 | 2108 | icon: 'none', |
2083 | 2109 | }); |
2084 | 2110 | // 开启限购 |
2085 | 2111 | if (buylimit > 0) { |
2086 | - let num = buylimit - gd_buy_num; | |
2087 | 2112 | if (num > redis_num) { |
2088 | - th.setData({[txt]: redis_num}); | |
2113 | + th.setData({[txt]: redis_num-cartGoodsNum}); | |
2089 | 2114 | } else { |
2090 | - th.setData({[txt]: num}); | |
2115 | + th.setData({[txt]: num - cartGoodsNum}); | |
2091 | 2116 | } |
2092 | 2117 | } else { |
2093 | - th.setData({[txt]: redis_num}); | |
2118 | + th.setData({[txt]: redis_num - cartGoodsNum}); | |
2094 | 2119 | } |
2095 | 2120 | |
2096 | 2121 | await e.doCheckAll(); |
... | ... | @@ -2102,15 +2127,14 @@ Page({ |
2102 | 2127 | if (buylimit > 0) { |
2103 | 2128 | |
2104 | 2129 | // 如果限购数量<=活动库存数量,增加数量时会先超过限购数量,此时应提示“超出活动限购数量” |
2105 | - if(t.goods_num + gd_buy_num > buylimit) { | |
2130 | + if(totalNum > num) { | |
2106 | 2131 | // 计算还可以购买的数量:库存量 - 已购数 |
2107 | 2132 | wx.showToast({ |
2108 | 2133 | title: '超出活动限购', |
2109 | 2134 | icon: 'none', |
2110 | 2135 | }); |
2111 | - let num = buylimit - gd_buy_num; | |
2112 | 2136 | if (num <= 0) num = 1; |
2113 | - th.setData({[txt]: num}); | |
2137 | + th.setData({[txt]: num - cartGoodsNum}); | |
2114 | 2138 | await e.doCheckAll(); |
2115 | 2139 | return false; |
2116 | 2140 | }; |
... | ... | @@ -2334,7 +2358,6 @@ Page({ |
2334 | 2358 | update_cart_ser: function (t, pitem, item) { |
2335 | 2359 | var e = this; |
2336 | 2360 | |
2337 | - console.log('t===>', t); | |
2338 | 2361 | getApp().request.put("/api/weshop/cartService/update", { |
2339 | 2362 | data: t, |
2340 | 2363 | success: async function (ee) { | ... | ... |