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