From 75f749f4a6bf5d306c3fd7cfa1171b4ce6952665 Mon Sep 17 00:00:00 2001 From: yvan.ni Date: Wed, 19 Apr 2023 10:49:51 +0800 Subject: [PATCH] 优惠促销多活动,订单确认页面和购物车页面的优化 --- packageE/pages/cart/cart2/cart2.js | 1351 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- packageE/pages/cart/cart2/cart2.json | 3 ++- packageE/pages/cart/cart2/cart2.wxml | 46 +++++++++++++++++++++++++--------------------- packageE/pages/cart/cart2/cart2.wxss | 4 ++-- packageE/pages/cart/cart2/filter.wxs | 10 +++++++++- packageE/pages/cart/cart2/ladder_calculate.js | 6 ++++++ packageE/pages/cart/cart2/zh_calculate.js | 4 ++++ pages/cart/cart/cart.js | 305 ++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 8 files changed, 645 insertions(+), 1084 deletions(-) diff --git a/packageE/pages/cart/cart2/cart2.js b/packageE/pages/cart/cart2/cart2.js index 2a2f12e..79fbf4d 100644 --- a/packageE/pages/cart/cart2/cart2.js +++ b/packageE/pages/cart/cart2/cart2.js @@ -720,10 +720,8 @@ Page({ store_id: oo.stoid, pageSize: 600 }, success: async function (su) { - //按门店分类的数组 - var arr = new Array(); - var carr = su.data.data.pageData; + var carr = su.data.data.pageData; th.setData({ is_all_zt: 1 }); //-- 找出所有的门店 -- @@ -743,545 +741,566 @@ Page({ }) th.data.cartlist_y = carr; //存储原始购物车列表 - th.data.in_zhact_gdmap = {}; - - //---是不是购买等级卡成功的返回---等级卡显示的判断--- - var is_card_back = getApp().globalData.is_card_back; - - //-- 判断组合购是总数量是不是存在 -- - var no_zh_num={}; - - for (var i = 0; i < carr.length; i++) { - var item1 = carr[i]; - //-- 获取一下商品的所有活动 -- - await th.buy_pro_group(item1); - //把已经购买了多少见的内容填入 - var goodsbuynum = 0, promgoodsbuynum = 0; - //--要获得商品,该用户买了多少件,同步应用-- - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { - data: { - store_id: os.stoid, - user_id: getApp().globalData.user_id, - goods_id: item1.goods_id, - prom_type: item1.prom_type, - prom_id: item1.prom_id - }, - }).then(res => { - var buy_num_data = res.data.data; - if (buy_num_data.promgoodsbuynum) { - promgoodsbuynum = buy_num_data.promgoodsbuynum; - } - goodsbuynum = buy_num_data.goodsbuynum; - }) - //如果有购买活动 - item1.promgoodsbuynum = promgoodsbuynum; - - //默认是包邮和优惠的 - item1.is_order_yh=1; - item1.is_post_temp=1; - - //如果是秒杀,团购的时候 - if([1,2,6].indexOf(item1.prom_type)>-1){ - var url= "/api/weshop/activitylist/getSJGoodsPriceNew/" + os.stoid - + "/" + item1.goods_id + "/"+item1.prom_type+"/" + item1.prom_id + "/" + app.globalData.user_id; - await app.request.promiseGet(url,{}).then(res=>{ - if(res.data.code==0){ - console.log(res.data.data,"111"); - item1.is_order_yh=res.data.data.is_order_yh; - item1.is_post_temp=res.data.data.is_post_temp; - } - }) - } - - //要把优惠活动加入,prom_goods_map中,赠品不要运算,代发商品不算优惠 - if (item1.prom_type == 3 && item1.is_gift != 1 && !item1.whsle_id) { - // th.check_is_youhui(item1.goods_id, item1.pick_id); - //增加优惠活动次数限制 - let limit_num= await th.getprom(item1) //活动限制次数 - - if(!limit_num){ - await th.add_prom_goods_map(item1); - // item1.prom_id='' - // item1.prom_type='' - }else{ - let user_pre_buynum = await th.getUserBuyPromNum_pre(item1.prom_id) //用户已经参与次数 - if(user_pre_buynum { - if (res.data.code == 0 && res.data.data) { - //如果活动已经结束 - if (res.data.data.is_end == 1) { - isok = 0; - } - if (ut.gettimestamp() > res.data.data.end_time) { - isok = 0; - } - item1.act = res.data.data; - - //-- 在这里要判断一下活动的组合购总数量 -- - if(item1.act.zh_num>0 && item1.act.zh_buy_num>=item1.act.zh_num){ - store_count_ok = 0; - no_zh_num[item1.prom_id]=1; - //-- 清理一下活动的状态 -- - item1.prom_type = 0; - item1.prom_type1 = 0; - item1.prom_id = 0; - item1.prom_id1 = 0 - - }else{ - th.data.zhhe_act_map[item1.prom_id] = res.data.data; - } - } else { - //未找到商品的活动 - is_flag = 0; - } - }) + th.get_cart_next(carr); - if (!isok) { - getApp().my_warnning("组合购的活动已经过期", 0, th); - return false; - } + } + }); + }, - //------ 先增组合活动的总数量的时候 ------- - if(store_count_ok) { - var url1 = "/api/weshop/prom/zhbuyGoods/page"; - var req_data = { - page: 1, - pageSize: 2000, - store_id: os.stoid, - zh_id: item1.prom_id, - } - await getApp().request.promiseGet(url1, { - data: req_data - }).then(res => { - if (ut.ajax_ok(res)) { - var gdlist = res.data.data.pageData; - gdlist.forEach(i => { - if (item1.goods_id == i.goods_id && !is_flag) { - item1.prom_type = 0; - item1.prom_type1 = 0; - item1.prom_id = 0; - item1.prom_id1 = 0 - } - }) - th.data.zuhe_map_good[item1.prom_id] = gdlist; - } - }) - } + async get_cart_next(carr,is_change){ + if(is_change) carr=this.data.cartlist_y; + //按门店分类的数组 + var arr = new Array(); - } - else { - item1.act = th.data.zhhe_act_map[item1.prom_id]; - } + var th=this; + th.data.in_zhact_gdmap = {}; + //---是不是购买等级卡成功的返回---等级卡显示的判断--- + var is_card_back = getApp().globalData.is_card_back; + + //-- 判断组合购是总数量是不是存在 -- + var no_zh_num={}; + + for (var i = 0; i < carr.length; i++) { + var item1 = carr[i]; + //-- 获取一下商品的所有活动 -- + await th.buy_pro_group(item1); + //把已经购买了多少见的内容填入 + var goodsbuynum = 0, promgoodsbuynum = 0; + //--要获得商品,该用户买了多少件,同步应用-- + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { + data: { + store_id: os.stoid, + user_id: getApp().globalData.user_id, + goods_id: item1.goods_id, + prom_type: item1.prom_type, + prom_id: item1.prom_id + }, + }).then(res => { + var buy_num_data = res.data.data; + if (buy_num_data.promgoodsbuynum) { + promgoodsbuynum = buy_num_data.promgoodsbuynum; + } + goodsbuynum = buy_num_data.goodsbuynum; + }) + //如果有购买活动 + item1.promgoodsbuynum = promgoodsbuynum; + + //默认是包邮和优惠的 + item1.is_order_yh=1; + item1.is_post_temp=1; + + //如果是秒杀,团购的时候 + if([1,2,6].indexOf(item1.prom_type)>-1){ + var url= "/api/weshop/activitylist/getSJGoodsPriceNew/" + os.stoid + + "/" + item1.goods_id + "/"+item1.prom_type+"/" + item1.prom_id + "/" + app.globalData.user_id; + await app.request.promiseGet(url,{}).then(res=>{ + if(res.data.code==0){ + console.log(res.data.data,"111"); + item1.is_order_yh=res.data.data.is_order_yh; + item1.is_post_temp=res.data.data.is_post_temp; } - if (item1.prom_type == 10) { - if (!th.data.ladder_map[item1.prom_id]) { - //如果有预售 - var isok = 1; - var is_flag = 1; - var act = null; - var url = "/api/weshop/prom/ladderForm/get/" + os.stoid + "/" + item1.prom_id; - await getApp().request.promiseGet(url, {}).then(res => { - console.log(res, 1000); - if (res.data.code == 0 && res.data.data) { - if (res.data.data.isuse != 1) { - isok = 0; - } - //如果活动已经结束 - if (res.data.data.is_end == 1) { - isok = 0; - } - //已经结束 - if (ut.gettimestamp() > res.data.data.end_time) { - isok = 0; - } - //还未开始 - if (ut.gettimestamp() < res.data.data.start_time) { - isok = 0; - } - act = res.data.data; + }) + } - } else { - //未找到商品的活动 - is_flag = 0; - } - }) - if (!isok) { - var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item1.id; - getApp().request.delete(url, {}); - th.data.ladder_map[item1.prom_id] = -1; - continue; - } - th.data.ladder_map[item1.prom_id] = act; + //要把优惠活动加入,prom_goods_map中,赠品不要运算,代发商品不算优惠 + if (item1.prom_type == 3 && item1.is_gift != 1 && !item1.whsle_id) { + // th.check_is_youhui(item1.goods_id, item1.pick_id); + //增加优惠活动次数限制 + let limit_num= await th.getprom(item1) //活动限制次数 - //-- 获取阶梯规则 -- - var url1 = "/api/weshop/prom/ladderList/list"; - var req_data = { - store_id: os.stoid, - form_id: item1.prom_id, + if(!limit_num){ + await th.add_prom_goods_map(item1); + // item1.prom_id='' + // item1.prom_type='' + }else{ + let user_pre_buynum = await th.getUserBuyPromNum_pre(item1.prom_id) //用户已经参与次数 + if(user_pre_buynum { + if (res.data.code == 0 && res.data.data) { + //如果活动已经结束 + if (res.data.data.is_end == 1) { + isok = 0; } - await getApp().request.promiseGet(url1, { - data: req_data - }).then(rs1 => { - if (rs1.data.code == 0 && rs1.data.data) { - var gdlist = rs1.data.data; - th.data.ladder_map[item1.prom_id].ladder_list = gdlist; - } - }) - } - } - - //-- 判断一下,获取搭配购的消息,只有prom_type==5才会判断优惠活动 -- - if ( item1.prom_type == 5 && (!carr[i].collocationList || !carr[i].collocationList.length)) { - await th.set_collection(item1, carr, i); - } - } + if (ut.gettimestamp() > res.data.data.end_time) { + isok = 0; + } + item1.act = res.data.data; + + //-- 在这里要判断一下活动的组合购总数量 -- + if(item1.act.zh_num>0 && item1.act.zh_buy_num>=item1.act.zh_num){ + store_count_ok = 0; + no_zh_num[item1.prom_id]=1; + //-- 清理一下活动的状态 -- + item1.prom_type = 0; + item1.prom_type1 = 0; + item1.prom_id = 0; + item1.prom_id1 = 0 - //在分组的时候,就不要再调用接口,await - for (var i = 0; i < carr.length; i++) { - var item = carr[i]; - //-- 如果是等级会员注册返回 -- - if (is_card_back) { - th.data.card_name = th.data.userinfo.card_field; - //如果是秒杀的返回,就要把活动弄回0 - if (item['prom_type'] == 1) { - item['prom_type'] = 0; - item['prom_id'] = 0; - } - // 拼团,搭配购不计算,赠品也不计算 - if (item['prom_type'] != 5 && item['prom_type'] != 6 && !item.is_gift && !item['is_collocation'] && item.goods_price > item[th.data.card_name]) { - item.goods_price = item[th.data.card_name]; - carr[i].goods_price = item[th.data.card_name]; + }else{ + th.data.zhhe_act_map[item1.prom_id] = res.data.data; + } + } else { + //未找到商品的活动 + is_flag = 0; } - } else { - // 拼团,搭配购不计算,赠品也不计算,同时会员还未购买等级会员 - if (item[th.data.card_name] > 0 && item['prom_type'] != 5 && item['prom_type'] != 6 && !th.data.userinfo.card_field - && !item.is_gift && !item['is_collocation'] && item.goods_price > item[th.data.card_name]) { - item.cut_price1 = item.goods_price - item[th.data.card_name]; - carr[i].cut_price1 = (item.goods_price - item[th.data.card_name]) * item.goods_num; - } + }) + if (!isok) { + getApp().my_warnning("组合购的活动已经过期", 0, th); + return false; } - item.original_img = oo.imghost + item.original_img; - - var car_item = item; - /*----接口要弄出来的,先顶着-----*/ - var pcid = car_item.pick_id; - var find = 0; - //----如果有就加进去,没有就新增一个---- - //-----------循环查找门店------------- - if (arr.length > 0) { - for (var j = 0; j < arr.length; j++) { - if (arr[j].pickup_id == pcid) { - if (item.is_gift != 1) { - //确定配送方式 - if (arr[j].distr_t == 0) { - arr[j].distr_t = car_item.distr_type; - } - var e_t = 0 - switch (arr[j].distr_t) { - case 0: - e_t = 1; - if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) e_t = 0; - break; - case 1: - e_t = 1; - break; - case 2: - e_t = 0; - break; + //------ 先增组合活动的总数量的时候 ------- + if(store_count_ok) { + var url1 = "/api/weshop/prom/zhbuyGoods/page"; + var req_data = { + page: 1, + pageSize: 2000, + store_id: os.stoid, + zh_id: item1.prom_id, + } + await getApp().request.promiseGet(url1, { + data: req_data + }).then(res => { + if (ut.ajax_ok(res)) { + var gdlist = res.data.data.pageData; + gdlist.forEach(i => { + if (item1.goods_id == i.goods_id && !is_flag) { + item1.prom_type = 0; + item1.prom_type1 = 0; + item1.prom_id = 0; + item1.prom_id1 = 0 } - arr[j].exp_type = e_t; - if (e_t == 0) th.setData({ is_all_zt: 0 }); - //else if (e_t == 1) th.setData({ is_all_zt: 1 }); - } - - //-- 把等级卡会优惠多少钱装进去 -- - if (car_item.cut_price1) arr[j].card_cut_price += car_item.cut_price1; + }) + th.data.zuhe_map_good[item1.prom_id] = gdlist; + } + }) + } - arr[j].goods.push(car_item); - if (car_item.collocationList) { - if (!arr[j].collocationList) arr[j].collocationList = car_item.collocationList; - else { - var arr_new = [...arr[j].collocationList, ...car_item.collocationList]; - arr[j].collocationList = arr_new; - } - } - find = 1; - break; + } + else { + item1.act = th.data.zhhe_act_map[item1.prom_id]; + } + } + if (item1.prom_type == 10) { + if (!th.data.ladder_map[item1.prom_id]) { + //如果有预售 + var isok = 1; + var is_flag = 1; + var act = null; + var url = "/api/weshop/prom/ladderForm/get/" + os.stoid + "/" + item1.prom_id; + await getApp().request.promiseGet(url, {}).then(res => { + console.log(res, 1000); + if (res.data.code == 0 && res.data.data) { + if (res.data.data.isuse != 1) { + isok = 0; } - } - } - //------如果没有找到----- - if (find == 0) { - var pikname = '', sto = null; - //----找到门店名称----- - for (var k = 0; k < th.data.allsto.length; k++) { - if (pcid == th.data.allsto[k].pickup_id) { - pikname = th.data.allsto[k].pickup_name; - sto = th.data.allsto[k]; - break; + //如果活动已经结束 + if (res.data.data.is_end == 1) { + isok = 0; } - } - var e_t = 0, dis_t = 0;//物流方式,配送方式 - if (item.distr_type == 0) { - dis_t = sto.distr_type; + //已经结束 + if (ut.gettimestamp() > res.data.data.end_time) { + isok = 0; + } + //还未开始 + if (ut.gettimestamp() < res.data.data.start_time) { + isok = 0; + } + act = res.data.data; + } else { - dis_t = item.distr_type; + //未找到商品的活动 + is_flag = 0; } - switch (dis_t) { - case 0: - e_t = 1; - //-- 系统后台有设置要默认的 -- - if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) e_t = 0; - break; - case 1: - e_t = 1; - break; - case 2: - e_t = 0; - break; + }) + if (!isok) { + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item1.id; + getApp().request.delete(url, {}); + th.data.ladder_map[item1.prom_id] = -1; + continue; + } + th.data.ladder_map[item1.prom_id] = act; + + //-- 获取阶梯规则 -- + var url1 = "/api/weshop/prom/ladderList/list"; + var req_data = { + store_id: os.stoid, + form_id: item1.prom_id, + } + await getApp().request.promiseGet(url1, { + data: req_data + }).then(rs1 => { + if (rs1.data.code == 0 && rs1.data.data) { + var gdlist = rs1.data.data; + th.data.ladder_map[item1.prom_id].ladder_list = gdlist; } - //如果是物流的话,全部自提的控制要弄成0 - if (e_t == 0) th.setData({ is_all_zt: 0 }); - //else th.setData({ is_all_zt: 1 }); - - var narr = new Array(); - narr.push(car_item); - - //-----------拼装购物车结算的数组,如果有默认物流时要用默认物流编号,计算默认的物流,不管是不是自提都算一下----------------- - var m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code; - if (def_exp_code && !th.data.is_default_logistics) { - for (var k = 0; k < th.data.wu_arr.length; k++) { - var item = th.data.wu_arr[k]; - if (def_exp_code == item.code) { - m_wind = k; - } + }) + } + } + + if(is_change){ + carr[i].collocationList=null; + } + + //-- 判断一下,获取搭配购的消息,只有prom_type==5才会判断优惠活动 -- + if ( item1.prom_type == 5 && (!carr[i].collocationList || !carr[i].collocationList.length)) { + await th.set_collection(item1, carr, i); + } + } + + //在分组的时候,就不要再调用接口,await + for (var i = 0; i < carr.length; i++) { + var item = carr[i]; + //-- 如果是等级会员注册返回 -- + if (is_card_back) { + th.data.card_name = th.data.userinfo.card_field; + //如果是秒杀的返回,就要把活动弄回0 + if (item['prom_type'] == 1) { + item['prom_type'] = 0; + item['prom_id'] = 0; + } + // 拼团,搭配购不计算,赠品也不计算 + if (item['prom_type'] != 5 && item['prom_type'] != 6 && !item.is_gift && !item['is_collocation'] && item.goods_price > item[th.data.card_name]) { + item.goods_price = item[th.data.card_name]; + carr[i].goods_price = item[th.data.card_name]; + + } + } else { + // 拼团,搭配购不计算,赠品也不计算,同时会员还未购买等级会员 + if (item[th.data.card_name] > 0 && item['prom_type'] != 5 && item['prom_type'] != 6 && !th.data.userinfo.card_field + && !item.is_gift && !item['is_collocation'] && item.goods_price > item[th.data.card_name]) { + item.cut_price1 = item.goods_price - item[th.data.card_name]; + carr[i].cut_price1 = (item.goods_price - item[th.data.card_name]) * item.goods_num; + } + + } + + item.original_img = oo.imghost + item.original_img; + + var car_item = item; + /*----接口要弄出来的,先顶着-----*/ + var pcid = car_item.pick_id; + var find = 0; + //----如果有就加进去,没有就新增一个---- + //-----------循环查找门店------------- + if (arr.length > 0) { + for (var j = 0; j < arr.length; j++) { + if (arr[j].pickup_id == pcid) { + if (item.is_gift != 1) { + //确定配送方式 + if (arr[j].distr_t == 0) { + arr[j].distr_t = car_item.distr_type; } + var e_t = 0 + switch (arr[j].distr_t) { + case 0: + e_t = 1; + if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) e_t = 0; + break; + case 1: + e_t = 1; + break; + case 2: + e_t = 0; + break; + } + arr[j].exp_type = e_t; + if (e_t == 0) th.setData({ is_all_zt: 0 }); + //else if (e_t == 1) th.setData({ is_all_zt: 1 }); } - var ie = { - pickup_id: pcid, - pname: pikname, - goods: narr, - wind: m_wind, - distr_t: dis_t, - card_cut_price: 0, - exp_type: e_t, - goods_price: 0, - shipping_price: 0, - user_money: 0, - total_amount: 0, - order_amount: 0, - user_note: "", - sto: sto - }; - //-- 把等级卡会优惠多少钱装进去 -- - if (car_item.cut_price1) ie.card_cut_price += car_item.cut_price1; + if (car_item.cut_price1) arr[j].card_cut_price += car_item.cut_price1; + + arr[j].goods.push(car_item); if (car_item.collocationList) { - ie.collocationList = car_item.collocationList; - } + if (!arr[j].collocationList) arr[j].collocationList = car_item.collocationList; + else { + var arr_new = [...arr[j].collocationList, ...car_item.collocationList]; + arr[j].collocationList = arr_new; + } + } - arr.push(ie); + find = 1; + break; } } - //-- 如果是回退回来的情况 -- - if (th.data.cartlist && th.data.cartlist.length > 0) { - for (var kj in th.data.cartlist) { - for (var ih in arr) { - var ie = arr[ih]; - if (ie.pickup_id == th.data.cartlist[kj].pickup_id) { - ie.exp_type = parseInt(th.data.cartlist[kj].exp_type); - ie.wind = parseInt(th.data.cartlist[kj].wind); + } + //------如果没有找到----- + if (find == 0) { + var pikname = '', sto = null; + //----找到门店名称----- + for (var k = 0; k < th.data.allsto.length; k++) { + if (pcid == th.data.allsto[k].pickup_id) { + pikname = th.data.allsto[k].pickup_name; + sto = th.data.allsto[k]; + break; + } + } + var e_t = 0, dis_t = 0;//物流方式,配送方式 + if (item.distr_type == 0) { + dis_t = sto.distr_type; + } else { + dis_t = item.distr_type; + } + switch (dis_t) { + case 0: + e_t = 1; + //-- 系统后台有设置要默认的 -- + if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) e_t = 0; + break; + case 1: + e_t = 1; + break; + case 2: + e_t = 0; + break; + } + //如果是物流的话,全部自提的控制要弄成0 + if (e_t == 0) th.setData({ is_all_zt: 0 }); + //else th.setData({ is_all_zt: 1 }); - //-- 是不是全部自提清空 -- - if (ie.exp_type == 0 || ie.exp_type == 2) th.setData({ is_all_zt: 0 }); - break; - } + var narr = new Array(); + narr.push(car_item); + + //-----------拼装购物车结算的数组,如果有默认物流时要用默认物流编号,计算默认的物流,不管是不是自提都算一下----------------- + var m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code; + if (def_exp_code && !th.data.is_default_logistics) { + for (var k = 0; k < th.data.wu_arr.length; k++) { + var item = th.data.wu_arr[k]; + if (def_exp_code == item.code) { + m_wind = k; } } } - var cart_commission = 0; - //-- 循环计算一下线下取价 -- - for (var k = 0; k < arr.length; k++) { - var c_item = arr[k]; + var ie = { + pickup_id: pcid, + pname: pikname, + goods: narr, + wind: m_wind, + distr_t: dis_t, + card_cut_price: 0, + exp_type: e_t, + goods_price: 0, + shipping_price: 0, + user_money: 0, + total_amount: 0, + order_amount: 0, + user_note: "", + sto: sto + }; - //-- 要进行归类一下活动 -- - await th.cart_cx_group(arr[k].goods,c_item,(show_can_cx)=>{ - arr[k].show_can_cx=show_can_cx; - }) + //-- 把等级卡会优惠多少钱装进去 -- + if (car_item.cut_price1) ie.card_cut_price += car_item.cut_price1; + if (car_item.collocationList) { + ie.collocationList = car_item.collocationList; + } - var item = arr[k].goods; - var offline_price = 0; - var offline_num = 0; - //计算佣金的商品 - var commission_gds = []; - for (var c = 0; c < item.length; c++) { + arr.push(ie); + } + } + //-- 如果是回退回来的情况 -- + if (th.data.cartlist && th.data.cartlist.length > 0) { + for (var kj in th.data.cartlist) { + for (var ih in arr) { + var ie = arr[ih]; + if (ie.pickup_id == th.data.cartlist[kj].pickup_id) { + ie.exp_type = parseInt(th.data.cartlist[kj].exp_type); + ie.wind = parseInt(th.data.cartlist[kj].wind); + + //-- 是不是全部自提清空 -- + if (ie.exp_type == 0 || ie.exp_type == 2) th.setData({ is_all_zt: 0 }); + break; + } + } + } + } - if (!item[c].is_gift) { - var hr = { - goods_id: item[c].goods_id, - goods_num: item[c].goods_num, - prom_type: item[c].prom_type, - prom_id: item[c].prom_id, - } - let req_d1 = { - user_id: getApp().globalData.user_id, goods_ids: [hr], store_id: os.stoid - } - - await getApp().request.promisePost("/api/weshop/order/getrebateSum", { - is_json: 1, data: req_d1 - }).then(grs => { - if (grs.data.code == 0) item[c].use_commission = grs.data.data; - }); - commission_gds.push(hr); - } - if (th.data.sales_rules != 2) { - item[c].offline_price = 0; - } - //-- 如果这个商品是线下取价的时候 -- - if (item[c].offline_price > 0 && item[c].prom_type != 7) { - offline_price += (item[c].goods_price - item[c].offline_price) * item[c].goods_num; - offline_num += item[c].goods_num; - } + var cart_commission = 0; + //-- 循环计算一下线下取价 -- + for (var k = 0; k < arr.length; k++) { + var c_item = arr[k]; + if(!is_change){ + //-- 要进行归类一下活动 -- + await th.cart_cx_group(arr[k].goods,c_item,(show_can_cx)=>{ + arr[k].show_can_cx=show_can_cx; + }) + }else{ + var show_can_cx=this.data.cartlist[k].show_can_cx; + //-- 多促销活动的优化 -- + if(show_can_cx){ + arr[k].show_can_cx=show_can_cx; } - if (offline_price > 0) { - c_item.offline_price = offline_price; - c_item.offline_num = offline_num; - c_item.is_offline = 1; + } + + var item = arr[k].goods; + var offline_price = 0; + var offline_num = 0; + //计算佣金的商品 + var commission_gds = []; + for (var c = 0; c < item.length; c++) { + + if (!item[c].is_gift) { + var hr = { + goods_id: item[c].goods_id, + goods_num: item[c].goods_num, + prom_type: item[c].prom_type, + prom_id: item[c].prom_id, } - - //获取购物车的佣金,此处要优化调用接口,获取佣金 - var req_d = { - user_id: getApp().globalData.user_id, goods_ids: commission_gds, store_id: os.stoid + let req_d1 = { + user_id: getApp().globalData.user_id, goods_ids: [hr], store_id: os.stoid } - var back_data = null; + await getApp().request.promisePost("/api/weshop/order/getrebateSum", { - is_json: 1, data: req_d - }).then(rs => { - if (rs.data.code == 0) back_data = rs.data.data; + is_json: 1, data: req_d1 + }).then(grs => { + if (grs.data.code == 0) item[c].use_commission = grs.data.data; }); - - if (back_data && parseFloat(back_data)) { - c_item.can_usecommise = parseFloat(back_data); - cart_commission += c_item.can_usecommise; - } - + commission_gds.push(hr); } - - if (cart_commission) { - th.setData({ cart_commission }); + if (th.data.sales_rules != 2) { + item[c].offline_price = 0; } - - //每一个门店内的组合购要进行拆分, - //还得把组合商品的多余商品的线下价格算一算 - for (let var1 in arr) { - var u_item = arr[var1]; - //把组合购进行分组 - var obj = zh_calc.find_split(u_item); - if (!obj) continue; - //存储不同活动的商品列表 - u_item.zh_prom_goods = {}; - for (let var1 in obj) { - var h_item = obj[var1]; - var gdlist = th.data.zuhe_map_good[h_item.prom_id]; - //获取活动需要的商品列表 - u_item.zh_prom_goods[h_item.prom_id] = { gdlist: gdlist, act: h_item.act }; - } - zh_calc.fir_set_arr(u_item, th); + //-- 如果这个商品是线下取价的时候 -- + if (item[c].offline_price > 0 && item[c].prom_type != 7) { + offline_price += (item[c].goods_price - item[c].offline_price) * item[c].goods_num; + offline_num += item[c].goods_num; } + } + if (offline_price > 0) { + c_item.offline_price = offline_price; + c_item.offline_num = offline_num; + c_item.is_offline = 1; + } - //每一个门店内的阶梯促销要进行拆分, - //还得把阶梯促销商品的多余商品的线下价格算一算 - for (let var2 in arr) { - var u_item1 = arr[var2]; + //获取购物车的佣金,此处要优化调用接口,获取佣金 + var req_d = { + user_id: getApp().globalData.user_id, goods_ids: commission_gds, store_id: os.stoid + } + var back_data = null; + await getApp().request.promisePost("/api/weshop/order/getrebateSum", { + is_json: 1, data: req_d + }).then(rs => { + if (rs.data.code == 0) back_data = rs.data.data; + }); - //把阶梯促销进行分组 - var obj = ladder_calc.find_split(u_item1); - if (!obj) continue; - //存储不同阶梯促销活动的商品列表 - u_item1.ladder_map = {}; - for (let var1 in obj) { - var h_item = obj[var1]; - var act = th.data.ladder_map[h_item.prom_id]; - //获取活动需要的商品列表 - u_item1.ladder_map[h_item.prom_id] = act; - } - ladder_calc.fir_set_arr(u_item1, th); - } + if (back_data && parseFloat(back_data)) { + c_item.can_usecommise = parseFloat(back_data); + cart_commission += c_item.can_usecommise; + } - //-- 要判断总开关有没有同城配送 -- - if(th.data.is_same_city) { - //----- 判断每一个商品的配送方式,和门店的配送方式 ------- - for (var ik = 0; ik < arr.length; ik++) { - if (!arr[ik].sto.is_same_city) continue; - var fd = arr[ik].goods.filter(function (e) { - return e.is_same_city != 1 || e.whsle_id > 0 - }) - if (!fd || fd.length == 0) { - arr[ik].show_same_city = 1; - } - } - } + } - //深拷贝 - th.data.old_cartlist = JSON.parse(JSON.stringify(arr)); - th.setData({ - cartlist: arr, - }); + if (cart_commission) { + th.setData({ cart_commission }); + } - //--- 获取一下看有没有优惠券 ---- - setTimeout(function () { - var frozenQuan = null; - var url0 = "/api/weshop/users/frozenQuan/listFrozenQuan/" + app.globalData.user_id; - app.request.promiseGet(url0, { 1: 1 }).then(res => { - if (res.data.code == 0) { - frozenQuan = res.data.data; - th.data.frozenQuan = frozenQuan; - } - th.calculatePrice(); - th.get_cart_quan(); - }) - }, 500) + //每一个门店内的组合购要进行拆分, + //还得把组合商品的多余商品的线下价格算一算 + for (let var1 in arr) { + var u_item = arr[var1]; + //把组合购进行分组 + var obj = zh_calc.find_split(u_item); + if (!obj) continue; + //存储不同活动的商品列表 + u_item.zh_prom_goods = {}; + for (let var1 in obj) { + var h_item = obj[var1]; + var gdlist = th.data.zuhe_map_good[h_item.prom_id]; + //获取活动需要的商品列表 + u_item.zh_prom_goods[h_item.prom_id] = { gdlist: gdlist, act: h_item.act }; + } + zh_calc.fir_set_arr(u_item, th); + } + + //每一个门店内的阶梯促销要进行拆分, + //还得把阶梯促销商品的多余商品的线下价格算一算 + for (let var2 in arr) { + var u_item1 = arr[var2]; + + //把阶梯促销进行分组 + var obj = ladder_calc.find_split(u_item1); + if (!obj) continue; + //存储不同阶梯促销活动的商品列表 + u_item1.ladder_map = {}; + for (let var1 in obj) { + var h_item = obj[var1]; + var act = th.data.ladder_map[h_item.prom_id]; + //获取活动需要的商品列表 + u_item1.ladder_map[h_item.prom_id] = act; + } + ladder_calc.fir_set_arr(u_item1, th); + } + + //-- 要判断总开关有没有同城配送 -- + if(th.data.is_same_city) { + //----- 判断每一个商品的配送方式,和门店的配送方式 ------- + for (var ik = 0; ik < arr.length; ik++) { + if (!arr[ik].sto.is_same_city) continue; + var fd = arr[ik].goods.filter(function (e) { + return e.is_same_city != 1 || e.whsle_id > 0 + }) + if (!fd || fd.length == 0) { + arr[ik].show_same_city = 1; + } } + } + + //深拷贝 + th.data.old_cartlist = JSON.parse(JSON.stringify(arr)); + th.setData({ + cartlist: arr, }); - }, + //--- 获取一下看有没有优惠券 ---- + setTimeout(function () { + var frozenQuan = null; + var url0 = "/api/weshop/users/frozenQuan/listFrozenQuan/" + app.globalData.user_id; + app.request.promiseGet(url0, { 1: 1 }).then(res => { + if (res.data.code == 0) { + frozenQuan = res.data.data; + th.data.frozenQuan = frozenQuan; + } + th.calculatePrice(); + th.get_cart_quan(); + }) + }, 500) + }, //-----单个商品购买的入口判断---- get_buy_goods: function (e) { @@ -1794,294 +1813,35 @@ Page({ //先用着,后面会用接口来代替 async buy_pro_group(item1, is_state) { //-- 代发商品不参与任何活动 -- - if(item1.whsle_id) return false; + 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; - var zh_prom = null; - var gdlist = null; - var req_d = { - "store_id": os.stoid, - "goods_id": item1.goods_id, - "user_id": user_id, - } - - await getApp().request.promiseGet(url, {data: req_d}).then(e => { - if (e.data.code == 0 && e.data.data && e.data.data.length > 0) { - var arr = e.data.data; - if (arr.length) { - var arr3 = arr.filter(function (e) { - return e.s_time < ut.gettimestamp() && e.prom_type == 7; - }) - if (arr3 && arr3.length) { - zh_id = arr3[0].act_id; - } - } - } - }) - - //-- 如果有组合购的时候,同时还要判断单件商品的购买数量有没有满足组合购的条件 -- - 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){ - //-- 组合购活动是限购 -- - var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${user_id}&prom_type=7&prom_id=${zh_id}`; - let res = await getApp().request.promiseGet(url, { - data: {} - }); - let userbuynum = 0 - if (res.data.code == 0 && res.data.data) { - userbuynum = res.data.data.userbuynum - } - - if(zh_pro0.buy_limit>0 && zh_pro0.buy_limit<=userbuynum){ - is_zh_ok=0; - } - } - - //-- 如果满足条件,才会显示活动 -- - if (is_zh_ok) { - - //-- 组合的数组填充一下 -- - th.data.zhhe_act_map[zh_pro0.id] = zh_pro0; - - var url1 = "/api/weshop/prom/zhbuyGoods/page"; - var req_data = { - page: 1, pageSize: 2000, - store_id: os.stoid, - zh_id: zh_id, - } - - await getApp().request.promiseGet(url1, { - data: req_data - }).then(res => { - if (ut.ajax_ok(res)) { - gdlist = res.data.data.pageData; - } - }) - - var zh_gd_fd = gdlist.find(function (e) { - return e.goods_id == item1.goods_id; - }) - - if (is_zh_ok) { - //-- 商品的限购 -- - var promgoodsbuynum = 0; - //--要获得商品,该用户买了多少件,同步应用-- - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { - data: { - store_id: os.stoid, - user_id: getApp().globalData.user_id, - goods_id: item1.goods_id, - prom_type: 7, - prom_id: zh_id - }, - }).then(res => { - var buy_num_data = res.data.data; - if (buy_num_data.promgoodsbuynum) { - promgoodsbuynum = buy_num_data.promgoodsbuynum; - } - }) - - //-- 组合购活动是限购 -- - var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${user_id}&prom_type=7&prom_id=${zh_id}`; - let res = await getApp().request.promiseGet(url, {}); - let userbuynum = 0 - if (res.data.code == 0 && res.data.data) { - userbuynum = res.data.data.userbuynum - } - - //-- 判断是不是超出商品的限购 -- - if (zh_gd_fd.buyqty > 0 && zh_gd_fd.promgoodsbuynum >= zh_gd_fd.buyqty) { - is_zh_ok = 0; - } - //--- 要判断这个商品的必买有没有满足,如果是一件商品的时候,那么就要判断这个商品。同时商品的购买数量有没有满足 --- - if (is_state == 1) { - //-- 看有没有必买商品不满足的时候 -- - var f_gd = gdlist.find(function (e) { - return e.zhqty > 0 && e.goods_id != item1.goods_id; - }) - if (f_gd) { - is_zh_ok = 0; - } - //-- 同时商品的购买数量有没有满足 -- - if(item1.goods_num { - if (res.data.code == 0 && res.data.data) { - th.data.ladder_map[act_id] = res.data.data; - if(!item1.more_cx) item1.more_cx=[]; - - 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) { - - var fir_act = r_data.promGoodsLists[0]; - //-- 计算一下限购,满足限购数才显示 -- - var url = `/api/weshop/ordergoods/getUserBuyPromNum?is_all=1&store_id=${os.stoid}&user_id=${user_id}&prom_type=3&prom_id=${fir_act.prom_id}`; - let res_o = await getApp().request.promiseGet(url, {}); - let user_pre_buynum=0 - if(res_o.data.code==0 && res_o.data.data){ - user_pre_buynum=res_o.data.data.userbuynum - } - //--- 这个地方是在计算优惠促销的限购 --- - 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) { - //-- 按件进行计算 -- - if (fir_act.prom_type == 1) { - if (fir_act.condition <= item1.goods_num) { - item1.more_cx.push(push_item); - } - }else{ - //-- 按数量进行计算 -- - 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); - } + store_id: os.stoid, + user_id: getApp().globalData.user_id, + goods_id: item1.goods_id, + goods_num: item1.goods_num, + goods_price: item1.goods_price, + } + //--- 调用接口获取活动 --- + await getApp().promiseGet('/api/weshop/goods/getGoodsPromInfo', {data:req_d}).then(res => { + if(res.data.code==0){ + item1.more_cx=res.data.data.more_cx; + + if(res.data.data.zh_pro){ + th.data.zhhe_act_map[res.data.data.zh_pro.id]=res.data.data.zh_pro; + } + if(res.data.data.ladder_pro){ + var ladder_pro=res.data.data.ladder_pro; + th.data.ladder_map[ladder_pro.id]=ladder_pro; + var fd=res.data.data.more_cx.find(function (e){ + return e.prom_type==10; + }) + if(fd){ + th.data.ladder_map[ladder_pro.id].ladder_list=fd.ladder_list; + } } - - }else{ - if(!item1.more_cx) item1.more_cx=[]; - item1.more_cx.push(push_item); - } - } - } - } - + } + }) }, //---------------检查是否有收货地址------------------- @@ -7387,6 +7147,8 @@ Page({ //-- 此时已经确定了商品的活动是什么类型的,可以确定购物车中商品的具体活动进行金额的计算 -- if(!ck_prom_type) ck_prom_type=k_item.act_arr[0]; + k_item.sele_prom_type=ck_prom_type.prom_type; + //-- 此时要把购物车中的商品确定活动 -- for (var b=0; b1){ @@ -7540,6 +7302,11 @@ Page({ if(can_calc_cx.length){ for(var p=0;p-1 + && g_item.pick_id==pk + }) + if(fg>-1){ + goods[fg].prom_type=ck_prom_type.prom_type; + goods[fg].prom_id=ck_prom_type.prom_id; + } + } + + wx.showLoading({ + title: "处理中.", + mask: true + }) + //-- 重新计算一下价格 -- + this.get_cart_next(null,1); } diff --git a/packageE/pages/cart/cart2/cart2.json b/packageE/pages/cart/cart2/cart2.json index b3a5ca9..0f90a97 100644 --- a/packageE/pages/cart/cart2/cart2.json +++ b/packageE/pages/cart/cart2/cart2.json @@ -3,6 +3,7 @@ "enablePullDownRefresh": false, "usingComponents": { "warn": "/components/long_warn/long_warn", - "cart_collect_temp": "/components/cart_collect_temp/cart_collect_temp" + "cart_collect_temp": "/components/cart_collect_temp/cart_collect_temp", + "pro_pop": "/components/promate_pop/promate_pop" } } \ No newline at end of file diff --git a/packageE/pages/cart/cart2/cart2.wxml b/packageE/pages/cart/cart2/cart2.wxml index cc05e62..2f2c022 100644 --- a/packageE/pages/cart/cart2/cart2.wxml +++ b/packageE/pages/cart/cart2/cart2.wxml @@ -116,26 +116,30 @@ - - - 促销 - - - 优惠促销 - 搭配促销 - 组合购 - 阶梯促销 - - - - - - - + + + + + 促销 + + + 优惠促销 + 搭配促销 + 组合购 + 阶梯促销 + + + + + + + + + + @@ -177,7 +181,7 @@ - + {{show_card.CardName}} 立减 {{filters.toFix(item.card_cut_price,2) }} diff --git a/packageE/pages/cart/cart2/cart2.wxss b/packageE/pages/cart/cart2/cart2.wxss index e1f5cc9..ea3843e 100644 --- a/packageE/pages/cart/cart2/cart2.wxss +++ b/packageE/pages/cart/cart2/cart2.wxss @@ -1164,7 +1164,7 @@ margin-left: 20rpx; .xc-coupon-fram { position: relative; - margin-right: 16rpx; + margin-right: 11rpx; /* width:200rpx; */ /* padding-top:30rpx; */ @@ -1177,7 +1177,7 @@ margin-left: 20rpx; background-color: #d60021; /* margin:0 auto; */ color: #fff; - padding: 6rpx 20rpx; + padding: 6rpx 16rpx; } diff --git a/packageE/pages/cart/cart2/filter.wxs b/packageE/pages/cart/cart2/filter.wxs index 9b528dd..a4f27a9 100644 --- a/packageE/pages/cart/cart2/filter.wxs +++ b/packageE/pages/cart/cart2/filter.wxs @@ -14,7 +14,15 @@ function is_more_act(items,show_can_cx){ return true; } +function check_show(items,sele_prom_type){ + if([7,10].indexOf(sele_prom_type)>-1){ + if(!items.is_act_last) return false; + } + return true; +} + module.exports = { format: format, - is_more_act:is_more_act + is_more_act:is_more_act, + check_show:check_show } diff --git a/packageE/pages/cart/cart2/ladder_calculate.js b/packageE/pages/cart/cart2/ladder_calculate.js index 9c94907..80f652c 100644 --- a/packageE/pages/cart/cart2/ladder_calculate.js +++ b/packageE/pages/cart/cart2/ladder_calculate.js @@ -129,8 +129,12 @@ module.exports = { goods.splice(idx, 1); } + + //-- 只统计是参与活动的商品 -- for (var ij in goods) { + goods[ij].is_act_last=0; + var iter = goods[ij]; if (iter.prom_type != 10 || iter.prom_id != act_item.id) { continue; @@ -138,6 +142,8 @@ module.exports = { all_price0 += iter.goods_num * iter.goods_price; } + goods[goods.length-1].is_act_last=1; + if(!c_item.ladder_prom_goods) c_item.ladder_prom_goods={}; if(!c_item.ladder_prom_goods[act_item.id]) c_item.ladder_prom_goods[act_item.id]={}; diff --git a/packageE/pages/cart/cart2/zh_calculate.js b/packageE/pages/cart/cart2/zh_calculate.js index d4697f1..b5298b0 100644 --- a/packageE/pages/cart/cart2/zh_calculate.js +++ b/packageE/pages/cart/cart2/zh_calculate.js @@ -327,12 +327,16 @@ module.exports = { //-- 只统计是参与活动的商品 -- for (var ij in goods) { + goods[ij].is_act_last=0; var iter = goods[ij]; if (iter.prom_type != 7 || iter.prom_id != act.id) { continue; } all_price0 += iter.goods_num * iter.goods_price; } + + goods[goods.length-1].is_act_last=1; + //-- 活动的条件已经满足 -- c_item.zh_prom_goods[act.id].is_has_zh = 1; c_item.is_has_zh = 1; diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js index bc1efa8..1475c7b 100644 --- a/pages/cart/cart/cart.js +++ b/pages/cart/cart/cart.js @@ -57,294 +57,34 @@ 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; - var zh_prom = null; - var gdlist = null; + var th=this; var req_d = { - "store_id": os.stoid, - "goods_id": item1.goods_id, - "user_id": user_id, + store_id: os.stoid, + user_id: getApp().globalData.user_id, + goods_id: item1.goods_id, + goods_num: item1.goods_num, + goods_price: item1.goods_price, } - - await getApp().request.promiseGet(url, {data: req_d}).then(e => { - if (e.data.code == 0 && e.data.data && e.data.data.length > 0) { - var arr = e.data.data; - if (arr.length) { - var arr3 = arr.filter(function (e) { - return e.s_time < ut.gettimestamp() && e.prom_type == 7; - }) - if (arr3 && arr3.length) { - zh_id = arr3[0].act_id; - } - } - } - }) - - //-- 如果有组合购的时候,同时还要判断单件商品的购买数量有没有满足组合购的条件 -- - 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){ - //-- 组合购活动是限购 -- - var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${user_id}&prom_type=7&prom_id=${zh_id}`; - let res = await getApp().request.promiseGet(url, { - data: {} - }); - let userbuynum = 0 - if (res.data.code == 0 && res.data.data) { - userbuynum = res.data.data.userbuynum - } - - if(zh_pro0.buy_limit>0 && zh_pro0.buy_limit<=userbuynum){ - is_zh_ok=0; - } - } - - //-- 如果满足条件,才会显示活动 -- - 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, - store_id: os.stoid, - zh_id: zh_id, + //--- 调用接口获取活动 --- + await getApp().promiseGet('/api/weshop/goods/getGoodsPromInfo', {data:req_d}).then(res => { + if(res.data.code==0){ + item1.more_cx=res.data.data.more_cx; + if(res.data.data.zh_pro){ + th.data.zuhe_map[res.data.data.zh_pro.id]=res.data.data.zh_pro; } - - await getApp().request.promiseGet(url1, { - data: req_data - }).then(res => { - if (ut.ajax_ok(res)) { - gdlist = res.data.data.pageData; - } - }) - - var zh_gd_fd = gdlist.find(function (e) { - return e.goods_id == item1.goods_id; - }) - - if (is_zh_ok) { - //-- 商品的限购 -- - var promgoodsbuynum = 0; - //--要获得商品,该用户买了多少件,同步应用-- - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { - data: { - store_id: os.stoid, - user_id: getApp().globalData.user_id, - goods_id: item1.goods_id, - prom_type: 7, - prom_id: zh_id - }, - }).then(res => { - var buy_num_data = res.data.data; - if (buy_num_data.promgoodsbuynum) { - promgoodsbuynum = buy_num_data.promgoodsbuynum; - } + if(res.data.data.ladder_pro){ + var ladder_pro=res.data.data.ladder_pro; + th.data.ladder_map[ladder_pro.id]=ladder_pro; + var fd=res.data.data.more_cx.find(function (e){ + return e.prom_type==10; }) - - //-- 组合购活动是限购 -- - var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${user_id}&prom_type=7&prom_id=${zh_id}`; - let res = await getApp().request.promiseGet(url, {}); - let userbuynum = 0 - if (res.data.code == 0 && res.data.data) { - userbuynum = res.data.data.userbuynum - } - - //-- 判断是不是超出商品的限购 -- - if (zh_gd_fd.buyqty > 0 && zh_gd_fd.promgoodsbuynum >= zh_gd_fd.buyqty) { - is_zh_ok = 0; - } - //--- 要判断这个商品的必买有没有满足,如果是一件商品的时候,那么就要判断这个商品。同时商品的购买数量有没有满足 --- - if (is_state == 1) { - //-- 看有没有必买商品不满足的时候 -- - var f_gd = gdlist.find(function (e) { - return e.zhqty > 0 && e.goods_id != item1.goods_id; - }) - if (f_gd) { - is_zh_ok = 0; - } - //-- 同时商品的购买数量有没有满足 -- - if(item1.goods_num { - if (res.data.code == 0 && res.data.data) { - th.data.ladder_map[act_id] = res.data.data; - if(!item1.more_cx) item1.more_cx=[]; - - 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) { - - var fir_act = r_data.promGoodsLists[0]; - //-- 计算一下限购,满足限购数才显示 -- - var url = `/api/weshop/ordergoods/getUserBuyPromNum?is_all=1&store_id=${os.stoid}&user_id=${user_id}&prom_type=3&prom_id=${fir_act.prom_id}`; - let res_o = await getApp().request.promiseGet(url, {}); - let user_pre_buynum=0 - if(res_o.data.code==0 && res_o.data.data){ - user_pre_buynum=res_o.data.data.userbuynum - } - //--- 这个地方是在计算优惠促销的限购 --- - 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) { - //-- 按件进行计算 -- - if (fir_act.prom_type == 1) { - if (fir_act.condition <= item1.goods_num) { - item1.more_cx.push(push_item); - } - }else{ - //-- 按数量进行计算 -- - 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); - } - } - - }else{ - if(!item1.more_cx) item1.more_cx=[]; - item1.more_cx.push(push_item); - } - } - } - } - - console.log(JSON.stringify(item1.more_cx),333); + }) }, @@ -4724,6 +4464,9 @@ Page({ //-- 看有没有选中的活动 -- if(cx_prom_group[h].sele){ find_sele=1; + cx_prom_group[h].act.sele=1; + }else{ + cx_prom_group[h].act.sele=0; } cx_arr.push(cx_prom_group[h].act); } @@ -4731,7 +4474,7 @@ Page({ //-- if(!find_sele) cx_arr[0].sele=1; -- var cp_arr=JSON.parse(JSON.stringify(cx_arr)); var pro_pop = this.selectComponent("#pro_pop"); //组件的id - pro_pop.set_init(1,cx_arr,1); + pro_pop.set_init(1,cp_arr,1); }, //--- 选择回来时候的选择 --- -- libgit2 0.21.4