diff --git a/packageE/pages/cart/cart2/cart2.js b/packageE/pages/cart/cart2/cart2.js index ff26391..cbf9ff0 100644 --- a/packageE/pages/cart/cart2/cart2.js +++ b/packageE/pages/cart/cart2/cart2.js @@ -151,6 +151,7 @@ Page({ yh_is_xz_yh:{},//优惠促销优惠券使用开关 }, + onLoad: function (t) { wx.setNavigationBarTitle({ title: "填写订单", }) var th = this; @@ -161,8 +162,7 @@ Page({ //清空is_pick_up getApp().request.put("/api/weshop/useraddress/updatePickUp", { data: { user_id: getApp().globalData.user_id, is_pickup: 0 }, - success: function (s) { - } + success: function (s) {} }); //阶梯购 或者 组合购的立即购买 @@ -355,6 +355,8 @@ Page({ } this.calculatePrice()//计算金额 }, + + //直接购买预存开启关闭 prestore2() { let txt = 'bn_goods.yck_off'; @@ -376,7 +378,6 @@ Page({ }else{ this.calculatePrice2()//计算金额 } - }, //计算商品预存款前置方法------------------------------------ async beforAdvancesum(cartList) { @@ -542,7 +543,7 @@ Page({ }); }, - //----------------展示页面,是再获取用户信息之后-------------- + //---------------- 展示页面,是再获取用户信息之后 -------------- async show_page() { var th = this, ta = this.data.param; //获取用户预存款 @@ -676,6 +677,37 @@ Page({ }, + + //获取促销活动的组合 + cx_prom_group(prom_list){ + var th=this; + + //需要读者系统顺序 + var json_d =this.data.json_d; + var auto_promote_sale=json_d.auto_promote_sale; + var sort_type=''; + + if(!auto_promote_sale){ + sort_type='prom_id'; + }else{ + var auto_promote_sale=auto_promote_sale.split(','); + //-- 循环处理 -- + prom_list.map(function (e){ + var fd=auto_promote_sale.indexOf(e.prom_type+''); + e.sort=fd; + }) + sort_type='sort'; + } + + //-- 排序一下,进行升序 -- + function comp(a, b,sort_type) { + return a[sort_type]-b[sort_type]; //升序 + } + + //使用sort排序 + prom_list.sort(comp); + }, + //-----真的获取购物车,入口-------- get_cart: function () { var th = this, app = getApp(); @@ -715,14 +747,25 @@ Page({ //---是不是购买等级卡成功的返回---等级卡显示的判断--- var is_card_back = getApp().globalData.is_card_back; - //-- 判断组合购是总数量是不是存在 -- var no_zh_num={}; + //-------- 如果是立即购买过来的时候 或者购买的商品只有一种的时候 --- + if(carr.length==1){ + var item1=carr[0]; + await th.buy_pro_group(item1,1); + if(item1.prom_type==0 && item1.more_cx){ + //-- 对活动进行排序 -- + th.cx_prom_group(item1.more_cx); + item1.prom_type=item1.more_cx[0].prom_type; + item1.prom_type=item1.more_cx[0].prom_id; + } + } + + for (var i = 0; i < carr.length; i++) { var item1 = carr[i]; //把已经购买了多少见的内容填入 - var goodsbuynum = 0, promgoodsbuynum = 0; //--要获得商品,该用户买了多少件,同步应用-- await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { @@ -1244,7 +1287,7 @@ Page({ }, - //-----获取立即购买的商品信息,入口---- + //-----单个商品购买的入口判断---- get_buy_goods: function (e) { var th = this; var gg = to.get_b_now(); @@ -1750,37 +1793,198 @@ Page({ } }, - //-- 立即购买的时候,获取商品优惠活动 -- - async buy_pro_group(gd){ + //-- 立即购买的时候,获取商品优惠活动,is_state判断是不是单个商品购买, + // 很多活动需要判断会员的plus等级, 权益登陆,user_id调用接口是必须的 -- + //先用着,后面会用接口来代替 + async buy_pro_group(item1, is_state) { + //-- 代发商品不参与任何活动 -- + if(item1.whsle_id) return false; var url = '/api/weshop/activitylist/listGoodActInfo2New'; - var user_id=getApp().globalData.user_id; - var zh_id=0; + 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": gd.goods_id, + "goods_id": item1.goods_id, "user_id": user_id, } - await getApp().request.promiseGet(url, {}).then(res=>{ - + await getApp().request.promiseGet(url, {data: req_d}).then(res => { + if (e.data.code == 0 && e.data.data && e.data.data.length > 0) { + var arr = e.data.data; + if (arr.length) { + 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 url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + zh_id + "/" + user_id; - getApp().request.promiseGet(url, { + if (zh_id) { + var is_zh_ok = 1; + + + //--- 首先组合购的限购 --- + 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) { + 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 == item.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 != item.goods_id; + }) + if (f_gd) { + is_zh_ok = 0; + } + //-- 同时商品的购买数量有没有满足 -- + if(item1.goods_num { + if (res.data.code == 0 && res.data.data) { + if(!item1.more_cx) item1.more_cx=[]; + item1.more_cx.push({prom_type:10,prom_id: act_id}); + } + }) + } + //-- 优惠促销的时候 -- 此时要注意活动的限购次数,以及活动的购买金额或者购买数量有没有满足 + 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 item1.goods_num) { + item1.more_cx.push(push_item); + } + }else{ + //-- 按数量进行计算 -- + var all_price = item.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); + } + } + } } - //调用接口判断订单优惠, - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromListNew1/" + os.stoid + "/" + gd.goods_id + "/0" + "/" + user_id, { - }).then(async res=>{ - }); }, + //---------------检查是否有收货地址------------------- checkAddressList: function () { var t = this; diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js index 728432e..b916092 100644 --- a/pages/cart/cart/cart.js +++ b/pages/cart/cart/cart.js @@ -8,6 +8,7 @@ var t = getApp(), zh_calc = require("zh_calculate.js"), ladder_calc = require("ladder_calculate.js"); var regeneratorRuntime = require('../../../utils/runtime.js'); +const e = require("../../../../utils/common.js"); Page({ @@ -41,6 +42,7 @@ Page({ zuhe_map: {}, zuhe_map_good: {}, in_zhact_gdmap: {}, //不同门店参与同一活动的限购 + in_zhact_gdmap_gp: {}, //不同门店参与同一活动的限购,新版判断的时候 ladder_map: {}, //阶梯促销需要的map @@ -48,8 +50,220 @@ Page({ promgoods_list: {} }, - onLoad: function () { + //-- 立即购买的时候,获取商品优惠活动,is_state判断是不是单个商品购买, + // 很多活动需要判断会员的plus等级, 权益登陆,user_id调用接口是必须的 -- + //先用着,后面会用接口来代替 + async buy_pro_group(item1, is_state) { + //-- 代发商品不参与任何活动 -- + if(item1.whsle_id) return false; + 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(res => { + if (e.data.code == 0 && e.data.data && e.data.data.length > 0) { + var arr = e.data.data; + if (arr.length) { + 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(rh => { + 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) { + 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 == item.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 != item.goods_id; + }) + if (f_gd) { + is_zh_ok = 0; + } + //-- 同时商品的购买数量有没有满足 -- + if(item1.goods_num { + if (res.data.code == 0 && res.data.data) { + if(!item1.more_cx) item1.more_cx=[]; + item1.more_cx.push({prom_type:10,prom_id: act_id}); + } + }) + } + //-- 优惠促销的时候 -- 此时要注意活动的限购次数,以及活动的购买金额或者购买数量有没有满足 + 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 item1.goods_num) { + item1.more_cx.push(push_item); + } + }else{ + //-- 按数量进行计算 -- + var all_price = item.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); + } + } + } + } + + + }, + + onLoad: function () { var a = this, ee = a; @@ -79,7 +293,6 @@ Page({ getApp().requestCardNum(this); } - var th = this; this.setData({ requestData: null, @@ -450,7 +663,6 @@ Page({ var g_arr = []; for (var i = 0; i < carr.length; i++) { - //-- 清理购物车的选中状态 -- var url = '/api/weshop/cart/update'; getApp().request.put(url, { @@ -495,8 +707,6 @@ Page({ var item = carr[i]; var good = item; - - if (item.is_gift) { var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; getApp().request.delete(url, { @@ -550,82 +760,36 @@ Page({ } //-- 如果有优惠促销,和阶梯促销,要看下有没有组合购,搭配购,看一下优惠促销和阶梯促销谁是指定商品参与的 -- - if(item.prom_type==0 || item.prom_type==3 || item.prom_type==10){ - + if(item.prom_type==3 || item.prom_type==5 || item.prom_type==7 || item.prom_type==10){ var c_prom_type=0; var c_prom_id=0; - //因为有全场优惠活动,商品参加的活动还未开始 - var url_ch_more_act = "/api/weshop/activitylist/getGoodActInfo"; - var req_data_m = { - store_id: os.stoid, goodsidlist: item.goods_id, is_detail: 1, user_id: user_id - }; - await getApp().request.promiseGet(url_ch_more_act, { data: req_data_m }).then(async function (res) { - if (res.data.code == 0 && res.data.data && res.data.data.length) { - //-- 先看一下有没有组合购 -- - var zh_fd=res.data.data.filter(function (e) { - return e.prom_type==7; - }) - if(zh_fd && zh_fd.length){ - c_prom_type=zh_fd[0].prom_type; - c_prom_id=zh_fd[0].act_id; - return; - } - - //-- 先看一下有没有搭配购 -- - var dp_fd=res.data.data.filter(function (e) { - return e.prom_type==5; - }) - if(dp_fd && dp_fd.length){ - c_prom_type=dp_fd[0].prom_type; - c_prom_id=dp_fd[0].act_id; - return; - } - - //-- 先看一下有没有指定优惠促销 -- - var yh_fd=res.data.data.filter(function (e) { - return e.prom_type==3 && e.good_object==1; - }) - if(yh_fd && yh_fd.length){ - c_prom_type=yh_fd[0].prom_type; - c_prom_id=yh_fd[0].act_id; - return; - } + item.prom_type=c_prom_type; + item.prom_id=c_prom_id; - //-- 先看一下有没有指定阶梯促销 -- - var jt_fd=res.data.data.filter(function (e) { - return e.prom_type==10 && e.good_object==1; - }) - if(jt_fd && jt_fd.length){ - c_prom_type=jt_fd[0].prom_type; - c_prom_id=jt_fd[0].act_id; - } + if (th.data.card_field && good[th.data.card_field]) { + item.goods_price = good[th.data.card_field]; //要同步下线商品的id + } else { + item.goods_price = good.shop_price; + } - } + //-- 购物车更新 -- + var updata1 = { + id: item.id, + prom_type: c_prom_type, + prom_id:c_prom_id, + store_id: os.stoid, + user_id: getApp().globalData.userInfo.user_id + }; + getApp().request.put("/api/weshop/cart/update", { + data: updata1, }) - if(c_prom_type && (c_prom_type!=item.prom_type || c_prom_id!=item.prom_id )){ - item.prom_type=c_prom_type; - item.prom_id=c_prom_id; - //-- 购物车更新 -- - var updata1 = { - id: item.id, - prom_type: c_prom_type, - prom_id:c_prom_id, - store_id: os.stoid, - user_id: getApp().globalData.userInfo.user_id - }; - getApp().request.put("/api/weshop/cart/update", { - data: updata1, - }) - } - } //判断如果是普通商品,后面参加活动了,变成失效商品 if (item.prom_type == 0 ) { - var prom = null; var now = ut.gettimestamp(); await getApp().request.promiseGet(`/api/weshop/activitylist/listGoodActInfo2New`, { @@ -644,41 +808,20 @@ Page({ prom.push(a_item); } } - - } }) - let prom_true = 0 - let prom_id = 0 - if (prom) { - prom.map(item => { - if (item.prom_type == 3 || item.prom_type == 5 || item.prom_type == 7 || item.prom_type == 10) { - prom_true = item.prom_type - prom_id = item.act_id - } - }) - } - if (prom_true) { - //-- 购物车更新 -- - var updata1 = { - id: item.id, - prom_type: prom_true, - prom_id, - store_id: os.stoid, - user_id: getApp().globalData.userInfo.user_id - }; - item.prom_id = prom_id - item.prom_type = prom_true - getApp().request.put("/api/weshop/cart/update", { - data: updata1, - }) - } else { - if (prom && !item.is_integral_normal && !item.is_pd_normal && prom[0].prom_type != 5) { - th.disInvalid(item); + //只有一种活动,但是又是秒杀之类是互动,就要失效。不能是普通购买 + if (prom.length==1 && [1,2,4,6,8,9].indexOf(prom.prom_type)>-1 && !prom.is_integral_normal && !prom.is_pd_normal) { + th.disInvalid(item); + continue; + } + //只有秒杀和积分购的时候,不能是普通购买 + if (prom.length==2 && [1,4].indexOf(prom.prom_type)>-1 && [1,4].indexOf(prom.prom_type)>-1 && !prom.is_integral_normal && !prom.is_pd_normal) { + th.disInvalid(item); continue; - } } + } @@ -699,7 +842,6 @@ Page({ }) } - //如果秒杀活动都去掉了,或者结束了,那么这个商品也没有必要留着 if (item.prom_type == 1) { var prom = null; @@ -784,392 +926,7 @@ Page({ } - //--判断优惠活动有没有过期,-- - else if (item.prom_type == 3) { - var isok = 1, is_g_prom = 0; - - //因为有全场优惠活动,商品参加的活动还未开始 - var url = "/api/weshop/activitylist/getGoodActInfo"; - var req_data = { - store_id: os.stoid, goodsidlist: item.goods_id, is_detail: 1, user_id: user_id - }; - await getApp().request.promiseGet(url, { data: req_data }).then(async function (res) { - if (res.data.code == 0 && res.data.data && res.data.data.length) { - for (let i in res.data.data) { - let item = res.data.data[i]; - if (item.prom_type == 3) { - is_g_prom = 1; break; - } - } - } - }) - if (is_g_prom) { - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromListNew/" + os.stoid + "/" + item.goods_id + "/1" + "/" + getApp().globalData.user_id, {}).then(res => { - if (res.data.code == 0) { - var r_data = res.data.data; - if (!r_data.promGoodsLists) { - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - // getApp().request.delete(url, {}); - //商品已经无活动 - // th.disInvalid(item); - // isok = 0; - item.prom_type = 0 - //购物车更新 - th.cartUpFn(item) - } else { - //如果活动的ID不一样,说明原先的活动已经没有参与了或者过期了 - if (item.prom_id != r_data.promGoodsLists[0].prom_id) { - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - // getApp().request.delete(url, {}); - //商品已经下架 - // th.disInvalid(item); - // isok = 0; - item.prom_type = 0 - //购物车更新 - th.cartUpFn(item) - } - } - - } else { - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - // getApp().request.delete(url, {}); - // th.disInvalid(item); - // //商品已经下架 - // isok = 0; - item.prom_type = 0 - //购物车更新 - th.cartUpFn(item) - } - }) - - } else { - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromNormal/" + os.stoid + "/" + item.goods_id, {}).then(res => { - if (res.data.code == 0) { - var r_data = res.data.data; - if (!r_data.promGoodsLists) { - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - // getApp().request.delete(url, {}); - // th.disInvalid(item); - // //商品已经无活动 - // isok = 0; - item.prom_type = 0 - //购物车更新 - th.cartUpFn(item) - } else { - //如果活动的ID不一样,说明原先的活动已经没有参与了或者过期了 - if (item.prom_id != r_data.promGoodsLists[0].prom_id) { - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - // getApp().request.delete(url, {}); - // th.disInvalid(item); - // //商品已经下架 - // isok = 0; - item.prom_type = 0 - //购物车更新 - th.cartUpFn(item) - } - } - - } else { - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - // getApp().request.delete(url, {}); - // th.disInvalid(item,1); - // //商品已经下架 - // isok = 0; - item.prom_type = 0 - //购物车更新 - th.cartUpFn(item) - } - }) - } - // if (!isok) continue; - } - else if (item.prom_type == 7) { - console.log('组合购------------'); - if (!th.data.zuhe_map[item.prom_id]) { - console.log('组1') - //如果有组合购 - var isok = 1; - var is_flag = 1; - var act = null; - var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + item.prom_id + "/" + getApp().globalData.user_id; - await getApp().request.promiseGet(url, {}).then(res => { - console.log(res); - if (res.data.code == 0 && res.data.data) { - if (res.data.data.is_show != 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; - } - if(res.data.data.zh_num>0 && res.data.data.zh_num<=res.data.data.zh_buy_num){ - isok = 0; - } - - act = res.data.data; - - } else { - //未找到商品的活动 - is_flag = 0; - } - }) - if (!isok) { - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - // getApp().request.delete(url, {}); - //组合购失效不处理 - // th.disInvalid(item); - // th.data.zuhe_map[item.prom_id] = -1; - // continue; - item.prom_type = 0 - //购物车更新 - th.cartUpFn(item) - } else { - th.data.zuhe_map[item.prom_id] = act; - var url1 = "/api/weshop/prom/zhbuyGoods/page"; - var req_data = { - page: 1, - pageSize: 2000, - store_id: os.stoid, - zh_id: item.prom_id, - } - await getApp().request.promiseGet(url1, { - data: req_data - }).then(res => { - console.log(res, 2000); - if (ut.ajax_ok(res)) { - var gdlist = res.data.data.pageData; - gdlist.forEach(i => { - if (item.goods_id == i.goods_id && !is_flag) { - item.prom_type = 0; - item.prom_type1 = 0; - item.prom_id = 0; - item.prom_id1 = 0 - } - }) - th.data.zuhe_map_good[item.prom_id] = gdlist; - } - }) - } - } - console.log('组2') - if (th.data.zuhe_map[item.prom_id] && th.data.zuhe_map[item.prom_id] != -1) { - console.log('组3') - var gdlist = th.data.zuhe_map_good[item.prom_id]; - var t_item = gdlist.find(function (ele) { - return ele.goods_id == item.goods_id - }) - if (!t_item) { - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - // getApp().request.delete(url, {}); - //组合购不处理 - // th.disInvalid(item,1); - // th.data.zuhe_map[item.prom_id] = -1; - // continue; - item.prom_type = 0 - //购物车更新 - th.cartUpFn(item) - } else { - let act =th.data.zuhe_map[item.prom_id] - //判断是否超出组合购次数限制 - - if(act.buy_limit !=0){ - let userbuynum = await th.getUserBuyPromNum(item.goods_prom_id) - if(userbuynum>=act.buy_limit){ - item.goods_prom_type = 0 - item.goods_prom_id = 0 - item.prom_type = 0 - item.prom_id = 0 - //购物车更新 - th.cartUpFn(item) - }else{ - item.buyqty = t_item.buyqty; - item.zh_b_num = promgoodsbuynum; - item.act = th.data.zuhe_map[item.prom_id]; - } - }else{ - item.buyqty = t_item.buyqty; - item.zh_b_num = promgoodsbuynum; - item.act = th.data.zuhe_map[item.prom_id]; - } - } - } //else{ - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - // getApp().request.delete(url, {}); - // th.data.zuhe_map[item.prom_id]=-1; - // continue; - // } - } - else if (item.prom_type == 10) { - if (!th.data.ladder_map[item.prom_id]) { - //如果有阶梯购 - var isok = 1; - var is_flag = 1; - var act = null; - 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) { - 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 { - //未找到商品的活动 - isok = 0; - } - }) - if (!isok) { - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - // getApp().request.delete(url, {}); - th.disInvalid(item, 1); - th.data.ladder_map[item.prom_id] = -1; - continue; - } - th.data.ladder_map[item.prom_id] = act; - - //-- 获取阶梯规则 -- - var url1 = "/api/weshop/prom/ladderList/list"; - var req_data = { - store_id: os.stoid, - form_id: item.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[item.prom_id].ladder_list = gdlist; - } - }) - } - //直接把活动赋值给元素 - if (th.data.ladder_map[item.prom_id] && th.data.ladder_map[item.prom_id] != -1) { - item.act = th.data.ladder_map[item.prom_id]; - } - - } - //判断不是代发的商品 - else if (item.prom_type == 0 && !item.whsle_id) { - - //如果有优惠活动,要更新活动 - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + item.goods_id + "/1" + "/" + getApp().globalData.user_id, {}).then(res => { - if (res.data.code == 0 && res.data.data) { - var r_data = res.data.data; - if (r_data.promGoodsLists) { - var url = '/api/weshop/cart/update'; - getApp().request.put(url, { - data: { - id: item.id, - store_id: oo.stoid, - prom_type: 3, - prom_id: r_data.promGoodsLists[0].prom_id - } - }); - item.prom_type = 3; - item.prom_id = r_data.promGoodsLists[0].prom_id; - } else if (r_data.ladderLists) { - - item.prom_type = 10; - item.prom_id = r_data.ladderLists[0].form_id; - - } - } - }) - - //如果是阶梯购的时候 - if (item.prom_type == 10) { - - - if (!th.data.ladder_map[item.prom_id]) { - //如果有阶梯购,要判断身份 - var isok = 1; - var is_flag = 1; - var act = null; - 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) { - 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 { - //未找到商品的活动 - isok = 0; - } - }) - if (!isok) { - item.prom_type = 0; - item.prom_id = 0; - } else { - - th.data.ladder_map[item.prom_id] = act; - //-- 获取阶梯规则 -- - var url1 = "/api/weshop/prom/ladderList/list"; - var req_data = { - store_id: os.stoid, - form_id: item.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[item.prom_id].ladder_list = gdlist; - } - }) - } - - } - //直接把活动赋值给元素 - if (th.data.ladder_map[item.prom_id] && th.data.ladder_map[item.prom_id] != -1) { - item.act = th.data.ladder_map[item.prom_id]; - - //如果有活动,就更新商品的活动那个 - var url = '/api/weshop/cart/update'; - getApp().request.put(url, { - data: { id: item.id, store_id: oo.stoid, prom_type: 10, prom_id: item.prom_id } - }); - - } - } - - } all_num += item.goods_num; item.original_img = oo.imghost + item.original_img; @@ -1177,26 +934,9 @@ Page({ item.erpwareid = good.erpwareid; //要同步下线商品的id item.shop_price = good.shop_price; //要同步下线商品的id - //当商品要计算等级价的售 - if (item.prom_type == 0 || item.prom_type == 3 || item.prom_type == 5 || item.prom_type == 7) { - if (th.data.card_field && good[th.data.card_field]) { - item.goods_price = good[th.data.card_field]; //要同步下线商品的id - } else { - item.goods_price = good.shop_price; - } - - var t = { - id: item.id, - store_id: os.stoid, - user_id: getApp().globalData.userInfo.user_id, - goods_price: item.goods_price - } - getApp().request.put("/api/weshop/cart/update", { - isShowLoading: 0, - data: t, - }) - - } + //-- 读出每一种商品的所有的活动,方便后面的活动切换使用 -- + if(item.prom_type==0) + th.buy_pro_group(item,0); var pcid = item.pick_id; var find = 0; @@ -1251,21 +991,6 @@ Page({ } } } - - for (let u1 in arr) { - var u_item = arr[u1]; - //把组合购进行分组 - 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; - } - } th.setData({ requestData: arr, @@ -2157,12 +1882,6 @@ Page({ } - - - e.setData({ - [txt]: Number(!a.selected), - }); - if (a.prom_type == 3) { e.data.duo_zp_num_arr = {}; if (!a.selected) { @@ -2174,6 +1893,11 @@ Page({ await e.check_prom_activity(i); } } + + e.setData({ + [txt]: Number(!a.selected), + }); + this.doCheckAll(); } }, @@ -2265,7 +1989,7 @@ Page({ }, //----------检查是否全选--------- - doCheckAll: function () { + doCheckAll:async function () { var th = this, tfeel = 0, t_num = 0, @@ -2274,11 +1998,19 @@ Page({ car2 = this.data.service_data, all_num = 0; + + th.data.zuhe_map={}; + th.data.zuhe_map_good={}; + //-- 购物车 -- if (car && car.length > 0) { th.data.in_zhact_gdmap = {}; for (var a = 0; a < car.length; a++) { + var item = car[a].goods, is_s_sele = 1; + //-- 先批量判断一下活动的类型,同时要同步跟新 -- + await th.cart_cx_group(item,a); + var offline_price = 0; var offline_num = 0; for (var c = 0; c < item.length; c++) { @@ -2405,6 +2137,7 @@ Page({ }); }, + //----------------------更新购物数量,加减,调用接口--------------------- postCardList: function (t, item, pitem) { var e = this, @@ -4561,6 +4294,110 @@ Page({ icon: 'none', duration: 2000 }); + }, + + + //-- 判读一下促销分组的问题 -- + async cart_cx_group(goods,index){ + var th=this; + //-- 促销活动对象表 --- + var cx_act_map=[]; + for(var i=0; i1){ + //门店分类要排序下 + function compare() { + return function (a, b) { + var value1 = a.goods.length; + var value2 = b.goods.length; + return value2 - value1; + } + } + cx_act_map.sort(compare); + } + //-- 能够进行最后计算的活动(包含切换) -- + var can_calc_cx=[]; + //-- 此时对数组的活动进行判断,看能不能达到购买数量的条件 -- + for(var ii=0;ii { + zh_pro0 = res.data.data; + }) + if(!zh_pro0) break; + //当满足组合的要求:总数要满足,起购数要满足 + if(zh_calc.ch_zh_ok(zh_pro0,zhact_gdlist,zh_goods,th)){ + can_calc_cx.push(item_act_map) + } + break; + default: + can_calc_cx.push(item_act_map); + } + + } + + if(can_calc_cx.length){ + + } + + th.setData({can_calc_cx}) } + + }); \ No newline at end of file diff --git a/pages/cart/cart/zh_calculate.js b/pages/cart/cart/zh_calculate.js index 27d2900..a34f38b 100644 --- a/pages/cart/cart/zh_calculate.js +++ b/pages/cart/cart/zh_calculate.js @@ -519,7 +519,89 @@ module.exports = { } } return zhqty_bz_flag; - } + }, + + //-- 判断组合购有没有满足 --- + ch_zh_ok(act,gdlist,c_goods,th){ + //-- 寻找一下 -- + function get_num(ite) { + for (let v1 in c_goods) { + var vh = c_goods[v1]; + if (vh.goods_id == ite.goods_id) { + return vh; + } + } + return 0; + } + var goods =gdlist; + for (var i in goods) { + var item = goods[i]; + var cart_num = get_num(item).goods_num; + var zh_b_num = get_num2(item).zh_b_num; + if (!cart_num) { + if (item.zhqty) { + need_to_buy += item.zhqty; + } + continue; + } + + item.cart_num = cart_num; + //-- 当商品有购买的时候,以及有限购的时候 -- + if (item.buyqty > 0) { + var cbuy = item.buyqty - zh_b_num; + var key = item.goods_id + "" + act.id; + if (th.data.in_zhact_gdmap_gp[key]) { + var cbuy = item.buyqty - zh_b_num - th.data.in_zhact_gdmap_gp[key]; + } + //当可买的数量为0 + if (cbuy <= 0) { + item.num = 0; + } else { + if (cbuy >= cart_num) item.num = cart_num; + else { + item.num = cbuy; + } + } + } else { + item.num = cart_num; + } + + if (item.num) { + all_num += item.num; + //当有起购数的控制的时候 + if (item.zhqty) { + if (item.num < item.zhqty) { + need_to_buy += item.zhqty - item.num; + } + } + } else { + if (item.zhqty) { + need_to_buy += item.zhqty; + } + } + } + + //当满足组合的要求:总数要满足,起购数要满足 + if (all_num >= act.zhbuyqty && !need_to_buy) { + //商品的列表 + for (var u in goods) { + var ite = goods[u]; + if (ite.buyqty > 0 && ite.num > 0) { + console.log(222, th.data.in_zhact_gdmap_gp); + var key = ite.goods_id + "" + act.id; + if (th.data.in_zhact_gdmap_gp[key]) { + th.data.in_zhact_gdmap_gp[key] += ite.num; + } else { + th.data.in_zhact_gdmap_gp[key] = ite.num; + } + } + } + return true; + } + return false; + } + + } \ No newline at end of file diff --git a/pages/goods/goodsInfo/goodsInfo.js b/pages/goods/goodsInfo/goodsInfo.js index 2b1f557..d5a7e5a 100644 --- a/pages/goods/goodsInfo/goodsInfo.js +++ b/pages/goods/goodsInfo/goodsInfo.js @@ -293,7 +293,6 @@ Page({ self = this; - //检查测肤 getApp().check_skin_face(t, 0, gid); @@ -1544,6 +1543,7 @@ Page({ }) // return userbuynum }, + //优惠促销用户参与次数 async getUserBuyPromNum_pre(prom_id){ var user_id=0 @@ -6978,6 +6978,7 @@ Page({ } } }, + //-----显示优惠券的时候情况----- show_more_cx: function () { if (this.data.is_more_cx) { @@ -7230,7 +7231,7 @@ Page({ }) }, - //-- 获取默认的促销活动的默认活动 -- + //--- 获取默认的促销活动的默认活动 --- check_prom_custom(ind) { if(ind){ if (!this.data.cx_prom_group.length) return 0;