Commit 8e20161446507de3951273e116f4d023f3539c24
1 parent
61488783
oa/115679 超量倍增 逻辑更改
Showing
3 changed files
with
169 additions
and
50 deletions
packageB/pages/zuhegou/index/index.js
... | ... | @@ -1965,29 +1965,66 @@ Page({ |
1965 | 1965 | |
1966 | 1966 | //看一下剩下的数量有没有满足组合购的要求,以及要不要倍增 |
1967 | 1967 | if (this.data.act.is_bz && no_in_arr.length >= this.data.act.zhbuyqty) { |
1968 | - let zhqty_map=new map(); | |
1969 | - //看一下是几倍 | |
1970 | - var be = parseInt(no_in_arr.length / this.data.act.zhbuyqty); | |
1968 | + var bz_num_ok=0; //超量倍增是否满足 | |
1969 | + var zhqty_len=0; //几个超量倍增 | |
1970 | + var be = parseInt(no_in_arr.length / this.data.act.zhbuyqty); //看一下是几倍 | |
1971 | 1971 | if(this.data.act.is_bzyh && zhqty_bz.length > 0 ){ |
1972 | - for(let i=0;i<zhqty_bz.length;i++){ | |
1973 | - let vv=zhqty_bz[i]; | |
1974 | - let num=0; | |
1975 | - let bz_num=be*vv.zhqty; | |
1976 | - for(let j=0;j<no_in_arr.length;j++){ | |
1977 | - let ii=no_in_arr[j]; | |
1978 | - if(vv.goods_id===ii.goods_id){ | |
1979 | - num++; | |
1980 | - zhqty_map.set('num',num); | |
1981 | - zhqty_map.set('price',ii.price); | |
1972 | + if(zhqty_bz.length>1){ | |
1973 | + zhqty_len=1; | |
1974 | + aprice += be * aprice; | |
1975 | + let min_bz_num= Math.min.apply(Math, zhqty_bz.map(function(o) {return o['num']})); | |
1976 | + let new_arr=zhqty_bz.filter(ii=>{ | |
1977 | + return ii['num']==min_bz_num | |
1978 | + }) | |
1979 | + // var vv=new_arr[0]; | |
1980 | + var bz_num=be*new_arr[0].zhqty; //超量倍增 | |
1981 | + var num=min_bz_num-new_arr[0].zhqty; //购买数量减去超量 | |
1982 | + bz_num_ok=bz_num-num; | |
1983 | + if(bz_num_ok <= 0){ | |
1984 | + //超量倍增满足,超量倍增就等于倍数 | |
1985 | + bz_num_ok=bz_num; | |
1986 | + }else{ | |
1987 | + //超量倍增不满足,倍数要减去多出得 | |
1988 | + be=be-bz_num_ok; | |
1989 | + bz_num_ok=num; | |
1990 | + } | |
1991 | + for(let i=0;i<zhqty_bz.length;i++){ | |
1992 | + var vv=zhqty_bz[i]; | |
1993 | + for(let j=0;j<bz_num_ok;j++){ | |
1994 | + let index= no_in_arr.findIndex(i=>{ | |
1995 | + return vv.goods_id===i.goods_id | |
1996 | + }) | |
1997 | + no_in_arr.splice(index,1) | |
1998 | + } | |
1999 | + } | |
2000 | + }else{ | |
2001 | + for(let i=0;i<zhqty_bz.length;i++){ | |
2002 | + // var zhqty_flag=true; | |
2003 | + var vv=zhqty_bz[i]; | |
2004 | + var bz_num=be*vv.zhqty; //超量倍增 | |
2005 | + var num=vv['num']-vv.zhqty; //购买数量减去超量 | |
2006 | + bz_num_ok=bz_num-num; | |
2007 | + if(bz_num_ok <= 0){ | |
2008 | + //超量倍增满足,超量倍增就等于倍数 | |
2009 | + bz_num_ok=bz_num; | |
2010 | + }else{ | |
2011 | + //超量倍增不满足,倍数要减去多出得 | |
2012 | + be=be-bz_num_ok; | |
2013 | + bz_num_ok=num; | |
1982 | 2014 | } |
1983 | - | |
2015 | + for(let j=0;j<bz_num_ok;j++){ | |
2016 | + let index= no_in_arr.findIndex(i=>{ | |
2017 | + return vv.goods_id===i.goods_id | |
2018 | + }) | |
2019 | + no_in_arr.splice(index,1) | |
2020 | + } | |
1984 | 2021 | } |
1985 | - } | |
2022 | + } | |
1986 | 2023 | } |
1987 | - if(bz_num <= num){ | |
2024 | + if(!zhqty_len){ | |
2025 | + //多个超量就不用pop了 | |
1988 | 2026 | aprice += be * aprice; |
1989 | - let pop_num=(be * this.data.act.zhbuyqty)-bz_num; | |
1990 | - console.log(pop_num); | |
2027 | + let pop_num=be * this.data.act.zhbuyqty - bz_num_ok; | |
1991 | 2028 | for (var m = 0; m < pop_num; m++) { |
1992 | 2029 | no_in_arr.pop(); |
1993 | 2030 | } | ... | ... |
pages/cart/cart/zh_calculate.js
... | ... | @@ -232,25 +232,66 @@ module.exports = { |
232 | 232 | } |
233 | 233 | //看一下剩下的数量有没有满足组合购的要求,以及要不要倍增 |
234 | 234 | if (act.is_bz && no_in_arr.length >= act.zhbuyqty) { |
235 | - //看一下是几倍 | |
236 | - let num = 0; | |
237 | - let bz_num = 0; | |
238 | - var be = parseInt(no_in_arr.length / act.zhbuyqty); | |
235 | + var bz_num_ok=0; //超量倍增是否满 | |
236 | + var zhqty_len=0; //几个超量倍增 | |
237 | + var be = parseInt(no_in_arr.length / act.zhbuyqty);//看一下是几倍 | |
239 | 238 | if (act.is_bzyh && zhqty_bz.length > 0) { |
240 | - for (let i = 0; i < zhqty_bz.length; i++) { | |
241 | - let item = zhqty_bz[i]; | |
242 | - bz_num = be * item.zhqty; | |
243 | - for (let j = 0; j < no_in_arr.length; j++) { | |
244 | - let i = no_in_arr[j]; | |
245 | - if (item.goods_id === i.goods_id) { | |
246 | - num++ | |
247 | - } | |
239 | + if(zhqty_bz.length>1){ | |
240 | + zhqty_len=1; | |
241 | + aprice += be * aprice; | |
242 | + let min_bz_num= Math.min.apply(Math, zhqty_bz.map(function(o) {return o['num']})); | |
243 | + let new_arr=zhqty_bz.filter(ii=>{ | |
244 | + return ii['num']==min_bz_num | |
245 | + }) | |
246 | + // var vv=new_arr[0]; | |
247 | + var bz_num=be*new_arr[0].zhqty; //超量倍增 | |
248 | + var num=min_bz_num-new_arr[0].zhqty; //购买数量减去超量 | |
249 | + bz_num_ok=bz_num-num; | |
250 | + if(bz_num_ok <= 0){ | |
251 | + //超量倍增满足,超量倍增就等于倍数 | |
252 | + bz_num_ok=bz_num; | |
253 | + }else{ | |
254 | + //超量倍增不满足,倍数要减去多出得 | |
255 | + be=be-bz_num_ok; | |
256 | + bz_num_ok=num; | |
248 | 257 | } |
249 | - } | |
258 | + for(let i=0;i<zhqty_bz.length;i++){ | |
259 | + var vv=zhqty_bz[i]; | |
260 | + for(let j=0;j<bz_num_ok;j++){ | |
261 | + let index= no_in_arr.findIndex(i=>{ | |
262 | + return vv.goods_id===i.goods_id | |
263 | + }) | |
264 | + no_in_arr.splice(index,1) | |
265 | + } | |
266 | + } | |
267 | + }else{ | |
268 | + // for(let i=0;i<zhqty_bz.length;i++){ | |
269 | + // var zhqty_flag=true; | |
270 | + var vv=zhqty_bz[0]; | |
271 | + var bz_num=be*vv.zhqty; //超量倍增 | |
272 | + var num=vv['num']-vv.zhqty; //购买数量减去超量 | |
273 | + bz_num_ok=bz_num-num; | |
274 | + if(bz_num_ok <= 0){ | |
275 | + //超量倍增满足,超量倍增就等于倍数 | |
276 | + bz_num_ok=bz_num; | |
277 | + }else{ | |
278 | + //超量倍增不满足,倍数要减去多出得 | |
279 | + be=be-bz_num_ok; | |
280 | + bz_num_ok=num; | |
281 | + } | |
282 | + for(let j=0;j<bz_num_ok;j++){ | |
283 | + let index= no_in_arr.findIndex(i=>{ | |
284 | + return vv.goods_id===i.goods_id | |
285 | + }) | |
286 | + no_in_arr.splice(index,1) | |
287 | + } | |
288 | + // } | |
289 | + } | |
250 | 290 | } |
251 | - if (bz_num <= num) { | |
291 | + if (!zhqty_len) { | |
252 | 292 | aprice += be * act.zhprice; |
253 | - for (var m = 0; m < be * act.zhbuyqty; m++) { | |
293 | + let pop_num=be * act.zhbuyqty - bz_num_ok; | |
294 | + for (var m = 0; m < pop_num; m++) { | |
254 | 295 | no_in_arr.pop(); |
255 | 296 | } |
256 | 297 | } | ... | ... |
pages/cart/cart2/zh_calculate.js
... | ... | @@ -144,25 +144,66 @@ module.exports = { |
144 | 144 | } |
145 | 145 | //看一下剩下的数量有没有满足组合购的要求,以及要不要倍增 |
146 | 146 | if (act.is_bz && no_in_arr.length >= act.zhbuyqty) { |
147 | - //看一下是几倍 | |
148 | - let num = 0; | |
149 | - let bz_num = 0; | |
150 | - let be = parseInt(no_in_arr.length / act.zhbuyqty); | |
147 | + var bz_num_ok=0; //超量倍增是否满足 | |
148 | + var zhqty_len=0; //几个超量倍增 | |
149 | + let be = parseInt(no_in_arr.length / act.zhbuyqty);//看一下是几倍 | |
151 | 150 | if (act.is_bzyh && zhqty_bz.length > 0) { |
152 | - for (let i = 0; i < zhqty_bz.length; i++) { | |
153 | - let item = zhqty_bz[i]; | |
154 | - bz_num = be * item.zhqty; | |
155 | - for (let j = 0; j < no_in_arr.length; j++) { | |
156 | - let i = no_in_arr[j]; | |
157 | - if (item.goods_id === i.goods_id) { | |
158 | - num++ | |
159 | - } | |
160 | - } | |
161 | - } | |
151 | + if(zhqty_bz.length>1){ | |
152 | + zhqty_len=1; | |
153 | + aprice += be * aprice; | |
154 | + let min_bz_num= Math.min.apply(Math, zhqty_bz.map(function(o) {return o['num']})); | |
155 | + let new_arr=zhqty_bz.filter(ii=>{ | |
156 | + return ii['num']==min_bz_num | |
157 | + }) | |
158 | + // var vv=new_arr[0]; | |
159 | + var bz_num=be*new_arr[0].zhqty; //超量倍增 | |
160 | + var num=min_bz_num-new_arr[0].zhqty; //购买数量减去超量 | |
161 | + bz_num_ok=bz_num-num; | |
162 | + if(bz_num_ok <= 0){ | |
163 | + //超量倍增满足,超量倍增就等于倍数 | |
164 | + bz_num_ok=bz_num; | |
165 | + }else{ | |
166 | + //超量倍增不满足,倍数要减去多出得 | |
167 | + be=be-bz_num_ok; | |
168 | + bz_num_ok=num; | |
169 | + } | |
170 | + for(let i=0;i<zhqty_bz.length;i++){ | |
171 | + var vv=zhqty_bz[i]; | |
172 | + for(let j=0;j<bz_num_ok;j++){ | |
173 | + let index= no_in_arr.findIndex(i=>{ | |
174 | + return vv.goods_id===i.goods_id | |
175 | + }) | |
176 | + no_in_arr.splice(index,1) | |
177 | + } | |
178 | + } | |
179 | + }else{ | |
180 | + for(let i=0;i<zhqty_bz.length;i++){ | |
181 | + // var zhqty_flag=true; | |
182 | + var vv=zhqty_bz[i]; | |
183 | + var bz_num=be*vv.zhqty; //超量倍增 | |
184 | + var num=vv['num']-vv.zhqty; //购买数量减去超量 | |
185 | + bz_num_ok=bz_num-num; | |
186 | + if(bz_num_ok <= 0){ | |
187 | + //超量倍增满足,超量倍增就等于倍数 | |
188 | + bz_num_ok=bz_num; | |
189 | + }else{ | |
190 | + //超量倍增不满足,倍数要减去多出得 | |
191 | + be=be-bz_num_ok; | |
192 | + bz_num_ok=num; | |
193 | + } | |
194 | + for(let j=0;j<bz_num_ok;j++){ | |
195 | + let index= no_in_arr.findIndex(i=>{ | |
196 | + return vv.goods_id===i.goods_id | |
197 | + }) | |
198 | + no_in_arr.splice(index,1) | |
199 | + } | |
200 | + } | |
201 | + } | |
162 | 202 | } |
163 | - if (bz_num <= num) { | |
164 | - aprice += be * act.zhprice; | |
165 | - for (var m = 0; m < be * act.zhbuyqty; m++) { | |
203 | + if (!zhqty_len) { | |
204 | + aprice += be * act.zhprice; | |
205 | + let pop_num=be * act.zhbuyqty - bz_num_ok; | |
206 | + for (var m = 0; m < pop_num; m++) { | |
166 | 207 | no_in_arr.pop(); |
167 | 208 | } |
168 | 209 | } | ... | ... |