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