Commit 8ec14eb5850373962431f2b371189b0caa81e39b

Authored by yvan.ni
1 parent 8f4fedfc

不同门店,买同一商品,同一组合购的活动的限购

pages/cart/cart/cart.js
@@ -36,7 +36,8 @@ Page({ @@ -36,7 +36,8 @@ Page({
36 36
37 zhhe_prom:[], //组合活动需要显示差多少件 37 zhhe_prom:[], //组合活动需要显示差多少件
38 zuhe_map:{}, 38 zuhe_map:{},
39 - zuhe_map_good:{} 39 + zuhe_map_good:{},
  40 + in_zhact_gdmap:{}, //不同门店参与同一活动的限购
40 }, 41 },
41 onLoad: function() { 42 onLoad: function() {
42 var a = this,ee=a; 43 var a = this,ee=a;
@@ -59,6 +60,8 @@ Page({ @@ -59,6 +60,8 @@ Page({
59 60
60 }, 61 },
61 onShow: function() { 62 onShow: function() {
  63 + //每次显示都清空
  64 + this.data.in_zhact_gdmap={};
62 65
63 if (typeof this.getTabBar === 'function' && this.getTabBar()) { 66 if (typeof this.getTabBar === 'function' && this.getTabBar()) {
64 var index=getApp().getPageIndex(this); 67 var index=getApp().getPageIndex(this);
@@ -199,6 +202,7 @@ Page({ @@ -199,6 +202,7 @@ Page({
199 //-----真的获取购物车-------- 202 //-----真的获取购物车--------
200 get_cart: function() { 203 get_cart: function() {
201 var th = this; 204 var th = this;
  205 + th.data.in_zhact_gdmap={};
202 var rd = Math.random().toString(36).substr(2, 15); 206 var rd = Math.random().toString(36).substr(2, 15);
203 var user_id=getApp().globalData.userInfo.user_id; 207 var user_id=getApp().globalData.userInfo.user_id;
204 getApp().request.get("/api/weshop/cart/list", { 208 getApp().request.get("/api/weshop/cart/list", {
@@ -884,6 +888,7 @@ Page({ @@ -884,6 +888,7 @@ Page({
884 888
885 var offline_price=0; 889 var offline_price=0;
886 var offline_num=0; 890 var offline_num=0;
  891 + th.data.in_zhact_gdmap={};
887 892
888 893
889 if(dda && dda.length>0){ 894 if(dda && dda.length>0){
@@ -902,7 +907,8 @@ Page({ @@ -902,7 +907,8 @@ Page({
902 907
903 var obj=JSON.parse(JSON.stringify(item[j])); 908 var obj=JSON.parse(JSON.stringify(item[j]));
904 //计算之前先移除 909 //计算之前先移除
905 - zh_calc.remove_zhprom(dda,i,obj); 910 + if(obj.prom_type==7)
  911 + zh_calc.remove_zhprom(dda,i,obj);
906 912
907 913
908 if (fir == 0) { 914 if (fir == 0) {
@@ -917,7 +923,8 @@ Page({ @@ -917,7 +923,8 @@ Page({
917 var txt = "requestData[" + i + "].goods[" + j + "].selected"; 923 var txt = "requestData[" + i + "].goods[" + j + "].selected";
918 924
919 if(e.data.checkAllToggle) obj.goods_num=0; 925 if(e.data.checkAllToggle) obj.goods_num=0;
920 - zh_calc.add_zhprom(dda,i,obj); 926 + if(obj.prom_type==7)
  927 + zh_calc.add_zhprom(dda,i,obj);
921 928
922 e.setData({ 929 e.setData({
923 [txt]: !e.data.checkAllToggle, 930 [txt]: !e.data.checkAllToggle,
@@ -1265,6 +1272,7 @@ Page({ @@ -1265,6 +1272,7 @@ Page({
1265 1272
1266 //-- 购物车 -- 1273 //-- 购物车 --
1267 if(car && car.length>0){ 1274 if(car && car.length>0){
  1275 + th.data.in_zhact_gdmap={};
1268 for (var a = 0; a < car.length; a++) { 1276 for (var a = 0; a < car.length; a++) {
1269 var item = car[a].goods, 1277 var item = car[a].goods,
1270 is_s_sele = 1; 1278 is_s_sele = 1;
@@ -1300,6 +1308,7 @@ Page({ @@ -1300,6 +1308,7 @@ Page({
1300 offline_num+=item[c].goods_num; 1308 offline_num+=item[c].goods_num;
1301 } 1309 }
1302 } 1310 }
  1311 +
1303 //总的价格,把组合商品的价格拿出来 1312 //总的价格,把组合商品的价格拿出来
1304 var zh_calc_res=zh_calc.calculate_zh(car,a,th); 1313 var zh_calc_res=zh_calc.calculate_zh(car,a,th);
1305 tfeel+=zh_calc_res.tfeel; 1314 tfeel+=zh_calc_res.tfeel;
pages/cart/cart/zh_calculate.js
@@ -130,7 +130,14 @@ module.exports = { @@ -130,7 +130,14 @@ module.exports = {
130 item.cart_num =cart_num; 130 item.cart_num =cart_num;
131 //-- 当商品有购买的时候,以及有限购的时候 -- 131 //-- 当商品有购买的时候,以及有限购的时候 --
132 if(item.buyqty>0){ 132 if(item.buyqty>0){
  133 +
  134 + console.log(111,th.data.in_zhact_gdmap);
  135 +
133 var cbuy=item.buyqty-zh_b_num; 136 var cbuy=item.buyqty-zh_b_num;
  137 + var key=item.goods_id+""+act.id;
  138 + if(th.data.in_zhact_gdmap[key]){
  139 + var cbuy=item.buyqty-zh_b_num-th.data.in_zhact_gdmap[key];
  140 + }
134 //当可买的数量为0 141 //当可买的数量为0
135 if(cbuy<=0){ 142 if(cbuy<=0){
136 item.num=0; 143 item.num=0;
@@ -158,7 +165,6 @@ module.exports = { @@ -158,7 +165,6 @@ module.exports = {
158 } 165 }
159 if (item.num) { 166 if (item.num) {
160 all_num += item.num; 167 all_num += item.num;
161 -  
162 //当有起购数的控制的时候 168 //当有起购数的控制的时候
163 if (item.zhqty) { 169 if (item.zhqty) {
164 all_zhqty += item.zhqty; 170 all_zhqty += item.zhqty;
@@ -189,6 +195,22 @@ module.exports = { @@ -189,6 +195,22 @@ module.exports = {
189 195
190 //当满足组合的要求:总数要满足,起购数要满足 196 //当满足组合的要求:总数要满足,起购数要满足
191 if (all_num >= act.zhbuyqty && !need_to_buy) { 197 if (all_num >= act.zhbuyqty && !need_to_buy) {
  198 + //商品的列表
  199 + for (var u in goods) {
  200 + var ite=goods[u];
  201 + if(ite.buyqty>0 && ite.num>0){
  202 +
  203 + console.log(222,th.data.in_zhact_gdmap);
  204 +
  205 + var key=ite.goods_id+""+act.id;
  206 + if(th.data.in_zhact_gdmap[key]){
  207 + th.data.in_zhact_gdmap[key]+=ite.num;
  208 + }else{
  209 + th.data.in_zhact_gdmap[key]=ite.num;
  210 + }
  211 + }
  212 + }
  213 +
192 function sortData(a, b) { 214 function sortData(a, b) {
193 return a.price - b.price 215 return a.price - b.price
194 } 216 }
pages/cart/cart2/cart2.js
@@ -120,6 +120,8 @@ Page({ @@ -120,6 +120,8 @@ Page({
120 120
121 tabs: ['门店自提', '快递邮寄'], 121 tabs: ['门店自提', '快递邮寄'],
122 currentTabIndex: 1, 122 currentTabIndex: 1,
  123 +
  124 + in_zhact_gdmap:{}, //不同门店参与同一活动的限购
123 }, 125 },
124 onLoad: function (t) { 126 onLoad: function (t) {
125 wx.setNavigationBarTitle({title: "填写订单",}) 127 wx.setNavigationBarTitle({title: "填写订单",})
@@ -413,6 +415,7 @@ Page({ @@ -413,6 +415,7 @@ Page({
413 var arr = new Array(); 415 var arr = new Array();
414 var carr = su.data.data.pageData; 416 var carr = su.data.data.pageData;
415 th.data.cartlist_y = carr; //存储原始购物车列表 417 th.data.cartlist_y = carr; //存储原始购物车列表
  418 + th.data.in_zhact_gdmap={};
416 419
417 //---是不是购买等级卡成功的返回---等级卡显示的判断--- 420 //---是不是购买等级卡成功的返回---等级卡显示的判断---
418 var is_card_back = getApp().globalData.is_card_back; 421 var is_card_back = getApp().globalData.is_card_back;
@@ -651,6 +654,7 @@ Page({ @@ -651,6 +654,7 @@ Page({
651 } 654 }
652 } 655 }
653 656
  657 +
654 //每一个门店内的组合购要进行拆分, 658 //每一个门店内的组合购要进行拆分,
655 //还得把组合商品的多余商品的线下价格算一算 659 //还得把组合商品的多余商品的线下价格算一算
656 for (let var1 in arr) { 660 for (let var1 in arr) {
pages/cart/cart2/zh_calculate.js
@@ -2,7 +2,7 @@ var regeneratorRuntime = require(&#39;../../../utils/runtime.js&#39;); @@ -2,7 +2,7 @@ var regeneratorRuntime = require(&#39;../../../utils/runtime.js&#39;);
2 module.exports = { 2 module.exports = {
3 //主要的作用,就是把组合购多余的商品进行拆分, 3 //主要的作用,就是把组合购多余的商品进行拆分,
4 //如果没有达成组合购的要求,所有的商品都打回原价购买 4 //如果没有达成组合购的要求,所有的商品都打回原价购买
5 - fir_set_arr: function (c_item) { 5 + fir_set_arr: function (c_item,th) {
6 //组合活动,以及组合活动从表的商品 6 //组合活动,以及组合活动从表的商品
7 let zh_prom_goods = c_item.zh_prom_goods; 7 let zh_prom_goods = c_item.zh_prom_goods;
8 let goods = c_item.goods; //一个门店中所有的商品 8 let goods = c_item.goods; //一个门店中所有的商品
@@ -47,7 +47,14 @@ module.exports = { @@ -47,7 +47,14 @@ module.exports = {
47 var cart_num=item.cart_num =item_j.goods_num; 47 var cart_num=item.cart_num =item_j.goods_num;
48 var zh_b_num=item_j.promgoodsbuynum; 48 var zh_b_num=item_j.promgoodsbuynum;
49 if(item.buyqty>0){ 49 if(item.buyqty>0){
  50 +
  51 + var key=item.goods_id+""+act.id;
50 var cbuy=item.buyqty-zh_b_num; 52 var cbuy=item.buyqty-zh_b_num;
  53 + if(th.data.in_zhact_gdmap[key]){
  54 + var cbuy=item.buyqty-zh_b_num-th.data.in_zhact_gdmap[key];
  55 + }
  56 +
  57 +
51 //当可买的数量为0 58 //当可买的数量为0
52 if(cbuy<=0){ 59 if(cbuy<=0){
53 item.num=0; 60 item.num=0;
@@ -97,6 +104,21 @@ module.exports = { @@ -97,6 +104,21 @@ module.exports = {
97 104
98 //当满足组合的要求:总数要满足,起购数要满足 105 //当满足组合的要求:总数要满足,起购数要满足
99 if (all_num >= act.zhbuyqty && !need_to_buy) { 106 if (all_num >= act.zhbuyqty && !need_to_buy) {
  107 +
  108 + //商品的列表
  109 + for (var u in act_goos) {
  110 + var ite=act_goos[u];
  111 + if(ite.buyqty>0 && ite.num>0){
  112 + var key=ite.goods_id+""+act.id;
  113 + if(th.data.in_zhact_gdmap[key]){
  114 + th.data.in_zhact_gdmap[key]+=ite.num;
  115 + }else{
  116 + th.data.in_zhact_gdmap[key]=ite.num;
  117 + }
  118 + }
  119 + }
  120 +
  121 +
100 function sortData(a, b) { 122 function sortData(a, b) {
101 return a.price - b.price 123 return a.price - b.price
102 } 124 }