Commit f7c9be6acff398cb65489db9a75599652733c368

Authored by yvan.ni
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;