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