Commit f7c9be6acff398cb65489db9a75599652733c368
1 parent
e90d0615
购物车的优化
Showing
1 changed file
with
230 additions
and
343 deletions
pages/cart/cart/cart.js
| ... | ... | @@ -3157,9 +3157,9 @@ Page({ |
| 3157 | 3157 | } |
| 3158 | 3158 | //-- 如果是商品的结算 -- |
| 3159 | 3159 | if (check_is_goods_selected) { |
| 3160 | - var glist = ""; //用逗号隔开的 | |
| 3161 | - var map = new Map(); //使用map值键进行运算 | |
| 3162 | - var map_limit = new Map(); //使用map值键进行存储限购 | |
| 3160 | + var glist = []; //用逗号隔开的 | |
| 3161 | + var map = new Map(); //使用map值键进行运算。值计算商品ID | |
| 3162 | + var map_limit = new Map(); //使用map值键进行存储限购,特定的活动的数量 | |
| 3163 | 3163 | var g_arr = new Array(); //已选的商品列表 |
| 3164 | 3164 | var user_id = getApp().globalData.user_id; |
| 3165 | 3165 | var th = this; |
| ... | ... | @@ -3167,22 +3167,22 @@ Page({ |
| 3167 | 3167 | var normal_arr = {}; |
| 3168 | 3168 | var ab = 0; //选中 |
| 3169 | 3169 | wx.showLoading(); |
| 3170 | - let checkArr7 = []; //组合购选中的数据 | |
| 3171 | 3170 | |
| 3171 | + let checkArr7 = []; //组合购选中的数据 | |
| 3172 | 3172 | let checkObj3 = {}; //优惠促销次数判断 |
| 3173 | 3173 | |
| 3174 | 3174 | var zh_buyed_m={}; |
| 3175 | 3175 | var zh_limit_m={} |
| 3176 | 3176 | var zh_all_ck={}; |
| 3177 | 3177 | |
| 3178 | - | |
| 3179 | 3178 | // let checkOff=false |
| 3180 | 3179 | for (var i = 0; i < this.data.requestData.length; i++) { |
| 3180 | + //-- 循环每一个活动 -- | |
| 3181 | 3181 | var i_arr = this.data.requestData[i].goods; |
| 3182 | - for (var j = 0; j < i_arr.length; j++) { | |
| 3182 | + for (var j = 0; j < i_arr.length; j++){ | |
| 3183 | 3183 | if (i_arr[j].selected && i_arr[j].is_gift != 1) { |
| 3184 | 3184 | if (i_arr[j].is_pd_normal || i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3) { |
| 3185 | - normal_arr[i_arr[j].goods_id] = 1; | |
| 3185 | + normal_arr[i_arr[j].id] = 1; | |
| 3186 | 3186 | } |
| 3187 | 3187 | |
| 3188 | 3188 | //检查活动是不是满足了条件,或者要取满足条件的活动 |
| ... | ... | @@ -3243,6 +3243,16 @@ Page({ |
| 3243 | 3243 | checkObj3[i_arr[j].prom_id] = [i]; |
| 3244 | 3244 | } |
| 3245 | 3245 | } |
| 3246 | + | |
| 3247 | + //如果是普通购买的时候。 | |
| 3248 | + if(i_arr[j].is_integral_normal || i_arr[j].is_pd_normal ){ | |
| 3249 | + //-- 四大促销 -- | |
| 3250 | + if([3,5,7,10].indexOf(i_arr[j].prom_tyoe)==-1){ | |
| 3251 | + i_arr[j].prom_id=0; | |
| 3252 | + i_arr[j].prom_type=0; | |
| 3253 | + } | |
| 3254 | + } | |
| 3255 | + | |
| 3246 | 3256 | //map 的key是不会重复,会覆盖,, |
| 3247 | 3257 | var ie = { |
| 3248 | 3258 | goods_id: i_arr[j].goods_id, |
| ... | ... | @@ -3251,6 +3261,7 @@ Page({ |
| 3251 | 3261 | prom_id: i_arr[j].prom_id, |
| 3252 | 3262 | prom_type: i_arr[j].prom_type, |
| 3253 | 3263 | }; |
| 3264 | + | |
| 3254 | 3265 | //判断是不是线下取价 |
| 3255 | 3266 | if (i_arr[j].is_offline) { |
| 3256 | 3267 | ie.is_offline = i_arr[j].is_offline; |
| ... | ... | @@ -3266,7 +3277,14 @@ Page({ |
| 3266 | 3277 | } else { |
| 3267 | 3278 | map.set(i_arr[j].goods_id + "", i_arr[j].goods_num); |
| 3268 | 3279 | } |
| 3269 | - glist += i_arr[j].goods_id + ","; | |
| 3280 | + //glist += i_arr[j].goods_id + ","; | |
| 3281 | + | |
| 3282 | + if(!i_arr[j].is_gift){ | |
| 3283 | + var et= {"prom_type":i_arr[j].prom_type,"prom_id":i_arr[j].prom_id,"goods_id":i_arr[j].goods_id}; | |
| 3284 | + glist.push(et); | |
| 3285 | + } | |
| 3286 | + | |
| 3287 | + //判断有没有选择商品 | |
| 3270 | 3288 | ab = 1; |
| 3271 | 3289 | |
| 3272 | 3290 | //-- 获取促销活动是不是有参与 -- |
| ... | ... | @@ -3301,7 +3319,6 @@ Page({ |
| 3301 | 3319 | |
| 3302 | 3320 | } |
| 3303 | 3321 | |
| 3304 | - | |
| 3305 | 3322 | //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存--- |
| 3306 | 3323 | if ((i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3 || i_arr[j].prom_type == 5 || i_arr[j].prom_type == 7 || i_arr[j].prom_type == 10 || |
| 3307 | 3324 | i_arr[j].need_downlow_num) && th.data.sales_rules >= 2 && i_arr[j].is_gift != 1 && !i_arr[j].whsle_id) { |
| ... | ... | @@ -3437,6 +3454,9 @@ Page({ |
| 3437 | 3454 | } |
| 3438 | 3455 | |
| 3439 | 3456 | |
| 3457 | + //glist = glist.substring(0, glist.length - 1); | |
| 3458 | + //--取一下商品的限购 以及活动的限购,redis数量- | |
| 3459 | + //-- 组合购的控制 --- | |
| 3440 | 3460 | if (checkArr7.length > 0) { |
| 3441 | 3461 | let checkStr = [] |
| 3442 | 3462 | checkArr7.map(item => { |
| ... | ... | @@ -3472,173 +3492,9 @@ Page({ |
| 3472 | 3492 | wx.hideLoading(); |
| 3473 | 3493 | return false; |
| 3474 | 3494 | } |
| 3495 | + //购买商品的下一步 | |
| 3496 | + this.cart_goods_buy_next(glist,map_limit,map,g_arr) | |
| 3475 | 3497 | |
| 3476 | - glist = glist.substring(0, glist.length - 1); | |
| 3477 | - //--取一下商品的限购 以及活动的限购,redis数量-- | |
| 3478 | - rq.get("/api/weshop/goods/getGoodsListNum", { | |
| 3479 | - data: { | |
| 3480 | - goodsidlist: glist, | |
| 3481 | - store_id: oo.stoid | |
| 3482 | - }, | |
| 3483 | - async success(ee) { | |
| 3484 | - console.log(ee); | |
| 3485 | - if (ee.data.code == 0) { | |
| 3486 | - var ddata = ee.data.data, | |
| 3487 | - isok = 1, | |
| 3488 | - gname = "", | |
| 3489 | - err = ""; | |
| 3490 | - //--组装-- | |
| 3491 | - for (var ij = 0; ij < ddata.length; ij++) { | |
| 3492 | - var val = ddata[ij]; | |
| 3493 | - var obj = map_limit.get(val.goods_id + ""); | |
| 3494 | - if (obj) continue; | |
| 3495 | - | |
| 3496 | - var promgoodsbuynum = 0; | |
| 3497 | - var goodsbuynum = 0; | |
| 3498 | - | |
| 3499 | - //--要获得商品,该用户买了多少件,同步应用-- | |
| 3500 | - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { | |
| 3501 | - data: { | |
| 3502 | - store_id: oo.stoid, | |
| 3503 | - user_id: user_id, | |
| 3504 | - goods_id: val.goods_id, | |
| 3505 | - prom_type: val.prom_type, | |
| 3506 | - prom_id: val.prom_id | |
| 3507 | - }, | |
| 3508 | - }).then(res => { | |
| 3509 | - var buy_num_data = res.data.data; | |
| 3510 | - if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; | |
| 3511 | - goodsbuynum = buy_num_data.goodsbuynum; | |
| 3512 | - }) | |
| 3513 | - var ie = { | |
| 3514 | - promgoodsbuynum: promgoodsbuynum, | |
| 3515 | - goodsbuynum: goodsbuynum | |
| 3516 | - }; | |
| 3517 | - map_limit.set(val.goods_id + "", ie); | |
| 3518 | - } | |
| 3519 | - | |
| 3520 | - try { | |
| 3521 | - for (var ind in ddata) { | |
| 3522 | - var val = ddata[ind]; | |
| 3523 | - var num = map.get(val.goods_id + ""); | |
| 3524 | - if (num <= 0) { | |
| 3525 | - isok = 0; | |
| 3526 | - gname = val.goods_name; | |
| 3527 | - throw "购买数量不能为0"; | |
| 3528 | - return false; | |
| 3529 | - } | |
| 3530 | - | |
| 3531 | - if (val.prom_type == 1 || val.prom_type == 6) { | |
| 3532 | - if (num > val.store_count) { | |
| 3533 | - isok = 0; | |
| 3534 | - gname = val.goods_name; | |
| 3535 | - throw "超出库存"; | |
| 3536 | - return false; | |
| 3537 | - } | |
| 3538 | - } | |
| 3539 | - | |
| 3540 | - if (th.data.sales_rules == 1) { | |
| 3541 | - if (num > val.store_count) { | |
| 3542 | - isok = 0; | |
| 3543 | - gname = val.goods_name; | |
| 3544 | - throw "超出库存"; | |
| 3545 | - return false; | |
| 3546 | - } | |
| 3547 | - } | |
| 3548 | - if (num > val.redisnum && val.redisnum && !normal_arr[val.goods_id]) { | |
| 3549 | - isok = 0; | |
| 3550 | - gname = val.goods_name; | |
| 3551 | - throw "超出活动库存"; | |
| 3552 | - return false; | |
| 3553 | - } | |
| 3554 | - if (num > val.goods_num - val.buy_num && val.goods_num && !normal_arr[val.goods_id]) { | |
| 3555 | - isok = 0; | |
| 3556 | - gname = val.goods_name; | |
| 3557 | - throw "超出活动库存"; | |
| 3558 | - return false; | |
| 3559 | - } | |
| 3560 | - | |
| 3561 | - var buyed = map_limit.get(val.goods_id + ""); | |
| 3562 | - if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) { | |
| 3563 | - isok = 0; | |
| 3564 | - gname = val.goods_name; | |
| 3565 | - throw "超出商品限购"; | |
| 3566 | - return false; | |
| 3567 | - } | |
| 3568 | - | |
| 3569 | - if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0 && !normal_arr[val.goods_id]) { | |
| 3570 | - isok = 0; | |
| 3571 | - gname = val.goods_name; | |
| 3572 | - throw "超出活动限购"; | |
| 3573 | - return false; | |
| 3574 | - } | |
| 3575 | - | |
| 3576 | - var card_field = th.data.card_field; | |
| 3577 | - for (var i = 0; i < g_arr.length; i++) { | |
| 3578 | - | |
| 3579 | - if (g_arr[i].goods_id == val.goods_id) { | |
| 3580 | - | |
| 3581 | - //如果会员是等级会员,商品有等级价,且不是活动商品 | |
| 3582 | - if (card_field && val[card_field] > 0 && | |
| 3583 | - ((val.prom_type == 0 && g_arr[i].prom_type == 0) || val.prom_type == 3 || val.prom_type == 4 || val.prom_type == 5 || val.prom_type == 7 || val.prom_type == 10 || normal_arr[val.goods_id])) { | |
| 3584 | - if (g_arr[i].goods_price != val[card_field]) { | |
| 3585 | - isok = 0; | |
| 3586 | - gname = val.goods_name; | |
| 3587 | - throw "商品价格已经变化"; | |
| 3588 | - } | |
| 3589 | - } else { | |
| 3590 | - if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price && val.prom_price > 0) { | |
| 3591 | - isok = 0; | |
| 3592 | - gname = val.goods_name; | |
| 3593 | - throw "商品价格已经变化"; | |
| 3594 | - } | |
| 3595 | - } | |
| 3596 | - | |
| 3597 | - //-- 数据的更新 -- | |
| 3598 | - var data = { | |
| 3599 | - id: g_arr[i].id, | |
| 3600 | - selected: 1, | |
| 3601 | - store_id: oo.stoid, | |
| 3602 | - prom_type: g_arr[i].prom_type, | |
| 3603 | - prom_id: g_arr[i].prom_id, | |
| 3604 | - }; | |
| 3605 | - let gitem = checkArr7.find(item => item.goods_id == g_arr[i].goods_id) | |
| 3606 | - if (gitem) { | |
| 3607 | - data.prom_type = 0 | |
| 3608 | - data.prom_id = 0 | |
| 3609 | - } | |
| 3610 | - //-- 如果有线下取价的时候 -- | |
| 3611 | - if (g_arr[i].is_offline) { | |
| 3612 | - data.pricing_type = g_arr[i].pricing_type; | |
| 3613 | - data.offline_price = g_arr[i].offline_price; | |
| 3614 | - } | |
| 3615 | - rq.put("/api/weshop/cart/update", { | |
| 3616 | - data: data, | |
| 3617 | - success: function (ee) { | |
| 3618 | - console.log(ee); | |
| 3619 | - } | |
| 3620 | - }); | |
| 3621 | - } | |
| 3622 | - } | |
| 3623 | - | |
| 3624 | - } | |
| 3625 | - } catch (e) { | |
| 3626 | - err = e; | |
| 3627 | - } | |
| 3628 | - if (isok == 0) { | |
| 3629 | - t.confirmBox(gname + ":" + err); | |
| 3630 | - wx.hideLoading(); | |
| 3631 | - return false; | |
| 3632 | - } | |
| 3633 | - | |
| 3634 | - | |
| 3635 | - wx.hideLoading(); | |
| 3636 | - wx.navigateTo({ | |
| 3637 | - url: "/packageE/pages/cart/cart2/cart2" | |
| 3638 | - }); | |
| 3639 | - } | |
| 3640 | - } | |
| 3641 | - }); | |
| 3642 | 3498 | } else if (res.cancel) { |
| 3643 | 3499 | wx.hideLoading(); |
| 3644 | 3500 | console.log('用户点击取消') |
| ... | ... | @@ -3667,167 +3523,12 @@ Page({ |
| 3667 | 3523 | return false; |
| 3668 | 3524 | } |
| 3669 | 3525 | |
| 3670 | - glist = glist.substring(0, glist.length - 1); | |
| 3671 | - //--取一下商品的限购 以及活动的限购,redis数量-- | |
| 3672 | - rq.get("/api/weshop/goods/getGoodsListNum", { | |
| 3673 | - data: { | |
| 3674 | - goodsidlist: glist, | |
| 3675 | - store_id: oo.stoid | |
| 3676 | - }, | |
| 3677 | - async success(ee) { | |
| 3678 | - console.log(ee); | |
| 3679 | - if (ee.data.code == 0) { | |
| 3680 | - var ddata = ee.data.data, | |
| 3681 | - isok = 1, | |
| 3682 | - gname = "", | |
| 3683 | - err = ""; | |
| 3684 | - //--组装-- | |
| 3685 | - for (var ij = 0; ij < ddata.length; ij++) { | |
| 3686 | - var val = ddata[ij]; | |
| 3687 | - var obj = map_limit.get(val.goods_id + ""); | |
| 3688 | - if (obj) continue; | |
| 3689 | - | |
| 3690 | - var promgoodsbuynum = 0; | |
| 3691 | - var goodsbuynum = 0; | |
| 3692 | - | |
| 3693 | - //--要获得商品,该用户买了多少件,同步应用-- | |
| 3694 | - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { | |
| 3695 | - data: { | |
| 3696 | - store_id: oo.stoid, | |
| 3697 | - user_id: user_id, | |
| 3698 | - goods_id: val.goods_id, | |
| 3699 | - prom_type: val.prom_type, | |
| 3700 | - prom_id: val.prom_id | |
| 3701 | - }, | |
| 3702 | - }).then(res => { | |
| 3703 | - var buy_num_data = res.data.data; | |
| 3704 | - if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; | |
| 3705 | - goodsbuynum = buy_num_data.goodsbuynum; | |
| 3706 | - }) | |
| 3707 | - var ie = { | |
| 3708 | - promgoodsbuynum: promgoodsbuynum, | |
| 3709 | - goodsbuynum: goodsbuynum | |
| 3710 | - }; | |
| 3711 | - map_limit.set(val.goods_id + "", ie); | |
| 3712 | - } | |
| 3713 | - | |
| 3714 | - try { | |
| 3715 | - for (var ind in ddata) { | |
| 3716 | - var val = ddata[ind]; | |
| 3717 | - var num = map.get(val.goods_id + ""); | |
| 3718 | - if (num <= 0) { | |
| 3719 | - isok = 0; | |
| 3720 | - gname = val.goods_name; | |
| 3721 | - throw "购买数量不能为0"; | |
| 3722 | - return false; | |
| 3723 | - } | |
| 3724 | - | |
| 3725 | - if (val.prom_type == 1 || val.prom_type == 6) { | |
| 3726 | - if (num > val.store_count) { | |
| 3727 | - isok = 0; | |
| 3728 | - gname = val.goods_name; | |
| 3729 | - throw "超出库存"; | |
| 3730 | - return false; | |
| 3731 | - } | |
| 3732 | - } | |
| 3733 | - | |
| 3734 | - if (th.data.sales_rules == 1) { | |
| 3735 | - if (num > val.store_count) { | |
| 3736 | - isok = 0; | |
| 3737 | - gname = val.goods_name; | |
| 3738 | - throw "超出库存"; | |
| 3739 | - return false; | |
| 3740 | - } | |
| 3741 | - } | |
| 3742 | - if (num > val.redisnum && val.redisnum && !normal_arr[val.goods_id]) { | |
| 3743 | - isok = 0; | |
| 3744 | - gname = val.goods_name; | |
| 3745 | - throw "超出活动库存"; | |
| 3746 | - return false; | |
| 3747 | - } | |
| 3748 | - if (num > val.goods_num - val.buy_num && val.goods_num && !normal_arr[val.goods_id]) { | |
| 3749 | - isok = 0; | |
| 3750 | - gname = val.goods_name; | |
| 3751 | - throw "超出活动库存"; | |
| 3752 | - return false; | |
| 3753 | - } | |
| 3754 | - | |
| 3755 | - var buyed = map_limit.get(val.goods_id + ""); | |
| 3756 | - if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) { | |
| 3757 | - isok = 0; | |
| 3758 | - gname = val.goods_name; | |
| 3759 | - throw "超出商品限购"; | |
| 3760 | - return false; | |
| 3761 | - } | |
| 3526 | + //购买商品的下一步 | |
| 3527 | + this.cart_goods_buy_next(glist,map_limit,map,g_arr) | |
| 3528 | + } | |
| 3762 | 3529 | |
| 3763 | - if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0 && !normal_arr[val.goods_id]) { | |
| 3764 | - isok = 0; | |
| 3765 | - gname = val.goods_name; | |
| 3766 | - throw "超出活动限购"; | |
| 3767 | - return false; | |
| 3768 | - } | |
| 3769 | 3530 | |
| 3770 | - var card_field = th.data.card_field; | |
| 3771 | - for (var i = 0; i < g_arr.length; i++) { | |
| 3772 | - | |
| 3773 | - if (g_arr[i].goods_id == val.goods_id) { | |
| 3774 | - | |
| 3775 | - //如果会员是等级会员,商品有等级价,且不是活动商品 | |
| 3776 | - if (card_field && val[card_field] > 0 && | |
| 3777 | - ((val.prom_type == 0 && g_arr[i].prom_type == 0) || val.prom_type == 3 || val.prom_type == 4 || val.prom_type == 5 || val.prom_type == 7 || val.prom_type == 10 || normal_arr[val.goods_id])) { | |
| 3778 | - if (g_arr[i].goods_price != val[card_field]) { | |
| 3779 | - isok = 0; | |
| 3780 | - gname = val.goods_name; | |
| 3781 | - throw "商品价格已经变化"; | |
| 3782 | - } | |
| 3783 | - } else { | |
| 3784 | - if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price && val.prom_price > 0) { | |
| 3785 | - isok = 0; | |
| 3786 | - gname = val.goods_name; | |
| 3787 | - throw "商品价格已经变化"; | |
| 3788 | - } | |
| 3789 | - } | |
| 3790 | - | |
| 3791 | - //-- 数据的更新 -- | |
| 3792 | - var data = { | |
| 3793 | - id: g_arr[i].id, | |
| 3794 | - selected: 1, | |
| 3795 | - store_id: oo.stoid, | |
| 3796 | - prom_type: g_arr[i].prom_type, | |
| 3797 | - prom_id: g_arr[i].prom_id, | |
| 3798 | - }; | |
| 3799 | - | |
| 3800 | - //-- 如果有线下取价的时候 -- | |
| 3801 | - if (g_arr[i].is_offline) { | |
| 3802 | - data.pricing_type = g_arr[i].pricing_type; | |
| 3803 | - data.offline_price = g_arr[i].offline_price; | |
| 3804 | - } | |
| 3805 | - rq.put("/api/weshop/cart/update", { | |
| 3806 | - data: data, | |
| 3807 | - success: function (ee) { | |
| 3808 | - console.log(ee); | |
| 3809 | - } | |
| 3810 | - }); | |
| 3811 | - } | |
| 3812 | - } | |
| 3813 | 3531 | |
| 3814 | - } | |
| 3815 | - } catch (e) { | |
| 3816 | - err = e; | |
| 3817 | - } | |
| 3818 | - if (isok == 0) { | |
| 3819 | - t.confirmBox(gname + ":" + err); | |
| 3820 | - wx.hideLoading(); | |
| 3821 | - return false; | |
| 3822 | - } | |
| 3823 | - wx.hideLoading(); | |
| 3824 | - wx.navigateTo({ | |
| 3825 | - url: "/packageE/pages/cart/cart2/cart2" | |
| 3826 | - }); | |
| 3827 | - } | |
| 3828 | - } | |
| 3829 | - }); | |
| 3830 | - } | |
| 3831 | 3532 | } else { |
| 3832 | 3533 | |
| 3833 | 3534 | //-- 开始服务卡的购物车购买 -- |
| ... | ... | @@ -3862,6 +3563,179 @@ Page({ |
| 3862 | 3563 | } |
| 3863 | 3564 | }, |
| 3864 | 3565 | |
| 3566 | + //map_limit 是包含活动prom_type prom_id | |
| 3567 | + | |
| 3568 | + cart_goods_buy_next(glist,map_limit,map,g_arr){ | |
| 3569 | + //判断活动的限购,和readis数量 | |
| 3570 | + getApp().request.promisePost("/api/weshop/goods/listGoodsListNumNew", { | |
| 3571 | + is_json:1, | |
| 3572 | + data: { | |
| 3573 | + listNumNewDtos: glist, | |
| 3574 | + store_id: oo.stoid | |
| 3575 | + }, | |
| 3576 | + }).then( async ee=>{ | |
| 3577 | + console.log(ee); | |
| 3578 | + if (ee.data.code == 0) { | |
| 3579 | + var ddata = ee.data.data, | |
| 3580 | + isok = 1, | |
| 3581 | + gname = "", | |
| 3582 | + err = ""; | |
| 3583 | + //--组装-- | |
| 3584 | + for (var ij = 0; ij < ddata.length; ij++) { | |
| 3585 | + | |
| 3586 | + var val = ddata[ij]; | |
| 3587 | + var ky=val.goods_id + "-"+val.prom_type+'-'+val.prom_id; | |
| 3588 | + var obj = map_limit.get(ky); | |
| 3589 | + if (obj) continue; | |
| 3590 | + | |
| 3591 | + var promgoodsbuynum = 0; | |
| 3592 | + var goodsbuynum = 0; | |
| 3593 | + | |
| 3594 | + //--要获得商品,该用户买了多少件,同步应用-- | |
| 3595 | + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { | |
| 3596 | + data: { | |
| 3597 | + store_id: oo.stoid, | |
| 3598 | + user_id: getApp().globalData.user_id, | |
| 3599 | + goods_id: val.goods_id, | |
| 3600 | + prom_type: val.prom_type, | |
| 3601 | + prom_id: val.prom_id | |
| 3602 | + }, | |
| 3603 | + }).then(res => { | |
| 3604 | + var buy_num_data = res.data.data; | |
| 3605 | + if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; | |
| 3606 | + goodsbuynum = buy_num_data.goodsbuynum; | |
| 3607 | + }) | |
| 3608 | + var ie = { | |
| 3609 | + promgoodsbuynum: promgoodsbuynum, | |
| 3610 | + goodsbuynum: goodsbuynum | |
| 3611 | + }; | |
| 3612 | + map_limit.set(ky, ie); | |
| 3613 | + } | |
| 3614 | + | |
| 3615 | + try { | |
| 3616 | + for (var ind in ddata) { | |
| 3617 | + var val = ddata[ind]; | |
| 3618 | + var ky=val.goods_id + "-"+val.prom_type+'-'+val.prom_id; | |
| 3619 | + | |
| 3620 | + var num = map.get(val.goods_id+""); | |
| 3621 | + if (num <= 0) { | |
| 3622 | + isok = 0; | |
| 3623 | + gname = val.goods_name; | |
| 3624 | + throw "购买数量不能为0"; | |
| 3625 | + return false; | |
| 3626 | + } | |
| 3627 | + | |
| 3628 | + if (val.prom_type == 1 || val.prom_type == 2) { | |
| 3629 | + if (num > val.store_count) { | |
| 3630 | + isok = 0; | |
| 3631 | + gname = val.goods_name; | |
| 3632 | + throw "超出库存"; | |
| 3633 | + return false; | |
| 3634 | + } | |
| 3635 | + | |
| 3636 | + if (num > val.redisnum && val.redisnum) { | |
| 3637 | + isok = 0; | |
| 3638 | + gname = val.goods_name; | |
| 3639 | + throw "超出活动库存"; | |
| 3640 | + return false; | |
| 3641 | + } | |
| 3642 | + | |
| 3643 | + | |
| 3644 | + } | |
| 3645 | + | |
| 3646 | + if (th.data.sales_rules == 1) { | |
| 3647 | + if (num > val.store_count) { | |
| 3648 | + isok = 0; | |
| 3649 | + gname = val.goods_name; | |
| 3650 | + throw "超出库存"; | |
| 3651 | + return false; | |
| 3652 | + } | |
| 3653 | + } | |
| 3654 | + | |
| 3655 | + if (num > val.goods_num - val.buy_num && val.goods_num) { | |
| 3656 | + isok = 0; | |
| 3657 | + gname = val.goods_name; | |
| 3658 | + throw "超出活动库存"; | |
| 3659 | + return false; | |
| 3660 | + } | |
| 3661 | + | |
| 3662 | + var buyed = map_limit.get(ky); | |
| 3663 | + if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) { | |
| 3664 | + isok = 0; | |
| 3665 | + gname = val.goods_name; | |
| 3666 | + throw "超出商品限购"; | |
| 3667 | + return false; | |
| 3668 | + } | |
| 3669 | + | |
| 3670 | + if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0) { | |
| 3671 | + isok = 0; | |
| 3672 | + gname = val.goods_name; | |
| 3673 | + throw "超出活动限购"; | |
| 3674 | + return false; | |
| 3675 | + } | |
| 3676 | + | |
| 3677 | + var card_field = th.data.card_field; | |
| 3678 | + for (var i = 0; i < g_arr.length; i++) { | |
| 3679 | + | |
| 3680 | + if (g_arr[i].goods_id == val.goods_id && g_arr[i].prom_type==val.prom_type && g_arr[i].prom_id==val.id ) { | |
| 3681 | + | |
| 3682 | + //如果会员是等级会员,商品有等级价,且不是活动商品 | |
| 3683 | + if (card_field && val[card_field] > 0 && | |
| 3684 | + ((val.prom_type == 0 && g_arr[i].prom_type == 0) || val.prom_type == 3 || val.prom_type == 5 || val.prom_type == 7 || val.prom_type == 10)) { | |
| 3685 | + if (g_arr[i].goods_price != val[card_field]) { | |
| 3686 | + isok = 0; | |
| 3687 | + gname = val.goods_name; | |
| 3688 | + throw "商品价格已经变化"; | |
| 3689 | + } | |
| 3690 | + } else { | |
| 3691 | + if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price && val.prom_price > 0) { | |
| 3692 | + isok = 0; | |
| 3693 | + gname = val.goods_name; | |
| 3694 | + throw "商品价格已经变化"; | |
| 3695 | + } | |
| 3696 | + } | |
| 3697 | + | |
| 3698 | + //-- 数据的更新 -- | |
| 3699 | + var data = { | |
| 3700 | + id: g_arr[i].id, | |
| 3701 | + selected: 1, | |
| 3702 | + store_id: oo.stoid, | |
| 3703 | + prom_type: g_arr[i].prom_type, | |
| 3704 | + prom_id: g_arr[i].prom_id, | |
| 3705 | + }; | |
| 3706 | + | |
| 3707 | + //-- 如果有线下取价的时候 -- | |
| 3708 | + if (g_arr[i].is_offline) { | |
| 3709 | + data.pricing_type = g_arr[i].pricing_type; | |
| 3710 | + data.offline_price = g_arr[i].offline_price; | |
| 3711 | + } | |
| 3712 | + rq.put("/api/weshop/cart/update", { | |
| 3713 | + data: data, | |
| 3714 | + success: function (ee) { | |
| 3715 | + console.log(ee); | |
| 3716 | + } | |
| 3717 | + }); | |
| 3718 | + } | |
| 3719 | + } | |
| 3720 | + | |
| 3721 | + } | |
| 3722 | + } catch (e) { | |
| 3723 | + err = e; | |
| 3724 | + } | |
| 3725 | + if (isok == 0) { | |
| 3726 | + t.confirmBox(gname + ":" + err); | |
| 3727 | + wx.hideLoading(); | |
| 3728 | + return false; | |
| 3729 | + } | |
| 3730 | + wx.hideLoading(); | |
| 3731 | + wx.navigateTo({ | |
| 3732 | + url: "/packageE/pages/cart/cart2/cart2" | |
| 3733 | + }); | |
| 3734 | + } | |
| 3735 | + }) | |
| 3736 | + }, | |
| 3737 | + | |
| 3738 | + | |
| 3865 | 3739 | //结算到最后一个商品 |
| 3866 | 3740 | set_last: function (ab, isok, gname) { |
| 3867 | 3741 | if (isok == 0) { |
| ... | ... | @@ -4679,21 +4553,34 @@ Page({ |
| 4679 | 4553 | return false; |
| 4680 | 4554 | } |
| 4681 | 4555 | |
| 4682 | - var url = "/api/weshop/activitylist/getGoodActInfo"; | |
| 4683 | - var req_data = { | |
| 4684 | - store_id: os.stoid, | |
| 4685 | - goodsidlist: gd, | |
| 4686 | - is_detail: 1, | |
| 4687 | - user_id: user_id | |
| 4688 | - }; | |
| 4556 | + // var url = "/api/weshop/activitylist/getGoodActInfo"; | |
| 4557 | + // var req_data = { | |
| 4558 | + // store_id: os.stoid, | |
| 4559 | + // goodsidlist: gd, | |
| 4560 | + // is_detail: 1, | |
| 4561 | + // user_id: user_id | |
| 4562 | + // }; | |
| 4563 | + var url = '/api/weshop/activitylist/listGoodActInfo2New'; | |
| 4564 | + var req_d = { | |
| 4565 | + "store_id": os.stoid, | |
| 4566 | + "goods_id": gd, | |
| 4567 | + "user_id": user_id, | |
| 4568 | + } | |
| 4689 | 4569 | |
| 4690 | 4570 | //获取秒杀的多规格 |
| 4691 | 4571 | getApp().request.promiseGet(url, { |
| 4692 | - data: req_data | |
| 4572 | + data: req_d | |
| 4693 | 4573 | }).then(res => { |
| 4694 | 4574 | if (res.data.code == 0 && res.data.data) { |
| 4695 | - if (res.data.data.length == 1) { | |
| 4696 | - var item = res.data.data[0]; | |
| 4575 | + | |
| 4576 | + var arr = res.data.data; | |
| 4577 | + //-- 预热也要计算 -- | |
| 4578 | + var arr2 = arr.filter(function (e) { | |
| 4579 | + return e.s_time < ut.gettimestamp() || (e.warm_uptime && e.warm_uptime < ut.gettimestamp()) | |
| 4580 | + }) | |
| 4581 | + | |
| 4582 | + if (arr2.length == 1) { | |
| 4583 | + var item =arr2[0]; | |
| 4697 | 4584 | switch (item.prom_type) { |
| 4698 | 4585 | case 9: |
| 4699 | 4586 | good_url = '/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo?goods_id=' + gd + '&group_id=' + item.act_id; | ... | ... |