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 | } | ... | ... |