From 11466af4912387d6d114f9bd9333db9279f37803 Mon Sep 17 00:00:00 2001 From: yvan.ni Date: Mon, 17 Apr 2023 17:15:51 +0800 Subject: [PATCH] 多促销的优化 --- packageE/pages/cart/cart2/cart2.js | 127 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------ packageE/pages/cart/cart2/cart2.wxml | 3 +++ packageE/pages/cart/cart2/cart2.wxss | 2 +- 3 files changed, 119 insertions(+), 13 deletions(-) diff --git a/packageE/pages/cart/cart2/cart2.js b/packageE/pages/cart/cart2/cart2.js index 0249297..46a4b49 100644 --- a/packageE/pages/cart/cart2/cart2.js +++ b/packageE/pages/cart/cart2/cart2.js @@ -705,7 +705,7 @@ Page({ } //使用sort排序 - prom_list.sort(comp(sort_type)); + prom_list.sort(comp); }, //-----真的获取购物车,入口-------- @@ -1799,6 +1799,7 @@ Page({ async buy_pro_group(item1, is_state) { //-- 代发商品不参与任何活动 -- if(item1.whsle_id) return false; + var th=this; var url = '/api/weshop/activitylist/listGoodActInfo2New'; var user_id = getApp().globalData.user_id; var zh_id = 0; @@ -1828,7 +1829,27 @@ Page({ //-- 如果有组合购的时候,同时还要判断单件商品的购买数量有没有满足组合购的条件 -- if (zh_id) { var is_zh_ok = 1; - + var zh_pro0 = null; + //-- 获取活动信息 -- + var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + zh_id + "/" + user_id; + await getApp().request.promiseGet(url, {}).then(res => { + if (res.data.code == 0 && res.data.data) { + //如果活动已经结束 + if (res.data.data.is_end == 1) { + is_zh_ok = 0; + } + if (ut.gettimestamp() > res.data.data.end_time) { + is_zh_ok = 0; + } + zh_pro0 = res.data.data; + //--- 在这里要判断一下活动的组合购总数量 --- + if (zh_pro0.zh_num > 0 && zh_pro0.zh_buy_num >= zh_pro0.zh_num) { + is_zh_ok = 0; + } + } else { + is_zh_ok = 0; + } + }) //--- 首先组合购的限购 --- if(is_zh_ok){ @@ -1849,6 +1870,10 @@ Page({ //-- 如果满足条件,才会显示活动 -- if (is_zh_ok) { + + //-- 组合的数组填充一下 -- + th.data.zuhe_map[zh_pro0.id] = zh_pro0; + var url1 = "/api/weshop/prom/zhbuyGoods/page"; var req_data = { page: 1, pageSize: 2000, @@ -1865,7 +1890,7 @@ Page({ }) var zh_gd_fd = gdlist.find(function (e) { - return e.goods_id == item.goods_id; + return e.goods_id == item1.goods_id; }) if (is_zh_ok) { @@ -1903,7 +1928,7 @@ Page({ if (is_state == 1) { //-- 看有没有必买商品不满足的时候 -- var f_gd = gdlist.find(function (e) { - return e.zhqty > 0 && e.goods_id != item.goods_id; + return e.zhqty > 0 && e.goods_id != item1.goods_id; }) if (f_gd) { is_zh_ok = 0; @@ -1916,21 +1941,37 @@ Page({ //判断组合购活动是不是满足 if(is_zh_ok){ if(!item1.more_cx) item1.more_cx=[]; - item1.more_cx.push({prom_type:7,prom_id:zh_id,gdlist:gdlist}) + var show_time=ut.formatTime(zh_pro0.start_time)+"至"+ ut.formatTime(zh_pro0.end_time); + item1.more_cx.push({ + prom_type:7,prom_id:zh_id,gdlist:gdlist, + title: zh_pro0.name, + show_time: show_time, + id:zh_id + }) } } } + } //调用接口判断优惠, var m_res=await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromListNew1/" + os.stoid + "/" + item1.goods_id + "/0" + "/" + user_id, {}); if(m_res && m_res.data.code == 0 && m_res.data.data){ - var r_data = res.data.data; + var r_data = m_res.data.data; //-- 如果是搭配购的时候 -- if (r_data.collocationList) { if(!item1.more_cx) item1.more_cx=[]; - item1.more_cx.push({prom_type:5,prom_id: r_data.collocationPromList.id}); + + var show_price= '¥'+r_data.collocationPromList.max+'-'+ r_data.collocationPromList.min; + var show_time=ut.formatTime(r_data.collocationPromList.start_time)+"至"+ ut.formatTime(r_data.collocationPromList.end_time); + + item1.more_cx.push({ + prom_type:5,prom_id: r_data.collocationPromList.id, + title: r_data.collocationPromList.title, + show_time: show_time, + id:r_data.collocationPromList.id, + }); } //-- 如果是阶梯促销的时候 -- if (r_data.ladderLists) { @@ -1938,10 +1979,48 @@ Page({ //-- 判断会员能不能参与阶梯促销 -- await getApp().request.promiseGet("/api/weshop/prom/ladderForm/getNew/" + os.stoid + "/" + user_id + "/" + act_id, {}).then(res => { if (res.data.code == 0 && res.data.data) { + th.data.ladder_map[act_id] = res.data.data; if(!item1.more_cx) item1.more_cx=[]; - item1.more_cx.push({prom_type:10,prom_id: act_id}); + + var prom_content = ""; + + for (let jj in r_data.ladderLists) { + if (r_data.ladderLists[jj].discount == 10) { + prom_content += "第" + (parseInt(jj) + 1) + "件原价,"; + } else { + prom_content += "第" + (parseInt(jj) + 1) + "件" + r_data.ladderLists[jj].discount + "折,"; + } + } + prom_content = ut.sub_last(prom_content); + + var s_time=res.data.data.start_time; + var e_time=res.data.data.end_time; + + item1.more_cx.push({ + prom_type:10,prom_id: act_id, + title: prom_content, + show_time: ut.formatTime(s_time) + "至" + ut.formatTime(e_time), + id:act_id + }); } }) + + if(th.data.ladder_map[act_id]){ + //-- 获取阶梯规则 -- + var url1 = "/api/weshop/prom/ladderList/list"; + var req_data0 = { + store_id: os.stoid, + form_id: act_id, + } + await getApp().request.promiseGet(url1, { + data: req_data0 + }).then(rs1 => { + if (rs1.data.code == 0 && rs1.data.data) { + var gdlist = rs1.data.data; + th.data.ladder_map[act_id].ladder_list = gdlist; + } + }) + } } //-- 优惠促销的时候 -- 此时要注意活动的限购次数,以及活动的购买金额或者购买数量有没有满足 if (r_data.promGoodsLists) { @@ -1957,7 +2036,33 @@ Page({ //--- 这个地方是在计算优惠促销的限购 --- if(!fir_act.limit_num || th.data.user_pre_buynum 0) more_arr.push('减价'+fir_act.money+'元'); + if (fir_act.sale > 0) more_arr.push('打'+fir_act.sale+'折'); + if (fir_act.past ==1) more_arr.push('包邮'); + if (fir_act.intValue > 0) more_arr.push('送'+fir_act.intValue+'积分'); + if (fir_act.couponId > 0) more_arr.push('送'+fir_act.couponMoney+'元优惠券'); + if (fir_act.gift_id) { + var is_more_gf=fir_act.gift_id.split(',') + if(is_more_gf.length>1){ + more_arr.push('送赠品'); + }else{ + more_arr.push('送'+fir_act.goods_name+' x'+fir_act.zp_num); + } + } + if (fir_act.lb_id) more_arr.push('送'+fir_act.lbtitle); + if (fir_act.zxlb_id) more_arr.push('送'+fir_act.zxlbtitle); + + var push_item={ + prom_type:3,prom_id: fir_act.prom_id,fir_act:fir_act, + condition: fir_act.condition + (fir_act.prom_type == 1 ? '件' : '元'), + limit: '每人' + (fir_act.limit_num ? '限参与' + fir_act.limit_num + '次' : '参与不限次'), + more: more_arr, + id:fir_act.prom_id + }; + //--- 如果是一件商品的时候,那么就要判断这个商品。同时商品的购买数量有没有满足 --- if (is_state == 1) { //-- 按件进行计算 -- @@ -1967,7 +2072,7 @@ Page({ } }else{ //-- 按数量进行计算 -- - var all_price = item.goods_price * item1.goods_num; + var all_price = item1.goods_price * item1.goods_num; if (parseFloat(fir_act.condition) > parseFloat(parseFloat(all_price).toFixed(2))) { item1.more_cx.push(push_item); } @@ -1981,10 +2086,8 @@ Page({ } } - }, - //---------------检查是否有收货地址------------------- checkAddressList: function () { var t = this; diff --git a/packageE/pages/cart/cart2/cart2.wxml b/packageE/pages/cart/cart2/cart2.wxml index bb88c69..f5b5018 100644 --- a/packageE/pages/cart/cart2/cart2.wxml +++ b/packageE/pages/cart/cart2/cart2.wxml @@ -1,3 +1,6 @@ + + + diff --git a/packageE/pages/cart/cart2/cart2.wxss b/packageE/pages/cart/cart2/cart2.wxss index 6b8a7c6..27613fe 100644 --- a/packageE/pages/cart/cart2/cart2.wxss +++ b/packageE/pages/cart/cart2/cart2.wxss @@ -540,9 +540,9 @@ transform: rotate(-135deg); line-height: 35rpx; text-align: center; margin-right: 20rpx +} -} .xc-hooks { width: 30rpx; height: 30rpx; -- libgit2 0.21.4