Commit 4eb2fe93999bcd23102a601158a3c1f9f18f3cb9

Authored by 后端研发-苏明海
2 parents 4cb9163f acc24ed9

Merge branch 'dev' into 'test'

Dev

See merge request !985
packageA/pages/details_serviceCard/details_serviceCard.js
@@ -228,7 +228,7 @@ Page({ @@ -228,7 +228,7 @@ Page({
228 228
229 229
230 // 再来一单 230 // 再来一单
231 - buy2(t) { 231 + buy2: async function(t) {
232 let details = this.data.details; 232 let details = this.data.details;
233 var th = this; 233 var th = this;
234 var ind = 1; // 1:加入购物车 234 var ind = 1; // 1:加入购物车
@@ -288,17 +288,57 @@ Page({ @@ -288,17 +288,57 @@ Page({
288 if(details.list[0].prom_type == 1) { 288 if(details.list[0].prom_type == 1) {
289 newd['prom_type'] = details.list[0].prom_type; 289 newd['prom_type'] = details.list[0].prom_type;
290 newd['prom_id'] = details.list[0].prom_id; 290 newd['prom_id'] = details.list[0].prom_id;
291 - // if(th.data.openSpecModal_flash_normal) {  
292 - // newd['money'] = th.data.data.shop_price;  
293 - // newd['is_pd_normal'] = 1;  
294 - // } else {  
295 - // newd['money'] = th.data.prom_price;  
296 - // };  
297 }; 291 };
298 - 292 +
  293 + var prom_id = details.list[0].prom_id > 0 ? details.list[0].prom_id : 0;
  294 + var card_id = details.list[0].card_id;
  295 + var prom_type = details.list[0].prom_type > 0 ? details.list[0].prom_type : 0;
  296 + var is_pd_normal = details.list[0].is_pd_normal;
  297 + // 库存
  298 + var redisNums = 0;
  299 + // 限购数
  300 + var limitNum = 0;
  301 + // 已购买数量
  302 + var boughtNum = 0;
  303 +
  304 + // 秒杀活动中购买
  305 + if (prom_type == 1 && !is_pd_normal) {
  306 +
  307 + // 获取已购数量
  308 + await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum?store_id="+os.stoid+"&user_id="+getApp().globalData.user_id+"&card_id="+card_id+"&prom_type="+prom_type+"&prom_id="+prom_id, {
  309 + }).then(res => {
  310 + boughtNum = !res.data.data.promcardbuynum ? 0 : res.data.data.promcardbuynum;
  311 + });
  312 +
  313 + // 获取库存
  314 + await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + os.stoid + "/1/" + prom_id, {}).then(res => {
  315 + if (res.data.code == 0) {
  316 + redisNums = !res.data.data ? 0 : res.data.data;
  317 + };
  318 + });
  319 +
  320 + // 获取限购数
  321 + var user_id = getApp().globalData.user_id;
  322 + await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + os.stoid + "/" + user_id + "/" + prom_id, {}).then(res => {
  323 + if (res.data.code == 0) {
  324 + limitNum = res.data.data.buy_limit;
  325 + }
  326 + });
  327 +
  328 + var snum = limitNum - boughtNum;
  329 + var snum = limitNum - boughtNum;
  330 + if (snum <= 0) {
  331 + wx.showModal({
  332 + title: '超出限购数量',
  333 + });
  334 + return false;
  335 + }
  336 +
  337 + }
  338 +
299 339
300 //----先看会员在购物车中是否加入了该商品----- 340 //----先看会员在购物车中是否加入了该商品-----
301 - app.request.get("/api/weshop/cartService/page", { 341 + app.request.get("/api/weshop/cartService/page", {
302 data: { 342 data: {
303 store_id: app.globalData.setting.stoid, 343 store_id: app.globalData.setting.stoid,
304 user_id: this.data.userInfo.user_id, 344 user_id: this.data.userInfo.user_id,
@@ -306,13 +346,30 @@ Page({ @@ -306,13 +346,30 @@ Page({
306 pick_id: details.list[0].pickup_id, 346 pick_id: details.list[0].pickup_id,
307 }, 347 },
308 success: function(re) { 348 success: function(re) {
309 -  
310 //-------如果购物车中有相关的数据--------- 349 //-------如果购物车中有相关的数据---------
311 if (re.data.data.total > 0) { 350 if (re.data.data.total > 0) {
312 var item = re.data.data.pageData[0]; 351 var item = re.data.data.pageData[0];
  352 + var totalNum = details.list[0].qty + item.goods_num;
  353 +
  354 + if (prom_type == 1 && !is_pd_normal) {
  355 + // 秒杀购物车购买 修正数量
  356 + var snum = limitNum - boughtNum;
  357 +
  358 + if (totalNum >= redisNums){
  359 + if (redisNums > snum) {
  360 + totalNum = snum;
  361 + } else {
  362 + totalNum = redisNums;
  363 + }
  364 + } else {
  365 + if (totalNum > snum)
  366 + totalNum = snum;
  367 + }
  368 + }
  369 +
313 var updata = { 370 var updata = {
314 id: item.id, 371 id: item.id,
315 - goods_num: details.list[0].qty + item.goods_num, 372 + goods_num: totalNum,
316 money: details.list[0].price, 373 money: details.list[0].price,
317 store_id: app.globalData.setting.stoid, 374 store_id: app.globalData.setting.stoid,
318 }; 375 };
@@ -321,6 +378,7 @@ Page({ @@ -321,6 +378,7 @@ Page({
321 updata['guide_id'] = getApp().globalData.guide_id; 378 updata['guide_id'] = getApp().globalData.guide_id;
322 updata['guide_type'] = 1; 379 updata['guide_type'] = 1;
323 } 380 }
  381 +
324 getApp().request.put("/api/weshop/cartService/update", { 382 getApp().request.put("/api/weshop/cartService/update", {
325 data: updata, 383 data: updata,
326 success: function(t) { 384 success: function(t) {
@@ -333,6 +391,8 @@ Page({ @@ -333,6 +391,8 @@ Page({
333 // th.closeSpecModal(); 391 // th.closeSpecModal();
334 } 392 }
335 }); 393 });
  394 +
  395 +
336 } else { 396 } else {
337 397
338 getApp().request.post("/api/weshop/cartService/save", { 398 getApp().request.post("/api/weshop/cartService/save", {
packageA/pages/goodsInfo/goodsInfo.js
@@ -447,7 +447,7 @@ Page({ @@ -447,7 +447,7 @@ Page({
447 sto_sele_name: e.pickup_name, 447 sto_sele_name: e.pickup_name,
448 sto_sele_id: e.pickup_id, 448 sto_sele_id: e.pickup_id,
449 sto_sele_distr: e.distr_type, 449 sto_sele_distr: e.distr_type,
450 - sto_sele_keyid:e.keyid, 450 + sto_sele_keyid:e.keyid,
451 }) 451 })
452 } 452 }
453 } 453 }
@@ -562,6 +562,9 @@ Page({ @@ -562,6 +562,9 @@ Page({
562 // <---- 秒杀 562 // <---- 秒杀
563 563
564 564
  565 +
  566 +
  567 +
565 568
566 569
567 570
@@ -826,21 +829,7 @@ Page({ @@ -826,21 +829,7 @@ Page({
826 }); 829 });
827 }, 830 },
828 831
829 - //获取redis中的数量  
830 - async getactLen(func) {  
831 - var r_num = 0,  
832 - prom_type = this.data.prom_type,  
833 - prom_id = this.data.prom_id;  
834 - await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + os.stoid + "/" + prom_type + "/" + prom_id, {  
835 - 1: 1  
836 - }).then(res => {  
837 - var em = res;  
838 - if (em.data.code == 0) {  
839 - r_num = em.data.data;  
840 - }  
841 - })  
842 - func(r_num);  
843 - }, 832 +
844 833
845 //------------加入购物车-------------- 834 //------------加入购物车--------------
846 addCart: async function(t) { 835 addCart: async function(t) {
@@ -848,8 +837,7 @@ Page({ @@ -848,8 +837,7 @@ Page({
848 var ind = t.currentTarget.dataset.openSpecModal_ind; 837 var ind = t.currentTarget.dataset.openSpecModal_ind;
849 var action= t.currentTarget.dataset.action; 838 var action= t.currentTarget.dataset.action;
850 if(!ind) ind = t.currentTarget.dataset.openspecmodal_ind; 839 if(!ind) ind = t.currentTarget.dataset.openspecmodal_ind;
851 - // 活动ID  
852 - var prom_id = th.data.prom_id; 840 +
853 th.setData({ 841 th.setData({
854 open_ind_store: ind 842 open_ind_store: ind
855 }); 843 });
@@ -859,127 +847,96 @@ Page({ @@ -859,127 +847,96 @@ Page({
859 return false; 847 return false;
860 }; 848 };
861 849
862 - // 秒杀活动  
863 - if(this.data.prom_type == 1) {  
864 -  
865 - this.data.sele_g.viplimited = this.data.sele_g.buy_limit;  
866 -  
867 - // 每人最大限购数  
868 - th.data.sele_g.viplimited = th.data.sele_g.buy_limit;  
869 -  
870 - //----获取用户活动购买数----  
871 - // 已经付款的单数,已经成功购买的数量  
872 - var gd_buy_num = 0;  
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 - }).then(res => {  
875 - gd_buy_num = !res.data.data.promcardbuynum ? 0 : res.data.data.promcardbuynum;  
876 - });  
877 -  
878 -  
879 - // 检查redis库存量  
880 - var redisNum = 0;  
881 - await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + os.stoid + "/1/" + prom_id, {}).then(res => {  
882 - if (res.data.code == 0) {  
883 - redisNum = !res.data.data ? 0 : res.data.data;  
884 - };  
885 - });  
886 -  
887 -  
888 - // 有库存的情况下,走秒杀活动流程 否则 走正常购买流程  
889 - // 没有库存,已抢光的情况下,走正常购买流程  
890 - if(redisNum > 0 && !this.data.is_normal) {  
891 - // 输入的数量  
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 - }); 850 + // 库存
  851 + var redisNums = 0;
  852 + // 限购数
  853 + var limitNum = 0;
  854 + // 已购买数量
  855 + var boughtNum = 0;
  856 +
  857 + // 秒杀活动
  858 + if(this.data.prom_type == 1) {
  859 + // 如果是秒杀活动下的单独购买,is_normal为1
  860 + if(this.data.openSpecModal_flash_normal) this.data.is_normal = 1;
  861 +
  862 + if(!this.data.is_normal) {// 秒杀购买
  863 +
  864 + // 获取redis当前可以购买的数量
  865 + // 如果数量为0,设置和显示已抢光
  866 + // 否则,进一步判断是否超出限购或超出库存
  867 + await this.getactLen().then(async function(res) {
  868 + redisNums = res;
  869 + let curNum = th.data.goodsInputNum;
  870 + // res: redis可购买数量
  871 + console.log('当前可以购买的数量:', res);
  872 + if(res <= 0) {
  873 + // 可购买数量<=0, 设置和显示已抢光
  874 + th.setData({
  875 + prom_r_null: 1,
  876 + });
  877 + wx.showModal({
  878 + title: '超出活动库存',
  879 + });
  880 + return false;
  881 + } else {
  882 + // 可购买数量>0
  883 + // 计算自己还可以购买的数量
  884 + // 自己还可购买的数量c = 每人活动限购数量a - 自己已经购买的数量b
  885 + // 如果限购数量a>redis可购买数量d,当增加数量t>d, 提示超出库存
  886 + // 如果限购数量a<=redis可购买数量d, 当增加数量t>a,提示超出限购
  887 + let actInfo = th.data.sele_g;
  888 + await th.get_buy_num2().then(function (data) {
  889 + let limited = actInfo.buy_limit; // 限购数量a
  890 + let promcardbuynum = data.data.data.promcardbuynum;
  891 + let buyedNum = promcardbuynum; // 自己已经购买的数量b
  892 + let canBuyNum = limited - buyedNum; // 自己还可购买的数量c
  893 + limitNum = limited;
  894 + boughtNum = buyedNum;
  895 +
  896 + if(canBuyNum <= 0) {
  897 + canBuyNum = 0;
  898 + };
910 899
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;  
918 -  
919 - if (t > redisNum) {  
920 - wx.showToast({ 900 + if(limited > res) {
  901 + if(curNum > res) { // t当前增减的数量
  902 + wx.showModal({
921 title: '超出活动库存', 903 title: '超出活动库存',
922 - icon: 'none'  
923 - });  
924 -  
925 - // 开启限购  
926 - if (th.data.sele_g.viplimited > 0) {  
927 -  
928 - if (action != "buy") {  
929 - if (t > num) {  
930 - th.setData({goodsInputNum: num - cartGoodsNum < 0 ? 0 : num - cartGoodsNum});  
931 - }  
932 - if (redisNum < num) {  
933 - th.setData({goodsInputNum: redisNum - cartGoodsNum < 0 ? 0 : redisNum - cartGoodsNum});  
934 - }  
935 - } else {  
936 - if (num > redisNum) {  
937 - th.setData({goodsInputNum: redisNum});  
938 - } else {  
939 - th.setData({goodsInputNum: num});  
940 - }  
941 - }  
942 -  
943 -  
944 -  
945 -  
946 - } else {  
947 - th.setData({goodsInputNum: redisNum});  
948 - }  
949 -  
950 - return false;  
951 - }  
952 -  
953 - // 以下小于等于库存  
954 - if (t <= redisNum) {  
955 - if (th.data.sele_g.viplimited > 0) {  
956 -  
957 - if (t > num) {  
958 - wx.showToast({  
959 - title: '超出活动限购数量',  
960 - icon: 'none'  
961 - });  
962 -  
963 - if (num > redisNum) {  
964 - th.setData({goodsInputNum: redisNum});  
965 - } else {  
966 - th.setData({goodsInputNum: num});  
967 - }  
968 - return false;  
969 - }  
970 -  
971 - }  
972 - } 904 + });
  905 + th.setData({
  906 + goodsInputNum: res,
  907 + });
  908 + return false;
  909 + };
  910 + };
973 911
974 - 912 + if(limited <= res) {
  913 + if(curNum > limited) {
  914 + wx.showModal({
  915 + title: '超出限购数量',
  916 + });
  917 + th.setData({
  918 + goodsInputNum: canBuyNum,
  919 + });
  920 + return false;
  921 + };
  922 + };
  923 +
  924 +
  925 + });
  926 +
  927 +
  928 +
975 }; 929 };
  930 + });
  931 +
976 }; 932 };
977 933
978 934
  935 + };
979 936
980 937
981 938
982 - if(action=="buy"){ // 立即购买 939 + if(action=="buy"){
983 //--------------此时操作的数据------------ 940 //--------------此时操作的数据------------
984 var newd = { 941 var newd = {
985 id: th.data.data.id, 942 id: th.data.data.id,
@@ -1001,30 +958,11 @@ Page({ @@ -1001,30 +958,11 @@ Page({
1001 newd['prom_type'] = 0; 958 newd['prom_type'] = 0;
1002 newd['prom_price'] = this.data.data.shop_price; 959 newd['prom_price'] = this.data.data.shop_price;
1003 }; 960 };
1004 -  
1005 - // 判断是否为0库存的情况  
1006 - var tmpRedisNum = 0;  
1007 - // 检查redis库存量  
1008 - await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + os.stoid + "/1/" + prom_id, {}).then(res => {  
1009 - if (res.data.code == 0) {  
1010 - tmpRedisNum = res.data.data;  
1011 - };  
1012 - });  
1013 - if(this.data.prom_type == 1 && tmpRedisNum == 0) {  
1014 - newd['prom_type'] = 0;  
1015 - newd['prom_price'] = this.data.data.shop_price;  
1016 - };  
1017 961
1018 // console.log('newd++++++++', newd); 962 // console.log('newd++++++++', newd);
1019 th.buyNow(newd); 963 th.buyNow(newd);
1020 - } else { // 购物车  
1021 -  
1022 - // 购买数量大于0的才能加入到购物车  
1023 - if (th.data.goodsInputNum <= 0) {  
1024 - th.closeSpecModal();  
1025 - return false;  
1026 - }  
1027 - 964 + } else {
  965 +
1028 var newd = { 966 var newd = {
1029 service_id: th.data.data.id, 967 service_id: th.data.data.id,
1030 service_sn:th.data.data.service_sn, 968 service_sn:th.data.data.service_sn,
@@ -1050,19 +988,7 @@ Page({ @@ -1050,19 +988,7 @@ Page({
1050 newd['money'] = th.data.prom_price; 988 newd['money'] = th.data.prom_price;
1051 }; 989 };
1052 }; 990 };
1053 -  
1054 - // 判断是否为0库存的情况  
1055 - var tmpRedisNum = 0;  
1056 - // 检查redis库存量  
1057 - await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + os.stoid + "/1/" + prom_id, {}).then(res => {  
1058 - if (res.data.code == 0) {  
1059 - tmpRedisNum = res.data.data;  
1060 - };  
1061 - });  
1062 - if(th.data.options.prom_type == 1 && tmpRedisNum == 0) {  
1063 - newd['prom_type'] = 0;  
1064 - newd['money'] = th.data.data.shop_price;  
1065 - }; 991 +
1066 992
1067 //----先看会员在购物车中是否加入了该商品----- 993 //----先看会员在购物车中是否加入了该商品-----
1068 getApp().request.get("/api/weshop/cartService/page", { 994 getApp().request.get("/api/weshop/cartService/page", {
@@ -1076,10 +1002,33 @@ Page({ @@ -1076,10 +1002,33 @@ Page({
1076 1002
1077 //-------如果购物车中有相关的数据--------- 1003 //-------如果购物车中有相关的数据---------
1078 if (re.data.data.total > 0) { 1004 if (re.data.data.total > 0) {
1079 - var item = re.data.data.pageData[0]; 1005 + var item = re.data.data.pageData[0];
  1006 + var totalNum = th.data.goodsInputNum + item.goods_num;
  1007 +
  1008 + // 秒杀购物车购买 修正数量
  1009 + if (th.data.prom_type == 1 && !th.data.is_normal) {
  1010 + var snum = limitNum - boughtNum;
  1011 + if (snum <= 0) {
  1012 + wx.showModal({
  1013 + title: '超出限购数量',
  1014 + });
  1015 + return false;
  1016 + }
  1017 + if (totalNum >= redisNums){
  1018 + if (redisNums > snum) {
  1019 + totalNum = snum;
  1020 + } else {
  1021 + totalNum = redisNums;
  1022 + }
  1023 + } else {
  1024 + if (totalNum > snum)
  1025 + totalNum = snum;
  1026 + }
  1027 + }
  1028 +
1080 var updata = { 1029 var updata = {
1081 id: item.id, 1030 id: item.id,
1082 - goods_num: th.data.goodsInputNum + item.goods_num, 1031 + goods_num: totalNum,
1083 money: th.data.data.shop_price, 1032 money: th.data.data.shop_price,
1084 store_id: os.stoid, 1033 store_id: os.stoid,
1085 }; 1034 };
@@ -1106,7 +1055,7 @@ Page({ @@ -1106,7 +1055,7 @@ Page({
1106 getApp().my_warnning('加入购物车成功', 1, th, 450); 1055 getApp().my_warnning('加入购物车成功', 1, th, 450);
1107 var c_num = th.data.cartGoodsNum + th.data.goodsInputNum; 1056 var c_num = th.data.cartGoodsNum + th.data.goodsInputNum;
1108 th.setData({ 1057 th.setData({
1109 - cartGoodsNum: c_num 1058 + cartGoodsNum: totalNum
1110 }); 1059 });
1111 th.closeSpecModal(); 1060 th.closeSpecModal();
1112 } 1061 }
@@ -1159,142 +1108,121 @@ Page({ @@ -1159,142 +1108,121 @@ Page({
1159 }, 1108 },
1160 1109
1161 //------检查数量是不是超出限购------ 1110 //------检查数量是不是超出限购------
1162 - checkCartNum: function(t) { 1111 + checkCartNum: async function(t) {
  1112 + var th = this;
1163 1113
1164 - if(this.data.prom_type != 1) {  
1165 - this.setData({goodsInputNum: t});  
1166 - return false; 1114 + if(!th.data.def_pick_store) {
  1115 + wx.showModal({title: '请选择门店',});
  1116 + return false;
1167 }; 1117 };
1168 1118
1169 - var th = this;  
1170 -  
1171 - // if(this.data.prom_act.is_shop_buy && this.data.options.prom_type != 1) {  
1172 -  
1173 - if(t == 0) return false;  
1174 - // th.setData({goodsInputNum:t}); 1119 + // 非秒杀活动
  1120 + if(this.data.prom_type != 1) {
  1121 + this.setData({
  1122 + goodsInputNum: t,
  1123 + });
  1124 + };
1175 1125
1176 - // if(this.data.options.prom_type == 1 && !this.data.openSpecModal_flash_normal) {  
1177 -  
1178 - this.get_buy_num(this.data.sele_g, async function () {  
1179 - th.data.sele_g.viplimited = th.data.sele_g.buy_limit;  
1180 -  
1181 - //--判断商品是否超出限购--  
1182 - // if (th.data.g_buy_num != null && th.data.sele_g.viplimited > 0) {  
1183 - // if(!th.data.prom_act.is_shop_buy) {  
1184 -  
1185 - // if (th.data.sele_g.viplimited > 0) {  
1186 - // var gd_buy_num = th.data.sele_g.buy_num;  
1187 -  
1188 - // if (t + gd_buy_num> th.data.sele_g.viplimited) {  
1189 - // wx.showModal({  
1190 - // title: '超出商品限购',  
1191 - // });  
1192 -  
1193 - // var num = th.data.sele_g.viplimited - gd_buy_num;  
1194 - // if (num <= 0) num = 1;  
1195 - // th.setData({goodsInputNum: num})  
1196 - // return false;  
1197 - // }  
1198 - // };  
1199 -  
1200 -  
1201 - // 单独购买  
1202 - if(th.data.openSpecModal_flash_normal) th.data.is_normal = 1;  
1203 -  
1204 - // 秒杀:判断活动是否抢光  
1205 - if (th.data.sele_g.prom_type == 1 && !th.data.is_normal) {  
1206 - var redis_num = 0;  
1207 - //------判断活动是否抢光-----  
1208 - await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" +  
1209 - os.stoid + "/" + th.data.sele_g.prom_type + "/" + th.data.sele_g.prom_id, {  
1210 - 1: 1  
1211 - }).then(res => {  
1212 - redis_num = res.data.data; 1126 + // 秒杀活动
  1127 + if(this.data.prom_type == 1) {
  1128 + // 如果是秒杀活动下的单独购买,is_normal为1
  1129 + if(this.data.openSpecModal_flash_normal) this.data.is_normal = 1;
  1130 +
  1131 + if(this.data.is_normal) {// 单独购买
  1132 + this.setData({
  1133 + goodsInputNum: t,
  1134 + });
  1135 + } else {// 秒杀购买
  1136 +
  1137 + // 获取redis当前可以购买的数量
  1138 + // 如果数量为0,设置和显示已抢光
  1139 + // 否则,进一步判断是否超出限购或超出库存
  1140 + await this.getactLen().then(async function(res) {
  1141 + // res: redis可购买数量
  1142 + console.log('当前可以购买的数量:', res);
  1143 + if(res <= 0) {
  1144 + // 可购买数量<=0, 设置和显示已抢光
  1145 + th.setData({
  1146 + prom_r_null: 1,
  1147 + });
  1148 + } else {
  1149 + // 可购买数量>0
  1150 + // 计算自己还可以购买的数量
  1151 + // 自己还可购买的数量c = 每人活动限购数量a - 自己已经购买的数量b
  1152 + // 如果限购数量a>redis可购买数量d,当增加数量t>d, 提示超出库存
  1153 + // 如果限购数量a<=redis可购买数量d, 当增加数量t>a,提示超出限购
  1154 + let actInfo = th.data.sele_g;
  1155 + await th.get_buy_num2().then(function (data) {
  1156 + let limited = actInfo.buy_limit; // 限购数量a
  1157 + let promcardbuynum = data.data.data.promcardbuynum;
  1158 + let buyedNum = promcardbuynum; // 自己已经购买的数量b
  1159 + let canBuyNum = limited - buyedNum; // 自己还可购买的数量c
  1160 +
  1161 + if(canBuyNum <= 0) {
  1162 + canBuyNum = 0;
  1163 + };
  1164 +
  1165 + if(limited > res) {
  1166 + if(t > res) { // t当前增减的数量
  1167 + wx.showModal({
  1168 + title: '超出活动库存',
1213 }); 1169 });
1214 -  
1215 - if (t > redis_num) {  
1216 - wx.showToast({  
1217 - // title: '超出商品活动库存',  
1218 - title: '超出活动库存',  
1219 - icon: 'none',  
1220 - });  
1221 - th.setData({goodsInputNum: redis_num})  
1222 - return false;  
1223 - } 1170 + th.setData({
  1171 + goodsInputNum: res,
  1172 + });
  1173 + return false;
1224 }; 1174 };
1225 -  
1226 - //--秒杀:判断商品是否超出活动限购--  
1227 - if (th.data.sele_g.viplimited > 0 && !th.data.is_normal && th.data.prom_type == 1) {  
1228 - var gd_buy_num = th.data.promcardbuynum;  
1229 -  
1230 - // 如果限购数量>活动库存数量,增加数量时会先超过库存数量,此时应该提示“超出活动库存”;  
1231 - // 如果限购数量<=活动库存数量,增加数量时会先超过限购数量,此时应提示“超出活动限购数量”  
1232 - if(th.data.sele_g.viplimited > th.data.sele_g.goods_num) {  
1233 -  
1234 - // 计算还可以购买的数量:库存量 - 已购数  
1235 - var num = th.data.sele_g.goods_num - gd_buy_num;  
1236 - if(num < 0) num = 0;  
1237 - if(t > num) {  
1238 - wx.showToast({  
1239 - title: '超出活动库存',  
1240 - icon: 'none',  
1241 - });  
1242 -  
1243 - th.setData({goodsInputNum: num})  
1244 - return false;  
1245 -  
1246 - };  
1247 -  
1248 - } else {  
1249 - if ((t + gd_buy_num> th.data.sele_g.viplimited) && (t<=th.data.sele_g.goods_num)) {  
1250 - wx.showToast({  
1251 - title: '超出活动限购数量',  
1252 - icon: 'none',  
1253 - });  
1254 -  
1255 - var num = th.data.sele_g.viplimited - gd_buy_num;  
1256 - if (num <= 0) num = 1;  
1257 - th.setData({goodsInputNum: num})  
1258 - return false;  
1259 - };  
1260 - };  
1261 -  
1262 -  
1263 - 1175 + };
  1176 +
  1177 + if(limited <= res) {
  1178 + if(t>limited) {
  1179 + wx.showModal({
  1180 + title: '超出限购数量',
  1181 + });
  1182 + th.setData({
  1183 + goodsInputNum: canBuyNum,
  1184 + });
  1185 + return false;
1264 }; 1186 };
1265 -  
1266 - //--秒杀:判断商品是否超出活动限购--  
1267 - // if (th.data.prom_buy_num != -1 && th.data.prom_buy_limit > 0 && !th.data.is_normal) {  
1268 - // if (t + th.data.prom_buy_num > th.data.prom_buy_limit) {  
1269 - // wx.showModal({  
1270 - // title: '超出商品活动限购',  
1271 - // }); 1187 + };
  1188 +
  1189 + th.setData({
  1190 + goodsInputNum: t,
  1191 + });
  1192 + });
  1193 + };
  1194 + });
1272 1195
1273 - // var num = th.data.prom_buy_limit - th.data.prom_buy_num;  
1274 - // if (num < 0) num = 0;  
1275 - // th.setData({goodsInputNum: num})  
1276 - // return false;  
1277 - // };  
1278 - // }; 1196 + }
  1197 +
  1198 +
  1199 + };
  1200 +
  1201 +
  1202 +
  1203 +
  1204 +
  1205 +
1279 1206
1280 1207
1281 1208
1282 1209
1283 1210
1284 // var e = th.data.sele_g.goods_num; 1211 // var e = th.data.sele_g.goods_num;
1285 - var p_type = th.data.prom_type; //&& p_type!=1 && p_type!=4  
1286 - if (th.data.sales_rules == 2 && (p_type != 1 && p_type != 4 && p_type != 6 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) {  
1287 - if (!th.data.def_pick_store) {  
1288 - wx.showModal({title: '请选择门店',});  
1289 - return false;  
1290 - } else {  
1291 - // e = th.data.def_pick_store.CanOutQty;  
1292 - }  
1293 - }  
1294 -  
1295 - th.setData({goodsInputNum: t}); 1212 + // var p_type = th.data.prom_type; //&& p_type!=1 && p_type!=4
  1213 + // if (th.data.sales_rules == 2 && (p_type != 1 && p_type != 4 && p_type != 6 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) {
  1214 + // if (!th.data.def_pick_store) {
  1215 + // wx.showModal({title: '请选择门店',});
  1216 + // return false;
  1217 + // } else {
  1218 + // e = th.data.def_pick_store.CanOutQty;
  1219 + // }
  1220 + // }
  1221 +
  1222 +
  1223 + // th.setData({goodsInputNum: t});
1296 1224
1297 - }); 1225 + // });
1298 1226
1299 1227
1300 }, 1228 },
@@ -1326,12 +1254,10 @@ Page({ @@ -1326,12 +1254,10 @@ Page({
1326 return false; 1254 return false;
1327 } 1255 }
1328 1256
1329 - var ind = t.currentTarget.dataset.ind;  
1330 - 1257 + var ind = t.currentTarget.dataset.ind;
1331 this.setData({ 1258 this.setData({
1332 openSpecModal: !0, 1259 openSpecModal: !0,
1333 - openSpecModal_ind: ind,  
1334 - goodsInputNum: 1, 1260 + openSpecModal_ind: ind,
1335 }); 1261 });
1336 1262
1337 }, 1263 },
@@ -3288,19 +3214,18 @@ Page({ @@ -3288,19 +3214,18 @@ Page({
3288 3214
3289 3215
3290 //获取redis中的数量 3216 //获取redis中的数量
3291 - async getactLen(func) {  
3292 - var r_num = 0,  
3293 - prom_type = this.data.prom_type,  
3294 - prom_id = this.data.prom_id;  
3295 - await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + os.stoid + "/" + prom_type + "/" + prom_id, { 3217 + async getactLen() {
  3218 + let prom_type = this.data.options.prom_type;
  3219 + let prom_id = this.data.options.prom_id;
  3220 + return await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + os.stoid + "/" + prom_type + "/" + prom_id, {
3296 1: 1 3221 1: 1
3297 }).then(res => { 3222 }).then(res => {
3298 - var em = res;  
3299 - if (em.data.code == 0) {  
3300 - r_num = em.data.data;  
3301 - } 3223 + if (res.data.code == 0) {
  3224 + // 当前可以购买的数量
  3225 + let r_num = res.data.data;
  3226 + return r_num;
  3227 + };
3302 }) 3228 })
3303 - func(r_num);  
3304 }, 3229 },
3305 3230
3306 3231
@@ -3539,7 +3464,7 @@ Page({ @@ -3539,7 +3464,7 @@ Page({
3539 //----获取商品购买数---- 3464 //----获取商品购买数----
3540 if (th.data.prom_type == 1) { 3465 if (th.data.prom_type == 1) {
3541 //----获取活动购买数---- 3466 //----获取活动购买数----
3542 - getApp().request.get("/api/weshop/rechargeServicelist/getUserBuyGoodsNum", { 3467 + getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum", {
3543 data: { 3468 data: {
3544 store_id: os.stoid, 3469 store_id: os.stoid,
3545 user_id: user_id, 3470 user_id: user_id,
@@ -3567,6 +3492,49 @@ Page({ @@ -3567,6 +3492,49 @@ Page({
3567 }, 3492 },
3568 3493
3569 3494
  3495 + get_buy_num2: async function () {
  3496 + // var map = this.data.g_buy_num,
  3497 + var th = this,
  3498 + user_id = getApp().globalData.user_id;
  3499 + // if (user_id == null) {
  3500 + // // map.set(gd.goods_id, 0);
  3501 + // th.setData({
  3502 + // // g_buy_num: map,
  3503 + // prom_buy_num: 0,
  3504 + // });
  3505 + // "function" == typeof func && func();
  3506 + // return false;
  3507 + // }
  3508 +
  3509 +
  3510 + //----获取商品购买数----
  3511 +
  3512 + //----获取活动购买数----
  3513 + return await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum", {
  3514 + data: {
  3515 + store_id: os.stoid,
  3516 + user_id: user_id,
  3517 + card_id: th.data.options.goods_id,
  3518 + prom_type: th.data.options.prom_type,
  3519 + prom_id: th.data.options.prom_id
  3520 + },
  3521 + //-----获取-----
  3522 + success: function (tt) {
  3523 + if (tt.data.code == 0) {
  3524 + // map.set(gd.goods_id, g_buy_num);
  3525 + th.setData({
  3526 + // g_buy_num: map,
  3527 + promcardbuynum: tt.data.data.promcardbuynum,
  3528 + cardbuynum: tt.data.data.cardbuynum,
  3529 + });
  3530 + }
  3531 + }
  3532 + });
  3533 +
  3534 +
  3535 + },
  3536 +
  3537 +
3570 3538
3571 3539
3572 3540
pages/cart/cart/cart.js
@@ -2073,7 +2073,9 @@ Page({ @@ -2073,7 +2073,9 @@ Page({
2073 icon: 'none', 2073 icon: 'none',
2074 }); 2074 });
2075 th.setData({[txt]: redis_num}); 2075 th.setData({[txt]: redis_num});
2076 - await e.doCheckAll(); 2076 + t.goods_num = redis_num;
  2077 + await th.doCheckAll();
  2078 + await th.update_cart_ser(t, pitem, item);
2077 return false; 2079 return false;
2078 }; 2080 };
2079 2081
@@ -2114,14 +2116,22 @@ Page({ @@ -2114,14 +2116,22 @@ Page({
2114 if (buylimit > 0) { 2116 if (buylimit > 0) {
2115 if (num > redis_num) { 2117 if (num > redis_num) {
2116 th.setData({[txt]: redis_num-cartGoodsNum}); 2118 th.setData({[txt]: redis_num-cartGoodsNum});
  2119 + t.goods_num = redis_num-cartGoodsNum;
  2120 + await th.doCheckAll();
  2121 + await th.update_cart_ser(t, pitem, item);
2117 } else { 2122 } else {
2118 th.setData({[txt]: num - cartGoodsNum}); 2123 th.setData({[txt]: num - cartGoodsNum});
  2124 + t.goods_num = num - cartGoodsNum;
  2125 + await th.doCheckAll();
  2126 + await th.update_cart_ser(t, pitem, item);
2119 } 2127 }
2120 } else { 2128 } else {
2121 th.setData({[txt]: redis_num - cartGoodsNum}); 2129 th.setData({[txt]: redis_num - cartGoodsNum});
  2130 + t.goods_num = redis_num - cartGoodsNum;
  2131 + await th.doCheckAll();
  2132 + await th.update_cart_ser(t, pitem, item);
2122 } 2133 }
2123 2134
2124 - await e.doCheckAll();  
2125 return false; 2135 return false;
2126 }; 2136 };
2127 2137
@@ -2138,7 +2148,9 @@ Page({ @@ -2138,7 +2148,9 @@ Page({
2138 }); 2148 });
2139 if (num <= 0) num = 1; 2149 if (num <= 0) num = 1;
2140 th.setData({[txt]: num - cartGoodsNum}); 2150 th.setData({[txt]: num - cartGoodsNum});
2141 - await e.doCheckAll(); 2151 + t.goods_num = num - cartGoodsNum;
  2152 + await th.doCheckAll();
  2153 + await th.update_cart_ser(t, pitem, item);
2142 return false; 2154 return false;
2143 }; 2155 };
2144 2156