Commit 937fb8b4ea30c07e73f03d32e305b76616881d53

Authored by 泉州测试
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,9 +1150,10 @@ Page({
1150 var e = { 1150 var e = {
1151 goods_num: a.goods_num - 1, 1151 goods_num: a.goods_num - 1,
1152 id: a.id, 1152 id: a.id,
1153 - goods_id: a.goods_id, 1153 + goods_id: a.service_id,
1154 store_id: oo.stoid 1154 store_id: oo.stoid
1155 }; 1155 };
  1156 +
1156 this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); 1157 this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
1157 } 1158 }
1158 }, 1159 },
@@ -2025,13 +2026,36 @@ Page({ @@ -2025,13 +2026,36 @@ Page({
2025 e.setData({ 2026 e.setData({
2026 [txt]: t.goods_num 2027 [txt]: t.goods_num
2027 }); 2028 });
2028 -  
2029 - 2029 +
  2030 +
  2031 +
2030 if(t.prom_type == 1) { 2032 if(t.prom_type == 1) {
2031 var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num"; 2033 var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num";
2032 var redis_num = 0; 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 await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + 2059 await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" +
2036 t.store_id + "/" + t.prom_type + "/" + t.prom_id, { 2060 t.store_id + "/" + t.prom_type + "/" + t.prom_id, {
2037 1: 1 2061 1: 1
@@ -2050,19 +2074,19 @@ Page({ @@ -2050,19 +2074,19 @@ Page({
2050 return false; 2074 return false;
2051 }; 2075 };
2052 2076
  2077 + // 限购数量
2053 var buylimit = 0 2078 var buylimit = 0
2054 await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + t.store_id + "/" + getApp().globalData.user_id + "/" + t.prom_id, { 2079 await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + t.store_id + "/" + getApp().globalData.user_id + "/" + t.prom_id, {
2055 2080
2056 }).then(res => { 2081 }).then(res => {
2057 if(res.data.code == 0) { 2082 if(res.data.code == 0) {
2058 -  
2059 th.data.sele_g = res.data.data; 2083 th.data.sele_g = res.data.data;
2060 th.data.sele_g.viplimited = res.data.data.buy_limit; 2084 th.data.sele_g.viplimited = res.data.data.buy_limit;
2061 buylimit = !res.data.data.buy_limit ? 0 : res.data.data.buy_limit; 2085 buylimit = !res.data.data.buy_limit ? 0 : res.data.data.buy_limit;
2062 }; 2086 };
2063 }); 2087 });
2064 2088
2065 - //----获取用户活动购买数---- 2089 + //用户已经成功付款购买的数量
2066 var gd_buy_num = 0; 2090 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, { 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 }).then(tt => { 2092 }).then(tt => {
@@ -2075,22 +2099,23 @@ Page({ @@ -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 wx.showToast({ 2106 wx.showToast({
2081 title: '超出活动库存', 2107 title: '超出活动库存',
2082 icon: 'none', 2108 icon: 'none',
2083 }); 2109 });
2084 // 开启限购 2110 // 开启限购
2085 if (buylimit > 0) { 2111 if (buylimit > 0) {
2086 - let num = buylimit - gd_buy_num;  
2087 if (num > redis_num) { 2112 if (num > redis_num) {
2088 - th.setData({[txt]: redis_num}); 2113 + th.setData({[txt]: redis_num-cartGoodsNum});
2089 } else { 2114 } else {
2090 - th.setData({[txt]: num}); 2115 + th.setData({[txt]: num - cartGoodsNum});
2091 } 2116 }
2092 } else { 2117 } else {
2093 - th.setData({[txt]: redis_num}); 2118 + th.setData({[txt]: redis_num - cartGoodsNum});
2094 } 2119 }
2095 2120
2096 await e.doCheckAll(); 2121 await e.doCheckAll();
@@ -2102,15 +2127,14 @@ Page({ @@ -2102,15 +2127,14 @@ Page({
2102 if (buylimit > 0) { 2127 if (buylimit > 0) {
2103 2128
2104 // 如果限购数量<=活动库存数量,增加数量时会先超过限购数量,此时应提示“超出活动限购数量” 2129 // 如果限购数量<=活动库存数量,增加数量时会先超过限购数量,此时应提示“超出活动限购数量”
2105 - if(t.goods_num + gd_buy_num > buylimit) { 2130 + if(totalNum > num) {
2106 // 计算还可以购买的数量:库存量 - 已购数 2131 // 计算还可以购买的数量:库存量 - 已购数
2107 wx.showToast({ 2132 wx.showToast({
2108 title: '超出活动限购', 2133 title: '超出活动限购',
2109 icon: 'none', 2134 icon: 'none',
2110 }); 2135 });
2111 - let num = buylimit - gd_buy_num;  
2112 if (num <= 0) num = 1; 2136 if (num <= 0) num = 1;
2113 - th.setData({[txt]: num}); 2137 + th.setData({[txt]: num - cartGoodsNum});
2114 await e.doCheckAll(); 2138 await e.doCheckAll();
2115 return false; 2139 return false;
2116 }; 2140 };
@@ -2334,7 +2358,6 @@ Page({ @@ -2334,7 +2358,6 @@ Page({
2334 update_cart_ser: function (t, pitem, item) { 2358 update_cart_ser: function (t, pitem, item) {
2335 var e = this; 2359 var e = this;
2336 2360
2337 - console.log('t===>', t);  
2338 getApp().request.put("/api/weshop/cartService/update", { 2361 getApp().request.put("/api/weshop/cartService/update", {
2339 data: t, 2362 data: t,
2340 success: async function (ee) { 2363 success: async function (ee) {