From f91875e72e8dd5982109edca6f7d284a8d12a5b5 Mon Sep 17 00:00:00 2001 From: 苏由福 <540433531@qq.com> Date: Fri, 26 Nov 2021 17:25:51 +0800 Subject: [PATCH] 小程序购买阶梯促销的问题优化 --- pages/cart/cart/cart.js | 2 +- pages/cart/cart2/cart2.js | 31 +++++++++++++++++++++++++------ pages/goods/goodsInfo/goodsInfo.js | 76 +++++++++++++++++++++++++++++++++++++++++++++++----------------------------- pages/goods/goodsInfo/goodsInfo.wxml | 62 ++++++++++++++++++++++++++++++++++++-------------------------- pages/goods/goodsList/goodsList.js | 36 ++++++++++++++++++++++++++++++++++-- pages/goods/goodsList/goodsList.wxml | 2 +- utils/LoadMore.js | 65 +++++++++++++++++++++++++++++++---------------------------------- 7 files changed, 175 insertions(+), 99 deletions(-) diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js index dc19a39..d30beab 100644 --- a/pages/cart/cart/cart.js +++ b/pages/cart/cart/cart.js @@ -530,7 +530,7 @@ Page({ var isok = 1; var is_flag=1; var act=null; - var url="/api/weshop/prom/ladderForm/get/"+os.stoid+"/"+item.prom_id; + var url="/api/weshop/prom/ladderForm/getNew/"+os.stoid+"/"+user_id+"/"+item.prom_id; await getApp().request.promiseGet(url, {}).then(res => { console.log(res,1000); if(res.data.code==0 && res.data.data){ diff --git a/pages/cart/cart2/cart2.js b/pages/cart/cart2/cart2.js index 9d93cdd..6427710 100644 --- a/pages/cart/cart2/cart2.js +++ b/pages/cart/cart2/cart2.js @@ -1439,7 +1439,7 @@ Page({ for (var j = 0; j < item.length; j++) { var is_no_zh=0; - if(item[j].prom_type!=7 || item[j].prom_type!=10 ) is_no_zh=1; + if(item[j].prom_type!=7 && item[j].prom_type!=10 ) is_no_zh=1; //组合购的商品,且有订单优惠的叠加,is_orderyh就是优惠叠加 if(item[j].prom_type==7 && zh_prom_goods && zh_prom_goods[item[j].prom_id] @@ -1449,7 +1449,7 @@ Page({ } //组合购的商品,且有订单优惠的叠加,is_orderyh就是优惠叠加 if(item[j].prom_type==10 && ladder_prom_goods && ladder_prom_goods[item[j].prom_id] - && th.data.ladder_map[item[j].prom_id].is_orderyh ) + && th.data.ladder_map[item[j].prom_id].is_useorderyh ) { is_no_zh=1; } @@ -1473,7 +1473,6 @@ Page({ //找到那些可以订单优惠叠加的 for(let ij in zh_prom_goods){ let kitem=zh_prom_goods[ij]; - var is_has_zh=kitem.is_has_zh; if(kitem.act.is_orderyh) o_price_no_zh-=kitem.cut_price; } @@ -1487,8 +1486,7 @@ Page({ //找到那些可以订单优惠叠加的 for(let ij in ladder_prom_goods){ let kitem=ladder_prom_goods[ij]; - var is_has_zh=kitem.is_has_ladder; - if(th.data.ladder_map[ij].is_orderyh ) + if(th.data.ladder_map[ij].is_useorderyh ) o_price_no_zh-=kitem.cut_price; } } @@ -1683,6 +1681,13 @@ Page({ o_condition=o_price_no_zh-quan_price; } + //看一下是不是不用组合购的订单优惠的叠加 + if(is_has_ladder){ + o_condition=o_price_no_zh-quan_price; + } + + + var order_m = 0; //---判断是不是有订单优惠--- await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { @@ -2575,6 +2580,7 @@ Page({ switch (g_item.prom_type) { case 1: case 2: + case 10: goods.prom_type = g_item.prom_type; goods.prom_id = g_item.prom_id; break; @@ -3523,6 +3529,7 @@ Page({ get_cart_quan: async function (order_prom_list_cart) { var th = this; var is_xz_yh = 1; + var user_id=getApp().globalData.user_id; //等待值的出现 //getApp().waitfor2(this,"g_cart_q_time","order_prom_list_cart",async function () { //var arr=th.data.order_prom_list_cart; @@ -3556,7 +3563,19 @@ Page({ }).then(res => { if (res.data.code == 0) prom1 = res.data.data; }) - if(!prom1.isQuan){ + if(prom1 && !prom1.isQuan){ + continue; + } + } + + //--如果是团购,要判断有没有限制使用优惠券 + if(gd.prom_type == 10){ + var prom1=null; + await getApp().request.promiseGet("/api/weshop/prom/ladderForm/getNew/"+ os.stoid +"/"+user_id+"/"+ gd.prom_id, { + }).then(res => { + if (res.data.code == 0) prom1 = res.data.data; + }) + if(prom1 && prom1.isuse && prom1. is_usecoupon){ continue; } } diff --git a/pages/goods/goodsInfo/goodsInfo.js b/pages/goods/goodsInfo/goodsInfo.js index 0bbe0f7..5efdcab 100644 --- a/pages/goods/goodsInfo/goodsInfo.js +++ b/pages/goods/goodsInfo/goodsInfo.js @@ -1155,12 +1155,14 @@ Page({ //if(o.prom_type==4){ //newd.is_integral_normal=1; //} + //-----如果是秒杀,团购,积分购,拼团----- newd.prom_type = th.data.prom_type; newd.prom_id = th.data.prom_id; if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th); if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th); + th.add_cart_next(e, t, a, o, newd); //立即购买下一步 }) @@ -1229,7 +1231,6 @@ Page({ prom_type:th.data.sele_g.prom_type, }; - //---是不是从收藏夹出来的--- if (th.data.c_guide_id) { newd['guide_id'] = th.data.c_guide_id; @@ -1491,6 +1492,8 @@ Page({ } }); } else { + + i.post("/api/weshop/cart/save", { data: newd, success: function (t) { @@ -1509,7 +1512,6 @@ Page({ } else { - if(newd.prom_type==10){ //----先看会员在购物车中是否加入了该商品,立即购买的----- getApp().request.get("/api/weshop/cart/page", { @@ -1521,9 +1523,11 @@ Page({ success: function (res) { //-------如果购物车中有相关的数据--------- if (res.data.code==0 && res.data.data.total > 0) { - var item=res.data.data.pageData[0]; - var url = '/api/weshop/cart/del/' +e.data.stoid+ '/' + item.id; - getApp().request.delete(url, {}); + for(let j in res.data.data.pageData){ + let item_j=res.data.data.pageData[j]; + var url = '/api/weshop/cart/del/' +e.data.stoid+ '/' + item_j.id; + getApp().request.delete(url, {}); + } } newd.state=1; getApp().request.post("/api/weshop/cart/save", { @@ -1537,6 +1541,7 @@ Page({ } }) + return false; } @@ -5693,6 +5698,8 @@ Page({ //---检查有没有优惠活动--- check_is_youhui: function (gid, is_nor) { var th = this; + var user_id=getApp().globalData.user_id; + if(!user_id) user_id=0; //如果是普通购买的时候,要进行调用 if (is_nor) { getApp().request.get("/api/weshop/goods/getGoodsPromNormal/" + os.stoid + "/" + gid, { @@ -5726,6 +5733,32 @@ Page({ r_data.collocationPromList.max = (max + th.data.data.shop_price).toFixed(2); r_data.collocationPromList.min = (min + th.data.data.shop_price).toFixed(2); } + + if(r_data.ladderLists){ + var act_id=r_data.ladderLists[0].form_id; + //-- 判断会员能不能参与阶梯促销 -- + getApp().request.promiseGet("/api/weshop/prom/ladderForm/getNew/" + os.stoid+"/"+user_id + "/"+act_id, { + }).then(res=>{ + if(res.data.code==0 && res.data.data){ + 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); + th.data.prom_type=10; + th.data.prom_id=act_id; + th.setData({ + jieti_prom:prom_content, + ladder_act_id:act_id + }) + } + }) + } + th.setData({ order_prom: r_data.promOrder, collocationGoods: r_data.collocationPromList, @@ -5734,11 +5767,8 @@ Page({ th.is_show_more_buy(); } } - }) } - - }, closePoster() { @@ -6064,33 +6094,21 @@ Page({ getApp().request.promiseGet(url, {data:req_data}).then(async function (res) { if(res.data.code==0 && res.data.data && res.data.data.length){ var arr_data=res.data.data; + var new_arr=[]; for(let i in arr_data){ let item=arr_data[i]; - if(item.prom_type==10){ - var url1="/api/weshop/prom/ladderList/list?store_id="+os.stoid+"&form_id="+item.act_id; - await getApp().request.promiseGet(url1, {}).then(rs=>{ - if(rs.data.code==0 && rs.data.data && rs.data.data.length) { - var prom_content=""; - for(let jj in rs.data.data){ - if(rs.data.data[jj].discount==10){ - prom_content+="第"+(jj+1)+"件原价,"; - }else{ - prom_content+="第"+(jj+1)+"件"+rs.data.data[jj].discount+"折,"; - } - } - prom_content=ut.sub_last(prom_content); - item.prom_content=prom_content; - } - }) - } + //找不到活动要剔除 + if(!item.act_name) continue; + if(item.prom_type!=1) continue; + new_arr.push(item); } - if(res.data.data.length=1){ - th.data.prom_id=res.data.data[0].act_id; - th.data.prom_type=res.data.data[0].prom_type; + if(new_arr.length==1){ + th.data.prom_id=new_arr[0].act_id; + th.data.prom_type=new_arr[0].prom_type; } - th.setData({more_flash:arr_data}); + th.setData({more_flash:new_arr}); } }) }, diff --git a/pages/goods/goodsInfo/goodsInfo.wxml b/pages/goods/goodsInfo/goodsInfo.wxml index 1c30b8d..9660c54 100644 --- a/pages/goods/goodsInfo/goodsInfo.wxml +++ b/pages/goods/goodsInfo/goodsInfo.wxml @@ -614,6 +614,24 @@ + + + + 阶梯促 + + + + {{jieti_prom}} + + + + + + + + + @@ -654,36 +672,30 @@ - - - 秒杀 - - - - - - {{item.act_name}} - - (活动时间:{{tool.format_tt(item.s_time)}} - {{tool.format_tt(item.e_time)}}) - + + + 秒杀 + + + + + + {{item.act_name}} + + (活动时间:{{tool.format_tt(item.s_time)}} - {{tool.format_tt(item.e_time)}}) - - - - - - - 阶梯促 - - {{item.prom_content}} - - - + + + + + + @@ -691,8 +703,6 @@ - - diff --git a/pages/goods/goodsList/goodsList.js b/pages/goods/goodsList/goodsList.js index bbc3986..4a807b7 100644 --- a/pages/goods/goodsList/goodsList.js +++ b/pages/goods/goodsList/goodsList.js @@ -67,8 +67,12 @@ Page({ if (0 != t.is_new && t.is_new != undefined) { url += "&is_new=" + t.is_new; } if (0 != t.is_hot && t.is_hot != undefined) { url += "&is_hot=" + t.is_hot; } - - + if (0 != t.ladder_id && t.ladder_id != undefined) { url += "&ladder_id=" + t.ladder_id; } + + var user_id=getApp().globalData.user_id; + if(!user_id) user_id=0; + url += "&user_id="+user_id; + // 优惠促销列表 if(t.prom_goods_id) { url += '&prom_goods_id=' + t.prom_goods_id; @@ -94,6 +98,34 @@ Page({ } }) } + + //--- 阶梯优惠活动的凑单 --- + if(t.ladder_id){ + var user_id=getApp().globalData.user_id; + if(!user_id) user_id=0; + getApp().request.promiseGet("/api/weshop/prom/ladderForm/getNew/"+oo.stoid+"/"+user_id+"/"+t.ladder_id,{ + }).then(res=>{ + if(res.data.code==0 && res.data.data){ + var arr= res.data.data; + var url1="/api/weshop/prom/ladderList/list?store_id="+oo.stoid+"&form_id="+arr.id; + getApp().request.promiseGet(url1, {}).then(rs=>{ + if(rs.data.code==0 && rs.data.data && rs.data.data.length) { + var prom_content=""; + for(let jj in rs.data.data){ + if(rs.data.data[jj].discount==10){ + prom_content+="第"+(parseInt(jj)+1)+"件原价,"; + }else{ + prom_content+="第"+(parseInt(jj)+1)+"件"+rs.data.data[jj].discount+"折,"; + } + } + prom_content=ut.sub_last(prom_content); + th.setData({jieti_prom:prom_content}) + } + }) + } + }) + } + this.requestGoodsList(url); getApp().getConfig2(function(rs){ //计算等级价相关 diff --git a/pages/goods/goodsList/goodsList.wxml b/pages/goods/goodsList/goodsList.wxml index e1c104b..34a33df 100644 --- a/pages/goods/goodsList/goodsList.wxml +++ b/pages/goods/goodsList/goodsList.wxml @@ -13,7 +13,7 @@ - 阶梯促销:第一件原价,第二件9折,第三件8折 + 阶梯促销:{{jieti_prom}} diff --git a/utils/LoadMore.js b/utils/LoadMore.js index 7c405f1..15e6cf2 100644 --- a/utils/LoadMore.js +++ b/utils/LoadMore.js @@ -59,52 +59,49 @@ var e = function() { var n = !0; var i, r = s.data.listName, l = s.data.resultName, d = s.data.resultListName; - i = "" != r ? t.data.data[r] : t.data.data.pageData; //data.pageData是接口固定会出现的,封装好了 + i = "" != r ? t.data.data[r] : (t.data.data && t.data.data.pageData?t.data.data.pageData:null); //data.pageData是接口固定会出现的,封装好了 var u = !1, g = null, c = s.data.page; - console.log('loadmore'); - console.log(t.data.data.pageData); - console.log(c ); - //如果已经的第二页的时候,就是把数据加入数组 if (c !=undefined && c.data[l]) { u = !0; var f = null; f = "" != d ? c.data[l][d] : c.data[l], [].push.apply(f, i), g = c.data[l]; - } else g = t.data.data.pageData; + } else g = (t.data.data && t.data.data.pageData?t.data.data.pageData:null); //格式化 var glist=""; - - for (var ii = 0; ii < g.length; ii++) { - //if(g[i].prom_type == 1 || g[i].prom_type == 2 || g[i].prom_type == 6) { - if (g[ii].prom_type && g[ii].prom_type == 1) { - glist += g[ii].goods_id+","; - } - if (g[ii].original_img!=undefined){ - if (g[ii].original_img.indexOf(oo.imghost)==-1) - g[ii].original_img = oo.imghost + g[ii].original_img; - } - - if (g[ii].add_time != undefined && rurl.indexOf("goodscollect")<0){ - var tx = g[ii].add_time + ""; - if (tx.indexOf('-') == -1) { - g[ii].add_time = ut.formatTime(g[ii].add_time, 'yyyy-MM-dd hh:mm:ss'); + if(g) { + for (var ii = 0; ii < g.length; ii++) { + //if(g[i].prom_type == 1 || g[i].prom_type == 2 || g[i].prom_type == 6) { + if (g[ii].prom_type && g[ii].prom_type == 1) { + glist += g[ii].goods_id + ","; + } + if (g[ii].original_img != undefined) { + if (g[ii].original_img.indexOf(oo.imghost) == -1) + g[ii].original_img = oo.imghost + g[ii].original_img; + } + + if (g[ii].add_time != undefined && rurl.indexOf("goodscollect") < 0) { + var tx = g[ii].add_time + ""; + if (tx.indexOf('-') == -1) { + g[ii].add_time = ut.formatTime(g[ii].add_time, 'yyyy-MM-dd hh:mm:ss'); + } + } + if (rurl.indexOf('comment/page') != -1) { + console.log('comment/page'); + console.log(g[ii].img); + var tx1 = g[ii].img; + + if (tx1 != "" && tx1 != null && ut.isString(tx1)) { + var arr = ut.unserialize(tx1); + g[ii].img = arr; + } else if (!ut.isArray(tx1)) { + g[ii].img = ""; + } + } } - } - if (rurl.indexOf('comment/page')!=-1){ - console.log('comment/page'); - console.log(g[ii].img); - var tx1 = g[ii].img; - - if (tx1 != "" && tx1 != null && ut.isString(tx1)){ - var arr = ut.unserialize(tx1); - g[ii].img=arr; - } else if (!ut.isArray(tx1)){ - g[ii].img=""; - } - } } -- libgit2 0.21.4