From b75d2157449c895e031ce185782aecdfc7371ec8 Mon Sep 17 00:00:00 2001 From: yvan.ni Date: Thu, 31 Aug 2023 10:41:08 +0800 Subject: [PATCH] 购物车要达到优惠促销的条件,才来判断商品是不是要判断限购 --- pages/cart/cart/cart.js | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 82 insertions(+), 5 deletions(-) diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js index 933bdca..c902fac 100644 --- a/pages/cart/cart/cart.js +++ b/pages/cart/cart/cart.js @@ -3235,6 +3235,8 @@ Page({ var i_arr = this.data.requestData[i].goods; + //判断一下商品能不能满足优惠促销的条件 + await th.check_can_yh_pro(i_arr); for (var j = 0; j < i_arr.length; j++) { if (i_arr[j].selected && i_arr[j].is_gift != 1) { @@ -3255,7 +3257,6 @@ Page({ if (this.data.requestData[i].show_can_cx && (i_arr[j].prom_type == 3 || i_arr[j].prom_type == 7)) { var show_can_cx=this.data.requestData[i].show_can_cx; - //-- 查找选中了什么 -- for (var ik in show_can_cx) { var ch_map = show_can_cx[ik].ch_map; @@ -3279,8 +3280,9 @@ Page({ if(yh_by_map[ky]){ ky_n+=yh_by_map[ky]; } - //-- 判断优惠促销活动的商品的限购 -- - if(i_arr[j].prom_type==3 && fd1.act.goodslimit>0){ + + //-- 判断优惠促销活动的商品的限购,can_yh 表示商品满足优惠促销的条件 -- + if(i_arr[j].prom_type==3 && fd1.act.goodslimit>0 && i_arr[j].can_yh ){ var p_can_by=fd1.act.goodslimit-fd1.act.goodslimited; if(i_arr[j].goods_num+ky_n>p_can_by){ getApp().confirmBox(i_arr[j].goods_name + "超出活动限购数量"+fd1.act.goodslimit+"件"); @@ -3989,6 +3991,7 @@ Page({ }, + //跳到首页 goto: function (e) { var url = '/pages/index/index/index'; @@ -4321,6 +4324,7 @@ Page({ } }, + //优惠促销用户参与次数 async getUserBuyPromNum_pre(prom_id) { var userInfo = getApp().globalData.userInfo; @@ -4765,8 +4769,6 @@ Page({ }); }, - - //-- 开始显示活动的弹出 -- switch_cx_group: function (e) { var idx = e.currentTarget.dataset.index; @@ -5002,6 +5004,81 @@ Page({ 'code': 0, 'msg': '成功' }) + }, + + //-- 判断一下有没有满足优惠促销的条件 -- + check_can_yh_pro:async function (i_arr){ + var map={}; + for (let i = 0; i < i_arr.length; i++) { + var item=i_arr[i]; + if(item.is_gift) continue; + if(item.prom_type!=3) continue; + + if (map[item.prom_id]) { + var ob = map[item.prom_id]; + //-- 避免同一件商品重复添加 -- + if (ob.goods && ob.goods.length) { + var fid = ob.goods.findIndex(function (e) { + e.goods_id == item.goods_id + }) + if (fid > -1) continue; + } + ob.price += item.goods_price * item.goods_num; + ob.goods_num += item.goods_num; + ob.goods.push({ goods_id: item.goods_id, goods_price: item.goods_price, goods_num: item.goods_num }); + } else { + var prom = null; + await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + item.prom_id, {}).then(res => { + if (res.data.code == 0) { + prom = res.data.data; + } + }) + + var ob = {}; + ob.is_bz = prom.is_bz; + ob.prom_id=item.prom_id; + ob.price = item.goods_price * item.goods_num; + ob.goods_num = item.goods_num; + ob.goods = new Array(); + ob.goods.push({ goods_id: item.goods_id, goods_price: item.goods_price, goods_num: item.goods_num }); + map[item.prom_id] = ob; + } + } + + var res=null; + for (const mapKey in map) { + var item_map=map[mapKey]; + //开始判断能不能参与优惠 + res=await getApp().request.promiseGet("/api/weshop/goods/getDiscount", { + data: { + price: parseFloat(item_map.price).toFixed(2), prom_id: item_map.prom_id, + goods_num: item_map.goods_num, user_id: getApp().globalData.user_id, + is_bz: item_map.is_bz + } + }) + if (res.data.code == 0 && res.data.data.condition) { + + for (let i = 0; i < i_arr.length; i++) { + var item_g = i_arr[i]; + if (item_g.is_gift) continue; + + //-- 避免同一件商品重复添加 -- + if (item_map.goods && item_map.goods.length) { + var fid = item_map.goods.findIndex(function (e) { + e.goods_id == item_g.goods_id + }) + if (fid > -1) continue; + } + //判断商品是可以参与优惠促销的 + i_arr[i].can_yh=1; + } + + } + + } + + + } -- libgit2 0.21.4