Commit 379f101b10769786c92c6c4b93562ab6a23dfca8

Authored by 后端研发-苏明海
2 parents aa2d3aaf 80f9cb46

Merge branch 'dev' into 'test'

Dev

See merge request !980
packageA/pages/goodsInfo/goodsInfo.js
@@ -859,16 +859,16 @@ Page({ @@ -859,16 +859,16 @@ Page({
859 return false; 859 return false;
860 }; 860 };
861 861
862 - 862 + // 秒杀活动
863 if(this.data.prom_type == 1) { 863 if(this.data.prom_type == 1) {
864 864
865 this.data.sele_g.viplimited = this.data.sele_g.buy_limit; 865 this.data.sele_g.viplimited = this.data.sele_g.buy_limit;
866 866
867 - // 每人限购数 867 + // 每人最大限购数
868 th.data.sele_g.viplimited = th.data.sele_g.buy_limit; 868 th.data.sele_g.viplimited = th.data.sele_g.buy_limit;
869 869
870 //----获取用户活动购买数---- 870 //----获取用户活动购买数----
871 - // 已经付款的单数 871 + // 已经付款的单数,已经成功购买的数量
872 var gd_buy_num = 0; 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, { 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 => { 874 }).then(res => {
@@ -884,51 +884,64 @@ Page({ @@ -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 if(redisNum > 0 && !this.data.is_normal) { 890 if(redisNum > 0 && !this.data.is_normal) {
903 // 输入的数量 891 // 输入的数量
904 var t = th.data.goodsInputNum; 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 if (t > redisNum) { 919 if (t > redisNum) {
907 wx.showToast({ 920 wx.showToast({
908 - title: '超出活动库存' + redisNum, 921 + title: '超出活动库存',
909 icon: 'none' 922 icon: 'none'
910 }); 923 });
911 924
912 // 开启限购 925 // 开启限购
913 if (th.data.sele_g.viplimited > 0) { 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 } else { 946 } else {
934 th.setData({goodsInputNum: redisNum}); 947 th.setData({goodsInputNum: redisNum});
@@ -937,64 +950,27 @@ Page({ @@ -937,64 +950,27 @@ Page({
937 return false; 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 if (th.data.sele_g.viplimited > 0) { 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 wx.showToast({ 958 wx.showToast({
981 title: '超出活动限购数量', 959 title: '超出活动限购数量',
982 icon: 'none' 960 icon: 'none'
983 }); 961 });
984 -  
985 - let num = th.data.sele_g.viplimited - gd_buy_num; 962 +
986 if (num > redisNum) { 963 if (num > redisNum) {
987 th.setData({goodsInputNum: redisNum}); 964 th.setData({goodsInputNum: redisNum});
988 } else { 965 } else {
989 th.setData({goodsInputNum: num}); 966 th.setData({goodsInputNum: num});
990 } 967 }
991 return false; 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,7 +1018,13 @@ Page({
1042 // console.log('newd++++++++', newd); 1018 // console.log('newd++++++++', newd);
1043 th.buyNow(newd); 1019 th.buyNow(newd);
1044 } else { // 购物车 1020 } else { // 购物车
1045 - 1021 +
  1022 + // 购买数量大于0的才能加入到购物车
  1023 + if (th.data.goodsInputNum <= 0) {
  1024 + th.closeSpecModal();
  1025 + return false;
  1026 + }
  1027 +
1046 var newd = { 1028 var newd = {
1047 service_id: th.data.data.id, 1029 service_id: th.data.data.id,
1048 service_sn:th.data.data.service_sn, 1030 service_sn:th.data.data.service_sn,
pages/cart/cart/cart.js
@@ -1079,9 +1079,10 @@ Page({ @@ -1079,9 +1079,10 @@ Page({
1079 if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) { 1079 if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) {
1080 var s = { 1080 var s = {
1081 goods_num: a, 1081 goods_num: a,
1082 - goods_id: e.goods_id, 1082 + goods_id: e.service_id,
1083 id: e.id, 1083 id: e.id,
1084 store_id: oo.stoid, 1084 store_id: oo.stoid,
  1085 + is_pd_normal: e.is_pd_normal
1085 }; 1086 };
1086 if(e.prom_type) { 1087 if(e.prom_type) {
1087 s.prom_type = e.prom_type; 1088 s.prom_type = e.prom_type;
@@ -1113,6 +1114,7 @@ Page({ @@ -1113,6 +1114,7 @@ Page({
1113 id: a.id, 1114 id: a.id,
1114 goods_id: a.service_id, 1115 goods_id: a.service_id,
1115 store_id: oo.stoid, 1116 store_id: oo.stoid,
  1117 + is_pd_normal: a.is_pd_normal
1116 }; 1118 };
1117 if(a.prom_type) { 1119 if(a.prom_type) {
1118 e.prom_type = a.prom_type; 1120 e.prom_type = a.prom_type;
@@ -1150,9 +1152,11 @@ Page({ @@ -1150,9 +1152,11 @@ Page({
1150 var e = { 1152 var e = {
1151 goods_num: a.goods_num - 1, 1153 goods_num: a.goods_num - 1,
1152 id: a.id, 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 this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); 1160 this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
1157 } 1161 }
1158 }, 1162 },
@@ -2025,102 +2029,127 @@ Page({ @@ -2025,102 +2029,127 @@ Page({
2025 e.setData({ 2029 e.setData({
2026 [txt]: t.goods_num 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,7 +2363,6 @@ Page({
2334 update_cart_ser: function (t, pitem, item) { 2363 update_cart_ser: function (t, pitem, item) {
2335 var e = this; 2364 var e = this;
2336 2365
2337 - console.log('t===>', t);  
2338 getApp().request.put("/api/weshop/cartService/update", { 2366 getApp().request.put("/api/weshop/cartService/update", {
2339 data: t, 2367 data: t,
2340 success: async function (ee) { 2368 success: async function (ee) {