Commit f8d339ccdba0cfbc2fd9c5435e61890ef635ac42
1 parent
40bae0e5
组合购的bug优化
Showing
2 changed files
with
93 additions
and
82 deletions
packageB/pages/zuhegou/index/index.js
... | ... | @@ -2221,105 +2221,113 @@ Page({ |
2221 | 2221 | var delete_num = 0; |
2222 | 2222 | var zhqty_len = 0; //几个超量倍增 |
2223 | 2223 | var be = parseInt(no_in_arr.length / this.data.act.zhbuyqty); //看一下是几倍 |
2224 | - if (this.data.act.is_bzyh && zhqty_bz.length > 0) { | |
2225 | - if (zhqty_bz.length > 1) { | |
2226 | - let zhqty_bz_arr = []; | |
2227 | - let zhqty_bz_flag = this.zhqty_bz_fun(zhqty_bz, be, zhqty_bz_arr); | |
2228 | - | |
2229 | - if (zhqty_bz_flag) { | |
2230 | - for (let i = 0; i < zhqty_bz.length; i++) { | |
2231 | - var vv = zhqty_bz[i]; | |
2232 | - for (let j = 0; j < be * vv['zhqty']; j++) { | |
2233 | - let index = no_in_arr.findIndex(i => { | |
2234 | - return vv.goods_id === i.goods_id | |
2235 | - }) | |
2236 | - if (index > -1) { | |
2237 | - delete_num++ | |
2238 | - no_in_arr.splice(index, 1) | |
2224 | + //如果有总数控制的时候 | |
2225 | + if(this.data.act.zh_num){ | |
2226 | + var be1=this.data.act.zh_num-this.data.act.zh_buy_num-1; | |
2227 | + if(be1<be) be=be1; | |
2228 | + } | |
2229 | + if(be){ | |
2230 | + if (this.data.act.is_bzyh && zhqty_bz.length > 0) { | |
2231 | + if (zhqty_bz.length > 1) { | |
2232 | + let zhqty_bz_arr = []; | |
2233 | + let zhqty_bz_flag = this.zhqty_bz_fun(zhqty_bz, be, zhqty_bz_arr); | |
2234 | + | |
2235 | + if (zhqty_bz_flag) { | |
2236 | + for (let i = 0; i < zhqty_bz.length; i++) { | |
2237 | + var vv = zhqty_bz[i]; | |
2238 | + for (let j = 0; j < be * vv['zhqty']; j++) { | |
2239 | + let index = no_in_arr.findIndex(i => { | |
2240 | + return vv.goods_id === i.goods_id | |
2241 | + }) | |
2242 | + if (index > -1) { | |
2243 | + delete_num++ | |
2244 | + no_in_arr.splice(index, 1) | |
2245 | + } | |
2239 | 2246 | } |
2240 | 2247 | } |
2241 | - } | |
2242 | - } else { | |
2243 | - zhqty_len = 1; | |
2244 | - let min_bz_num = Math.min.apply(Math, zhqty_bz_arr.map(function (o) { | |
2245 | - return o['num']; | |
2246 | - })); | |
2247 | - let new_arr = zhqty_bz_arr.filter(ii => { | |
2248 | - return ii['num'] == min_bz_num; | |
2249 | - }) | |
2250 | - var vv = new_arr[0]; | |
2251 | - var bz_num = be * new_arr[0].zhqty; //超量倍增 | |
2252 | - var num = min_bz_num - new_arr[0].zhqty; //购买数量减去超量 | |
2253 | - bz_num_ok = bz_num - num; | |
2254 | - if (bz_num_ok <= 0) { | |
2255 | - //超量倍增满足,超量倍增就等于倍数 | |
2256 | - bz_num_ok = bz_num; | |
2257 | 2248 | } else { |
2258 | - //超量倍增不满足,倍数要减去多出得 | |
2259 | - // be=be-bz_num_ok; | |
2260 | - if (num % vv.zhqty == 0) { | |
2261 | - be = num / vv.zhqty; | |
2249 | + zhqty_len = 1; | |
2250 | + let min_bz_num = Math.min.apply(Math, zhqty_bz_arr.map(function (o) { | |
2251 | + return o['num']; | |
2252 | + })); | |
2253 | + let new_arr = zhqty_bz_arr.filter(ii => { | |
2254 | + return ii['num'] == min_bz_num; | |
2255 | + }) | |
2256 | + var vv = new_arr[0]; | |
2257 | + var bz_num = be * new_arr[0].zhqty; //超量倍增 | |
2258 | + var num = min_bz_num - new_arr[0].zhqty; //购买数量减去超量 | |
2259 | + bz_num_ok = bz_num - num; | |
2260 | + if (bz_num_ok <= 0) { | |
2261 | + //超量倍增满足,超量倍增就等于倍数 | |
2262 | + bz_num_ok = bz_num; | |
2262 | 2263 | } else { |
2263 | - be = Math.floor(num / vv.zhqty) | |
2264 | + //超量倍增不满足,倍数要减去多出得 | |
2265 | + // be=be-bz_num_ok; | |
2266 | + if (num % vv.zhqty == 0) { | |
2267 | + be = num / vv.zhqty; | |
2268 | + } else { | |
2269 | + be = Math.floor(num / vv.zhqty) | |
2270 | + } | |
2271 | + bz_num_ok = be * vv.zhqty; | |
2264 | 2272 | } |
2265 | - bz_num_ok = be * vv.zhqty; | |
2266 | - } | |
2267 | 2273 | |
2268 | - for (let i = 0; i < zhqty_bz.length; i++) { | |
2269 | - let item1 = zhqty_bz[i]; | |
2270 | - for (let j = 0; j < be * item1['zhqty']; j++) { | |
2274 | + for (let i = 0; i < zhqty_bz.length; i++) { | |
2275 | + let item1 = zhqty_bz[i]; | |
2276 | + for (let j = 0; j < be * item1['zhqty']; j++) { | |
2277 | + let index = no_in_arr.findIndex(i => { | |
2278 | + return item1.goods_id === i.goods_id | |
2279 | + }) | |
2280 | + if (index > -1) { | |
2281 | + // delete_num++ | |
2282 | + no_in_arr.splice(index, 1) | |
2283 | + } | |
2284 | + } | |
2285 | + } | |
2286 | + aprice += be * aprice; | |
2287 | + } | |
2288 | + } else { | |
2289 | + var vv = zhqty_bz[0]; | |
2290 | + var bz_num = be * vv.zhqty; //超量倍增 | |
2291 | + var num = vv['num'] - vv.zhqty; //购买数量减去超量 | |
2292 | + if (num > 0) { | |
2293 | + bz_num_ok = bz_num - num; | |
2294 | + if (bz_num_ok <= 0) { | |
2295 | + //超量倍增满足,超量倍增就等于倍数 | |
2296 | + bz_num_ok = bz_num; | |
2297 | + } else { | |
2298 | + //超量倍增不满足,倍数要减去多出得 | |
2299 | + // be=be-bz_num_ok; | |
2300 | + if (num % vv.zhqty == 0) { | |
2301 | + be = num / vv.zhqty; | |
2302 | + } else { | |
2303 | + be = Math.floor(num / vv.zhqty) | |
2304 | + } | |
2305 | + bz_num_ok = be * vv.zhqty; | |
2306 | + } | |
2307 | + for (let j = 0; j < bz_num_ok; j++) { | |
2271 | 2308 | let index = no_in_arr.findIndex(i => { |
2272 | - return item1.goods_id === i.goods_id | |
2309 | + return vv.goods_id === i.goods_id | |
2273 | 2310 | }) |
2274 | 2311 | if (index > -1) { |
2275 | - // delete_num++ | |
2312 | + delete_num++ | |
2276 | 2313 | no_in_arr.splice(index, 1) |
2277 | 2314 | } |
2278 | 2315 | } |
2279 | - } | |
2280 | - aprice += be * aprice; | |
2281 | - } | |
2282 | - } else { | |
2283 | - var vv = zhqty_bz[0]; | |
2284 | - var bz_num = be * vv.zhqty; //超量倍增 | |
2285 | - var num = vv['num'] - vv.zhqty; //购买数量减去超量 | |
2286 | - if (num > 0) { | |
2287 | - bz_num_ok = bz_num - num; | |
2288 | - if (bz_num_ok <= 0) { | |
2289 | - //超量倍增满足,超量倍增就等于倍数 | |
2290 | - bz_num_ok = bz_num; | |
2291 | 2316 | } else { |
2292 | - //超量倍增不满足,倍数要减去多出得 | |
2293 | - // be=be-bz_num_ok; | |
2294 | - if (num % vv.zhqty == 0) { | |
2295 | - be = num / vv.zhqty; | |
2296 | - } else { | |
2297 | - be = Math.floor(num / vv.zhqty) | |
2298 | - } | |
2299 | - bz_num_ok = be * vv.zhqty; | |
2300 | - } | |
2301 | - for (let j = 0; j < bz_num_ok; j++) { | |
2302 | - let index = no_in_arr.findIndex(i => { | |
2303 | - return vv.goods_id === i.goods_id | |
2304 | - }) | |
2305 | - if (index > -1) { | |
2306 | - delete_num++ | |
2307 | - no_in_arr.splice(index, 1) | |
2308 | - } | |
2317 | + zhqty_len = 1; | |
2309 | 2318 | } |
2310 | - } else { | |
2311 | - zhqty_len = 1; | |
2312 | 2319 | } |
2313 | 2320 | } |
2314 | - } | |
2315 | - if (!zhqty_len) { | |
2316 | - //多个超量就不用pop了 | |
2317 | - aprice += be * aprice; | |
2318 | - let pop_num = be * this.data.act.zhbuyqty - delete_num; | |
2319 | - for (var m = 0; m < pop_num; m++) { | |
2320 | - no_in_arr.pop(); | |
2321 | + if (!zhqty_len) { | |
2322 | + //多个超量就不用pop了 | |
2323 | + aprice += be * aprice; | |
2324 | + let pop_num = be * this.data.act.zhbuyqty - delete_num; | |
2325 | + for (var m = 0; m < pop_num; m++) { | |
2326 | + no_in_arr.pop(); | |
2327 | + } | |
2321 | 2328 | } |
2322 | 2329 | } |
2330 | + | |
2323 | 2331 | } |
2324 | 2332 | |
2325 | 2333 | //算一下剩余的钱 | ... | ... |
pages/cart/cart/cart.js
... | ... | @@ -550,7 +550,7 @@ Page({ |
550 | 550 | } |
551 | 551 | |
552 | 552 | //-- 如果有优惠促销,和阶梯促销,要看下有没有组合购,搭配购,看一下优惠促销和阶梯促销谁是指定商品参与的 -- |
553 | - if(item.prom_type==3 || item.prom_type==10){ | |
553 | + if(item.prom_type==0 || item.prom_type==3 || item.prom_type==10){ | |
554 | 554 | |
555 | 555 | var c_prom_type=0; |
556 | 556 | var c_prom_id=0; |
... | ... | @@ -569,6 +569,7 @@ Page({ |
569 | 569 | if(zh_fd && zh_fd.length){ |
570 | 570 | c_prom_type=zh_fd[0].prom_type; |
571 | 571 | c_prom_id=zh_fd[0].act_id; |
572 | + return; | |
572 | 573 | } |
573 | 574 | |
574 | 575 | //-- 先看一下有没有搭配购 -- |
... | ... | @@ -578,6 +579,7 @@ Page({ |
578 | 579 | if(dp_fd && dp_fd.length){ |
579 | 580 | c_prom_type=dp_fd[0].prom_type; |
580 | 581 | c_prom_id=dp_fd[0].act_id; |
582 | + return; | |
581 | 583 | } |
582 | 584 | |
583 | 585 | //-- 先看一下有没有指定优惠促销 -- |
... | ... | @@ -587,6 +589,7 @@ Page({ |
587 | 589 | if(yh_fd && yh_fd.length){ |
588 | 590 | c_prom_type=yh_fd[0].prom_type; |
589 | 591 | c_prom_id=yh_fd[0].act_id; |
592 | + return; | |
590 | 593 | } |
591 | 594 | |
592 | 595 | //-- 先看一下有没有指定阶梯促销 -- | ... | ... |