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,9 +3157,9 @@ Page({ | ||
3157 | } | 3157 | } |
3158 | //-- 如果是商品的结算 -- | 3158 | //-- 如果是商品的结算 -- |
3159 | if (check_is_goods_selected) { | 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 | var g_arr = new Array(); //已选的商品列表 | 3163 | var g_arr = new Array(); //已选的商品列表 |
3164 | var user_id = getApp().globalData.user_id; | 3164 | var user_id = getApp().globalData.user_id; |
3165 | var th = this; | 3165 | var th = this; |
@@ -3167,22 +3167,22 @@ Page({ | @@ -3167,22 +3167,22 @@ Page({ | ||
3167 | var normal_arr = {}; | 3167 | var normal_arr = {}; |
3168 | var ab = 0; //选中 | 3168 | var ab = 0; //选中 |
3169 | wx.showLoading(); | 3169 | wx.showLoading(); |
3170 | - let checkArr7 = []; //组合购选中的数据 | ||
3171 | 3170 | ||
3171 | + let checkArr7 = []; //组合购选中的数据 | ||
3172 | let checkObj3 = {}; //优惠促销次数判断 | 3172 | let checkObj3 = {}; //优惠促销次数判断 |
3173 | 3173 | ||
3174 | var zh_buyed_m={}; | 3174 | var zh_buyed_m={}; |
3175 | var zh_limit_m={} | 3175 | var zh_limit_m={} |
3176 | var zh_all_ck={}; | 3176 | var zh_all_ck={}; |
3177 | 3177 | ||
3178 | - | ||
3179 | // let checkOff=false | 3178 | // let checkOff=false |
3180 | for (var i = 0; i < this.data.requestData.length; i++) { | 3179 | for (var i = 0; i < this.data.requestData.length; i++) { |
3180 | + //-- 循环每一个活动 -- | ||
3181 | var i_arr = this.data.requestData[i].goods; | 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 | if (i_arr[j].selected && i_arr[j].is_gift != 1) { | 3183 | if (i_arr[j].selected && i_arr[j].is_gift != 1) { |
3184 | if (i_arr[j].is_pd_normal || i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3) { | 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,6 +3243,16 @@ Page({ | ||
3243 | checkObj3[i_arr[j].prom_id] = [i]; | 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 | //map 的key是不会重复,会覆盖,, | 3256 | //map 的key是不会重复,会覆盖,, |
3247 | var ie = { | 3257 | var ie = { |
3248 | goods_id: i_arr[j].goods_id, | 3258 | goods_id: i_arr[j].goods_id, |
@@ -3251,6 +3261,7 @@ Page({ | @@ -3251,6 +3261,7 @@ Page({ | ||
3251 | prom_id: i_arr[j].prom_id, | 3261 | prom_id: i_arr[j].prom_id, |
3252 | prom_type: i_arr[j].prom_type, | 3262 | prom_type: i_arr[j].prom_type, |
3253 | }; | 3263 | }; |
3264 | + | ||
3254 | //判断是不是线下取价 | 3265 | //判断是不是线下取价 |
3255 | if (i_arr[j].is_offline) { | 3266 | if (i_arr[j].is_offline) { |
3256 | ie.is_offline = i_arr[j].is_offline; | 3267 | ie.is_offline = i_arr[j].is_offline; |
@@ -3266,7 +3277,14 @@ Page({ | @@ -3266,7 +3277,14 @@ Page({ | ||
3266 | } else { | 3277 | } else { |
3267 | map.set(i_arr[j].goods_id + "", i_arr[j].goods_num); | 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 | ab = 1; | 3288 | ab = 1; |
3271 | 3289 | ||
3272 | //-- 获取促销活动是不是有参与 -- | 3290 | //-- 获取促销活动是不是有参与 -- |
@@ -3301,7 +3319,6 @@ Page({ | @@ -3301,7 +3319,6 @@ Page({ | ||
3301 | 3319 | ||
3302 | } | 3320 | } |
3303 | 3321 | ||
3304 | - | ||
3305 | //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存--- | 3322 | //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存--- |
3306 | 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 || | 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 | i_arr[j].need_downlow_num) && th.data.sales_rules >= 2 && i_arr[j].is_gift != 1 && !i_arr[j].whsle_id) { | 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,6 +3454,9 @@ Page({ | ||
3437 | } | 3454 | } |
3438 | 3455 | ||
3439 | 3456 | ||
3457 | + //glist = glist.substring(0, glist.length - 1); | ||
3458 | + //--取一下商品的限购 以及活动的限购,redis数量- | ||
3459 | + //-- 组合购的控制 --- | ||
3440 | if (checkArr7.length > 0) { | 3460 | if (checkArr7.length > 0) { |
3441 | let checkStr = [] | 3461 | let checkStr = [] |
3442 | checkArr7.map(item => { | 3462 | checkArr7.map(item => { |
@@ -3472,173 +3492,9 @@ Page({ | @@ -3472,173 +3492,9 @@ Page({ | ||
3472 | wx.hideLoading(); | 3492 | wx.hideLoading(); |
3473 | return false; | 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 | } else if (res.cancel) { | 3498 | } else if (res.cancel) { |
3643 | wx.hideLoading(); | 3499 | wx.hideLoading(); |
3644 | console.log('用户点击取消') | 3500 | console.log('用户点击取消') |
@@ -3667,167 +3523,12 @@ Page({ | @@ -3667,167 +3523,12 @@ Page({ | ||
3667 | return false; | 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 | } else { | 3532 | } else { |
3832 | 3533 | ||
3833 | //-- 开始服务卡的购物车购买 -- | 3534 | //-- 开始服务卡的购物车购买 -- |
@@ -3862,6 +3563,179 @@ Page({ | @@ -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 | set_last: function (ab, isok, gname) { | 3740 | set_last: function (ab, isok, gname) { |
3867 | if (isok == 0) { | 3741 | if (isok == 0) { |
@@ -4679,21 +4553,34 @@ Page({ | @@ -4679,21 +4553,34 @@ Page({ | ||
4679 | return false; | 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 | getApp().request.promiseGet(url, { | 4571 | getApp().request.promiseGet(url, { |
4692 | - data: req_data | 4572 | + data: req_d |
4693 | }).then(res => { | 4573 | }).then(res => { |
4694 | if (res.data.code == 0 && res.data.data) { | 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 | switch (item.prom_type) { | 4584 | switch (item.prom_type) { |
4698 | case 9: | 4585 | case 9: |
4699 | good_url = '/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo?goods_id=' + gd + '&group_id=' + item.act_id; | 4586 | good_url = '/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo?goods_id=' + gd + '&group_id=' + item.act_id; |