From e24ef618da370ff34fa25c0551bb9cbc6be48e7f Mon Sep 17 00:00:00 2001 From: luo <17530855@qq.com> Date: Wed, 4 Jan 2023 14:04:57 +0800 Subject: [PATCH] oa单购物车组合购优化 --- pages/cart/cart/cart.js | 8095 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 file changed, 4059 insertions(+), 4036 deletions(-) diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js index 072a779..9c00997 100644 --- a/pages/cart/cart/cart.js +++ b/pages/cart/cart/cart.js @@ -1,4371 +1,4394 @@ var t = getApp(), - a = t.request, - oo = t.globalData.setting, - os = oo, - app = getApp(), - rq = t.request, - ut = require("../../../utils/util.js"), - zh_calc = require("zh_calculate.js"), - ladder_calc = require("ladder_calculate.js"); - var regeneratorRuntime = require('../../../utils/runtime.js'); + a = t.request, + oo = t.globalData.setting, + os = oo, + app = getApp(), + rq = t.request, + ut = require("../../../utils/util.js"), + zh_calc = require("zh_calculate.js"), + ladder_calc = require("ladder_calculate.js"); +var regeneratorRuntime = require('../../../utils/runtime.js'); Page({ - data: { - url: t.globalData.setting.url, - resourceUrl: t.globalData.setting.resourceUrl, - iurl: t.globalData.setting.imghost, - requestData: null, - checkAllToggle: 0, - total_fee: 0, //结算金额 - total_num: 0, //结算数量 - all_num: 0, //购物车中所有商品数量 - allsto: null, - imgUrl: t.globalData.setting.imghost, - is_has_flash: 0, //是否又秒杀活动 - is_edit: 0, //是否编辑 - is_load: 0, //是否已加载 - up_dating: 0, //更新中 - isreduce: 0, //商品数量是否可减 - isadd: 0, //是否可以加商品数量 - invalidList:[], //失效商品列表 - - card_field:"", - bconf:null, - btn_click:1, - - service_data:null, - max_sw_height:200, - - zhhe_prom:[], //组合活动需要显示差多少件 - zuhe_map:{}, - zuhe_map_good:{}, - in_zhact_gdmap:{}, //不同门店参与同一活动的限购 - - ladder_map:{}, //阶梯促销需要的map - - promgoods_map:{}, - promgoods_list:{} - - }, - onLoad: function () { - - var a = this, - ee = a; - - wx.setNavigationBarTitle({ - title: "购物车", - }) + data: { + url: t.globalData.setting.url, + resourceUrl: t.globalData.setting.resourceUrl, + iurl: t.globalData.setting.imghost, + requestData: null, + checkAllToggle: 0, + total_fee: 0, //结算金额 + total_num: 0, //结算数量 + all_num: 0, //购物车中所有商品数量 + allsto: null, + imgUrl: t.globalData.setting.imghost, + is_has_flash: 0, //是否又秒杀活动 + is_edit: 0, //是否编辑 + is_load: 0, //是否已加载 + up_dating: 0, //更新中 + isreduce: 0, //商品数量是否可减 + isadd: 0, //是否可以加商品数量 + invalidList: [], //失效商品列表 + + card_field: "", + bconf: null, + btn_click: 1, + + service_data: null, + max_sw_height: 200, + + zhhe_prom: [], //组合活动需要显示差多少件 + zuhe_map: {}, + zuhe_map_good: {}, + in_zhact_gdmap: {}, //不同门店参与同一活动的限购 + + ladder_map: {}, //阶梯促销需要的map + + promgoods_map: {}, + promgoods_list: {} - //判断是否有登录 - t.auth.hadAuth() && t.getUserInfo(function () { - //a.getCardList(); - }); + }, + onLoad: function () { - }, - onShow: function () { - //每次显示都清空 - this.data.in_zhact_gdmap = {}; - this.setData({ - invalidList:[] - }); + var a = this, + ee = a; - if (typeof this.getTabBar === 'function' && this.getTabBar()) { - var index = getApp().getPageIndex(this); - this.getTabBar().setData({ - active: index //数字是当前页面在tabbar的索引 - }) + wx.setNavigationBarTitle({ + title: "购物车", + }) + + //判断是否有登录 + t.auth.hadAuth() && t.getUserInfo(function () { + //a.getCardList(); + }); + + }, + onShow: function () { + //每次显示都清空 + this.data.in_zhact_gdmap = {}; + this.setData({ + invalidList: [] + }); + + if (typeof this.getTabBar === 'function' && this.getTabBar()) { + var index = getApp().getPageIndex(this); + this.getTabBar().setData({ + active: index //数字是当前页面在tabbar的索引 + }) + + getApp().requestCardNum(this); + } - getApp().requestCardNum(this); + var th = this; + this.setData({ + requestData: null, + is_load: 0 + }); + //调用底部导航 + //t.editTabBar(th,getApp().globalData.setting.stoid,getApp().globalData.url); + //----获取系统参数----- + getApp().getConfig2(function (e) { + var json_d = JSON.parse(e.switch_list); + var is_open_offline = json_d.is_pricing_open; + th.setData({ + bconfig: e, + freight_free: e.freight_free, + weight_free: e.weight_free, + sales_rules: e.sales_rules, + appoint_pick_keyid: json_d.appoint_pick_keyid + }); + getApp().request.promiseGet("/store/storemoduleendtime/page?store_id=" + os.stoid + "&type=6", {}).then(res => { + //未购买 + if (res.data.code != 0 || !res.data.data || !res.data.data.pageData || !res.data.data.pageData.length) { + is_open_offline = 0; + } else { + //已经过期 + var item = res.data.data.pageData[0]; + if (item.end_time < ut.gettimestamp()) { + is_open_offline = 0; + } } + th.data.is_open_offline = is_open_offline; + th.getCardList(); + }); - var th = this; - this.setData({ - requestData: null, - is_load: 0 + }, 1) + + //-- 判断有没有自定义的广告图片 -- + getApp().request.promiseGet("/api/weshop/ad/page?pid=1101&store_id=" + os.stoid, { + data: { + enabled: 1 + } + }).then(res => { + if (ut.ajax_ok(res)) { + var a = res.data.data.pageData; + var narr = []; + for (var i in a) { + var tt = { + 'ad_code': os.imghost + a[i].ad_code, + 'media_link': '', + 'ad_weapplink': a[i].ad_weapplink + }; + narr.push(tt); + } + th.setData({ ad_data: narr }); + } else { + + var user_id = getApp().globalData.user_id; + if (!user_id) user_id = 0; + var req_d = { + store_id: oo.stoid, + timetype: 2, + is_end: 0, + is_show: 1, + pageSize: 1, + user_id: user_id + } + //--获取是否又秒杀活动-- + getApp().request.promiseGet("/api/ms/flash_sale/spikepage", { + data: req_d, + }).then(res => { + if (ut.ajax_ok(res)) { + th.setData({ + is_has_flash: 1 + }) + } }); - //调用底部导航 - //t.editTabBar(th,getApp().globalData.setting.stoid,getApp().globalData.url); - //----获取系统参数----- - getApp().getConfig2(function(e) { - var json_d = JSON.parse(e.switch_list); - var is_open_offline=json_d.is_pricing_open; - th.setData({ - bconfig: e, - freight_free:e.freight_free, - weight_free:e.weight_free, - sales_rules:e.sales_rules, - appoint_pick_keyid:json_d.appoint_pick_keyid - }); - getApp().request.promiseGet("/store/storemoduleendtime/page?store_id=" +os.stoid + "&type=6",{}).then(res=>{ - //未购买 - if(res.data.code!=0 || !res.data.data || !res.data.data.pageData || !res.data.data.pageData.length){ - is_open_offline=0; - }else{ - //已经过期 - var item=res.data.data.pageData[0]; - if(item.end_time { - if( ut.ajax_ok(res)){ - var a = res.data.data.pageData; - var narr=[]; - for(var i in a){ - var tt = { - 'ad_code': os.imghost + a[i].ad_code, - 'media_link': '', - 'ad_weapplink':a[i].ad_weapplink - }; - narr.push(tt); - } - th.setData({ad_data:narr}); - }else{ - - var user_id=getApp().globalData.user_id; - if(!user_id) user_id=0; - var req_d= { - store_id: oo.stoid, - timetype: 2, - is_end: 0, - is_show: 1, - pageSize: 1, - user_id: user_id - } - //--获取是否又秒杀活动-- - getApp().request.promiseGet("/api/ms/flash_sale/spikepage", { - data: req_d, - }).then(res => { - if (ut.ajax_ok(res)) { - th.setData({ - is_has_flash: 1 - }) - } - }); - } - }) + }, - }, - - onHide() { - this.data.zuhe_map = {}; - this.data.promgoods_map={}; - this.data.promgoods_list={}; - }, - onUnLoad() { - getApp().globalData.cart_zh_act = null; - }, - - //失效商品处理 - // invType 表示失效的原因,classType 表示类别 0 表示商品,1表示服务 - disInvalid(item,invType=0,classType=0){ - let invalidList = this.data.invalidList; - let off = true; - console.log('失效商品-----1') - console.log(item) - console.log('失效商品-----2') - invalidList.map(ite=>{ - if(classType ==0 && ite.goods_id == item.goods_id){ //判断该商品是否存在于失效列表中 - off = false; - } - if(classType ==1 && ite.service_id == item.service_id){ //判断该商品是否存在于失效列表中 - off = false; - } - }); - if(off){ - if(invType==0){ - item.invalid = '商品活动变动'; - }else if(invType ==1){ - item.invalid = '商品已下架'; - }else{ - item.invalid ="商品超出限购" - } - item.classType = classType - invalidList.push(item); - this.setData({invalidList}); + onHide() { + this.data.zuhe_map = {}; + this.data.promgoods_map = {}; + this.data.promgoods_list = {}; + }, + onUnLoad() { + getApp().globalData.cart_zh_act = null; + }, + + //失效商品处理 + // invType 表示失效的原因,classType 表示类别 0 表示商品,1表示服务 + disInvalid(item, invType = 0, classType = 0) { + let invalidList = this.data.invalidList; + let off = true; + console.log('失效商品-----1') + console.log(item) + console.log('失效商品-----2') + invalidList.map(ite => { + if (classType == 0 && ite.goods_id == item.goods_id) { //判断该商品是否存在于失效列表中 + off = false; } - }, - //-------------获取购物车列表,要安装门店进行分类订单----------- - getCardList: function () { - this.setData({invalidList:[]}); //重置失效商品 - var th = this; - - //要获取会员是不是等级会员 - getApp().getConfig2(function (conf) { - //--- 看后台是不是有开通等级卡 --- - if (conf.switch_list) { - var s_list = JSON.parse(conf.switch_list); - var user = getApp().globalData.userInfo; - //如果后台有开启等级价的功能 - if (user && parseInt(s_list.rank_switch) == 2 && user['card_expiredate']) { - - var str = user['card_expiredate'].replace(/-/g, '/'); - var end = new Date(str); - end = Date.parse(end) / 1000; - var now = ut.gettimestamp(); - //--- 判断是等级会员,且在有效期范围内 --- - if (user.card_field && now < end) { - th.setData({ - card_field: user.card_field - }) - } - } + if (classType == 1 && ite.service_id == item.service_id) { //判断该商品是否存在于失效列表中 + off = false; + } + }); + if (off) { + if (invType == 0) { + item.invalid = '商品活动变动'; + } else if (invType == 1) { + item.invalid = '商品已下架'; + } else { + item.invalid = "商品超出限购" + } + item.classType = classType + invalidList.push(item); + this.setData({ invalidList }); + } + }, + //-------------获取购物车列表,要安装门店进行分类订单----------- + getCardList: function () { + this.setData({ invalidList: [] }); //重置失效商品 + var th = this; + + //要获取会员是不是等级会员 + getApp().getConfig2(function (conf) { + //--- 看后台是不是有开通等级卡 --- + if (conf.switch_list) { + var s_list = JSON.parse(conf.switch_list); + var user = getApp().globalData.userInfo; + //如果后台有开启等级价的功能 + if (user && parseInt(s_list.rank_switch) == 2 && user['card_expiredate']) { + + var str = user['card_expiredate'].replace(/-/g, '/'); + var end = new Date(str); + end = Date.parse(end) / 1000; + var now = ut.gettimestamp(); + //--- 判断是等级会员,且在有效期范围内 --- + if (user.card_field && now < end) { + th.setData({ + card_field: user.card_field + }) + } + } - //如果门店还未读出来的时候 - if (th.data.allsto == null) { - //读取门店 - app.get_allsto(function (e) { - th.setData({ - allsto: e - }); - th.get_cart(); - th.get_ser_cart(); - }) - } else { - th.get_cart(); - th.get_ser_cart(); - } + //如果门店还未读出来的时候 + if (th.data.allsto == null) { + //读取门店 + app.get_allsto(function (e) { + th.setData({ + allsto: e + }); + th.get_cart(); + th.get_ser_cart(); + }) + } else { + th.get_cart(); + th.get_ser_cart(); + } - } - }) - if ((!this.data.requestData || this.data.requestData.length == 0) && (!this.data.service_data || this.data.service_data.length == 0)) { - setTimeout(function () { - var goods_list = th.selectComponent("#goods_list"); //组件的id - if (goods_list) { - goods_list.init(); - goods_list.get_list(); - } - }, 800) + } + }) + if ((!this.data.requestData || this.data.requestData.length == 0) && (!this.data.service_data || this.data.service_data.length == 0)) { + setTimeout(function () { + var goods_list = th.selectComponent("#goods_list"); //组件的id + if (goods_list) { + goods_list.init(); + goods_list.get_list(); } - }, - //失效单选 - inCheck_th_item: async function(e){ - console.log('失效单选'); - console.log(e); - let i = e.currentTarget.dataset.item; - let invalidList = this.data.invalidList; - console.log(i) - console.log(invalidList[i]) - invalidList[i].selected = invalidList[i].selected == 1 ? 0 : 1; - console.log(invalidList); - this.setData({invalidList}); - console.log(this.data.invalidList); - // this.doCheckAll(); - - }, - //清空失效宝贝 - delInva_all(obj=null){ - - var th = this; - wx.showModal({ - title: '提示', - content: '确认要清空全部失效商品吗?', - success(res) { - if (res.confirm) { - th.delInva(obj); - } - } - }) - }, + }, 800) + } + }, + //失效单选 + inCheck_th_item: async function (e) { + console.log('失效单选'); + console.log(e); + let i = e.currentTarget.dataset.item; + let invalidList = this.data.invalidList; + console.log(i) + console.log(invalidList[i]) + invalidList[i].selected = invalidList[i].selected == 1 ? 0 : 1; + console.log(invalidList); + this.setData({ invalidList }); + console.log(this.data.invalidList); + // this.doCheckAll(); + }, + //清空失效宝贝 + delInva_all(obj = null) { + + var th = this; + wx.showModal({ + title: '提示', + content: '确认要清空全部失效商品吗?', + success(res) { + if (res.confirm) { + th.delInva(obj); + } + } + }) + }, - delInva(obj){ - var th=this; - let ainvalid=''; - let binvalid=''; - var user_id = getApp().globalData.user_id; - let ab = 0; //选中 - let abc = 0; // - let arr = obj.id ? [obj] : th.data.invalidList - console.log('失效-----') - console.log(arr); - arr.map(item=>{ - if (item.classType ==0 ) { - ainvalid+=item.id + ','; - ab = 1; - } - if (item.classType ==1 ) { - binvalid+=item.id + ','; - abc = 1; - } - }); + delInva(obj) { + var th = this; + let ainvalid = ''; + let binvalid = ''; + var user_id = getApp().globalData.user_id; + + let ab = 0; //选中 + let abc = 0; // + let arr = obj.id ? [obj] : th.data.invalidList + console.log('失效-----') + console.log(arr); + arr.map(item => { + if (item.classType == 0) { + ainvalid += item.id + ','; + ab = 1; + } + if (item.classType == 1) { + binvalid += item.id + ','; + abc = 1; + } + }); - if (ab == 0 && abc == 0 ) { - t.my_warnning('没有需要清空的失效宝贝', 0, th); - return false; - } - if (ab) { - ainvalid = ainvalid.substring(0, ainvalid.length - 1); - //要删除购物车中的商品 - var url = '/api/weshop/cart/delIds/' + oo.stoid + '/' + user_id + '/' + ainvalid; - getApp().request.delete(url, { - success: function (t) { - th.getCardList(); - getApp().requestCardNum(th); - } - }); + if (ab == 0 && abc == 0) { + t.my_warnning('没有需要清空的失效宝贝', 0, th); + return false; + } + if (ab) { + ainvalid = ainvalid.substring(0, ainvalid.length - 1); + //要删除购物车中的商品 + var url = '/api/weshop/cart/delIds/' + oo.stoid + '/' + user_id + '/' + ainvalid; + getApp().request.delete(url, { + success: function (t) { + th.getCardList(); + getApp().requestCardNum(th); } - if (abc) { - binvalid = binvalid.substring(0, binvalid.length - 1); - //要删除购物车中的商品 - var url = '/api/weshop/cartService/delIds/' + oo.stoid + '/' + user_id + '/' + binvalid; - getApp().request.delete(url, { - success: function (t) { - th.getCardList(); - getApp().requestCardNum(th); - } - }); + }); + } + if (abc) { + binvalid = binvalid.substring(0, binvalid.length - 1); + //要删除购物车中的商品 + var url = '/api/weshop/cartService/delIds/' + oo.stoid + '/' + user_id + '/' + binvalid; + getApp().request.delete(url, { + success: function (t) { + th.getCardList(); + getApp().requestCardNum(th); } - }, + }); + } + }, - //---------点击收藏------------ - collectGoods: async function () { - - let t = this - let timestamp = Date.parse(new Date()); - timestamp = timestamp / 1000; - let d = { - // goods_id: t.data.data.goods_id, - user_id: app.globalData.user_id, - store_id: oo.stoid, - add_time: timestamp, - }; - //加入收藏夹就是导购的ID - if (getApp().globalData.guide_id) { - d.guide_id = getApp().globalData.guide_id; - d.guide_type = 2; - } - let off = false - let errOff = false - var invalidList= [...this.data.invalidList] - var arr=[] - invalidList.map(async (item,index)=>{ - if (item.selected) { - off = true - if(item.classType ==1 ){ - d.goods_id = item.service_id - d.type = 1 - }else{ - d.goods_id = item.goods_id - d.type =0 + //---------点击收藏------------ + collectGoods: async function () { + + let t = this + let timestamp = Date.parse(new Date()); + timestamp = timestamp / 1000; + let d = { + // goods_id: t.data.data.goods_id, + user_id: app.globalData.user_id, + store_id: oo.stoid, + add_time: timestamp, + }; + //加入收藏夹就是导购的ID + if (getApp().globalData.guide_id) { + d.guide_id = getApp().globalData.guide_id; + d.guide_type = 2; + } + let off = false + let errOff = false + var invalidList = [...this.data.invalidList] + var arr = [] + invalidList.map(async (item, index) => { + if (item.selected) { + off = true + if (item.classType == 1) { + d.goods_id = item.service_id + d.type = 1 + } else { + d.goods_id = item.goods_id + d.type = 0 + } + let is_collect = 0 + //------是否收藏---------- + await getApp().request.promiseGet("/api/weshop/goodscollect/page", { + data: { + store_id: oo.stoid, + goods_id: d.goods_id, + user_id: app.globalData.user_id, } - let is_collect = 0 - //------是否收藏---------- - await getApp().request.promiseGet("/api/weshop/goodscollect/page", { - data: { - store_id: oo.stoid, - goods_id: d.goods_id, - user_id: app.globalData.user_id, - } - }).then(res => { - let t = res; - let data = t.data.data.pageData; - if (data && data.length > 0) { - is_collect =1 - } - }) - if (is_collect) { - t.delInva(item) - return + }).then(res => { + let t = res; + let data = t.data.data.pageData; + if (data && data.length > 0) { + is_collect = 1 } - await getApp().request.post("/api/weshop/goodscollect/save", { //添加收藏 - data: d, - success: function (e) { - t.data.is_collect_load = 0; - if (e.data.code == 0) { - t.delInva(item) - }else{ - errOff = true - arr.push(item) - } - } - }); - }else{ - arr.push(item) - } - }); - if (off) { - t.setData({ - invalidList:arr }) - if (errOff) { - getApp().my_warnning('移到收藏夹错误', 0, t); - }else{ - wx.showToast({ - title: "收藏成功", - icon: 'none', - duration: 2000 - }) + if (is_collect) { + t.delInva(item) + return } - console.log('移动成功') - }else{ - getApp().my_warnning('请先选择失效宝贝', 0, t); + await getApp().request.post("/api/weshop/goodscollect/save", { //添加收藏 + data: d, + success: function (e) { + t.data.is_collect_load = 0; + if (e.data.code == 0) { + t.delInva(item) + } else { + errOff = true + arr.push(item) + } + } + }); + } else { + arr.push(item) + } + }); + if (off) { + t.setData({ + invalidList: arr + }) + if (errOff) { + getApp().my_warnning('移到收藏夹错误', 0, t); + } else { + wx.showToast({ + title: "收藏成功", + icon: 'none', + duration: 2000 + }) } + console.log('移动成功') + } else { + getApp().my_warnning('请先选择失效宝贝', 0, t); + } }, - //-----真的获取购物车-------- - get_cart: function () { - var th = this; - th.data.in_zhact_gdmap={}; - th.data.ladder_map={}; - var rd = Math.random().toString(36).substr(2, 15); - var user_id = getApp().globalData.user_id; - getApp().request.get("/api/weshop/cart/list", { - data: { - user_id: app.globalData.user_id, - rd: rd, - store_id: oo.stoid, - pageSize: 600, - state: 0 - }, - success: async function (su) { - console.log(su, 10000); - //按门店分类的数组 - var arr = new Array(), carr = su.data.data.pageData; - var all_num = 0; - - if (carr && carr.length > 0) { - var g_arr = []; - for (var i = 0; i < carr.length; i++) { - if (g_arr.length == 0) g_arr.push(carr[i].goods_id); - else { - var ind = g_arr.findIndex(function (ele) { - return ele.goods_id == carr[i].goods_id - }) - if (ind > -1) continue; - g_arr.push(carr[i].goods_id) - } - } - - var by_map = null; - //--要获得商品,该用户买了多少件,同步应用-- - await getApp().request.promiseGet("/api/weshop/ordergoods/listUserBuyGoodsNum", { - data: { - store_id: oo.stoid, - user_id: user_id, - goods_ids: g_arr.join(','), - - }, - }).then(res => { - if(ut.ajax_ok2(res)) { - by_map = {}; - for (let i in res.data.data) { - let item = res.data.data[i]; - by_map[item.goods_id] = item; - } - } - }) - - for (var i = 0; i < carr.length; i++) { - 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, { - success: function (t) {} - }); - //商品已经下架 - continue; - } + //-----真的获取购物车-------- + get_cart: function () { + var th = this; + th.data.in_zhact_gdmap = {}; + th.data.ladder_map = {}; + var rd = Math.random().toString(36).substr(2, 15); + var user_id = getApp().globalData.user_id; + getApp().request.get("/api/weshop/cart/list", { + data: { + user_id: app.globalData.user_id, + rd: rd, + store_id: oo.stoid, + pageSize: 600, + state: 0 + }, + success: async function (su) { + console.log(su, 10000); + //按门店分类的数组 + var arr = new Array(), carr = su.data.data.pageData; + var all_num = 0; + + + if (carr && carr.length > 0) { + var g_arr = []; + for (var i = 0; i < carr.length; i++) { - var tt = ut.gettimestamp(); - //如果商品下架了,或者商品是赠品,一开始都要清除 - if ((good.down_time > 0 && good.down_time < tt) || good.is_on_sale == 0) { - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - // getApp().request.delete(url, { - // success: function (t) {} - // }); - th.disInvalid(item,1); - //商品已经下架 - continue; - } - var goodsbuynum = 0, - promgoodsbuynum = 0, - limit = 0; - if (by_map && by_map[good.goods_id]) { - goodsbuynum = by_map[good.goods_id].goodsbuynum; - promgoodsbuynum = by_map[good.goods_id].promgoodsbuynum; - } - limit = good.viplimited; - //判断商品的限购 - if (item.goods_num + goodsbuynum > limit && limit > 0) { - var cbuy = limit - goodsbuynum; - if (cbuy <= 0) { - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - // a.delete(url, {}); - th.disInvalid(item,2); - continue; - } - //-- 购物车更新 -- - var updata1 = { - id: item.id, - goods_num: cbuy, - store_id: os.stoid, - user_id: getApp().globalData.userInfo.user_id - }; - getApp().request.put("/api/weshop/cart/update", { - data: updata1, - }) - item.goods_num = cbuy; - } - //判断如果是普通商品,后面参加活动了,变成失效商品 - if (item.prom_type == 0) { - var prom = null; - var now = ut.gettimestamp(); - await getApp().request.promiseGet(`/api/weshop/activitylist/listGoodActInfo2`, { - data:{ - "store_id": oo.stoid, - "goods_id": item.goods_id, - "user_id": user_id, - } - }).then(res => { - if (res.data.code == 0) { - prom = res.data.data - } - }) - let prom_true = 0 - let prom_id=0 - if (prom) { - prom.map(item=>{ - if (item.prom_type==3 || item.prom_type==7) { - 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); - continue; - } - } - } - //如果秒杀活动都去掉了,或者结束了,那么这个商品也没有必要留着 - if (item.prom_type == 1) { - var prom = null; - var now = ut.gettimestamp(); - await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + os.stoid + '/' + user_id + "/" + item.prom_id, {}).then(res => { - console.log('活动情况----------------') - console.log(res) - if (res.data.code == 0) { - prom = res.data.data; - prom.price = prom.user_price; - } - }) - //---如果互动都已经过期,或者还未开始,或者无活动 - if (!prom || prom.is_end == 1 || prom.end_time < now || prom.start_time > now) { - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - // a.delete(url, { - // success: function (t) {} - // }); - th.disInvalid(item); - //商品已经下架 - continue; - } + if (g_arr.length == 0) g_arr.push(carr[i].goods_id); + else { + var ind = g_arr.findIndex(function (ele) { + return ele.goods_id == carr[i].goods_id + }) + if (ind > -1) continue; + g_arr.push(carr[i].goods_id) + } + } - //判断秒杀的限购 - if (item.goods_num + promgoodsbuynum > prom.buy_limit && prom.buy_limit > 0) { - var cbuy = prom.buy_limit - promgoodsbuynum; - if (cbuy <= 0) { - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - // a.delete(url, {}); - th.disInvalid(item,2); - continue; - } - //-- 购物车更新 -- - var updata1 = { - id: item.id, - goods_num: cbuy, - store_id: os.stoid, - user_id: getApp().globalData.userInfo.user_id - }; - getApp().request.put("/api/weshop/cart/update", { - data: updata1, - }) - item.goods_num = cbuy; - } + var by_map = null; + + //--要获得商品,该用户买了多少件,同步应用-- + await getApp().request.promiseGet("/api/weshop/ordergoods/listUserBuyGoodsNum", { + data: { + store_id: oo.stoid, + user_id: user_id, + goods_ids: g_arr.join(','), - //价格不对,就要更新一下 - if (good.goods_price != prom.price) { - good.goods_price = prom.price; - //-- 购物车更新秒杀价格 -- - var updata1 = { - id: item.id, - goods_price: prom.price, - store_id: os.stoid, - user_id: getApp().globalData.userInfo.user_id - }; - getApp().request.put("/api/weshop/cart/update", { - data: updata1, - }) - } - } - // 判断团购活动都去掉了,或者结束了,那么这个商品也没有必要留着 - else if(item.prom_type ==2){ - var prom = null; - var now = ut.gettimestamp(); - await getApp().request.promiseGet('/api/weshop/goods/groupBuy/getActInfo/'+ oo.stoid + '/' + item.goods_id + '/' + item.prom_id, {}).then(res => { - if (res.data.code == 0) { - prom = res.data.data; - prom.price = prom.user_price; - } - }); - //---如果互动都已经过期,或者还未开始,或者无活动 - if (!prom || prom.is_end == 1 || prom.end_time < now || prom.start_time > now) { - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - // a.delete(url, { - // success: function (t) {} - // }); - console.log('团购活动-----'); - th.disInvalid(item); - //商品已经下架 - continue; - } - - - } - //--判断优惠活动有没有过期,-- - 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/getGoodsPromList/" + 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) - } - }) + }, + }).then(res => { + if (ut.ajax_ok2(res)) { + by_map = {}; + for (let i in res.data.data) { + let item = res.data.data[i]; + by_map[item.goods_id] = item; + } + } + }) + + for (var i = 0; i < carr.length; i++) { + 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, { + success: function (t) { } + }); + //商品已经下架 + continue; + } - } 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; - } - 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{ - 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() { - 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 tt = ut.gettimestamp(); + //如果商品下架了,或者商品是赠品,一开始都要清除 + if ((good.down_time > 0 && good.down_time < tt) || good.is_on_sale == 0) { + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; + // getApp().request.delete(url, { + // success: function (t) {} + // }); + th.disInvalid(item, 1); + //商品已经下架 + continue; + } + var goodsbuynum = 0, + promgoodsbuynum = 0, + limit = 0; + if (by_map && by_map[good.goods_id]) { + goodsbuynum = by_map[good.goods_id].goodsbuynum; + promgoodsbuynum = by_map[good.goods_id].promgoodsbuynum; + } - } - //判断不是代发的商品 - 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) { - 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() { - 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} - }); - - } - } + limit = good.viplimited; + //判断商品的限购 + if (item.goods_num + goodsbuynum > limit && limit > 0) { + var cbuy = limit - goodsbuynum; + if (cbuy <= 0) { + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; + // a.delete(url, {}); + th.disInvalid(item, 2); + continue; + } + //-- 购物车更新 -- + var updata1 = { + id: item.id, + goods_num: cbuy, + store_id: os.stoid, + user_id: getApp().globalData.userInfo.user_id + }; + getApp().request.put("/api/weshop/cart/update", { + data: updata1, + }) + item.goods_num = cbuy; + } + + //判断如果是普通商品,后面参加活动了,变成失效商品 + if (item.prom_type == 0 ) { - } - all_num += item.goods_num; - item.original_img = oo.imghost + item.original_img; - item.selected = 0; - item.erpwareid = good.erpwareid; //要同步下线商品的id - item.shop_price = good.shop_price; //要同步下线商品的id + var prom = null; + var now = ut.gettimestamp(); + await getApp().request.promiseGet(`/api/weshop/activitylist/listGoodActInfo2`, { + data: { + "store_id": oo.stoid, + "goods_id": item.goods_id, + "user_id": user_id, + } + }).then(res => { + if (res.data.code == 0) { + prom = res.data.data + } + }) + let prom_true = 0 + let prom_id = 0 + if (prom) { + prom.map(item => { + if (item.prom_type == 3 || item.prom_type == 7) { + 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, + }) - //当商品要计算等级价的售 - 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; - } + } else { + if (prom && !item.is_integral_normal && !item.is_pd_normal && prom[0].prom_type != 5) { + th.disInvalid(item); + continue; + } + } + } + + //如果秒杀活动都去掉了,或者结束了,那么这个商品也没有必要留着 + if (item.prom_type == 1) { + var prom = null; + var now = ut.gettimestamp(); + await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + os.stoid + '/' + user_id + "/" + item.prom_id, {}).then(res => { + console.log('活动情况----------------') + console.log(res) + if (res.data.code == 0) { + prom = res.data.data; + prom.price = prom.user_price; + } + }) + //---如果互动都已经过期,或者还未开始,或者无活动 + if (!prom || prom.is_end == 1 || prom.end_time < now || prom.start_time > now) { + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; + // a.delete(url, { + // success: function (t) {} + // }); + th.disInvalid(item); + //商品已经下架 + continue; + } - 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.goods_num + promgoodsbuynum > prom.buy_limit && prom.buy_limit > 0) { + var cbuy = prom.buy_limit - promgoodsbuynum; + if (cbuy <= 0) { + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; + // a.delete(url, {}); + th.disInvalid(item, 2); + continue; + } + //-- 购物车更新 -- + var updata1 = { + id: item.id, + goods_num: cbuy, + store_id: os.stoid, + user_id: getApp().globalData.userInfo.user_id + }; + getApp().request.put("/api/weshop/cart/update", { + data: updata1, + }) + item.goods_num = cbuy; + } - } + //价格不对,就要更新一下 + if (good.goods_price != prom.price) { + good.goods_price = prom.price; + //-- 购物车更新秒杀价格 -- + var updata1 = { + id: item.id, + goods_price: prom.price, + store_id: os.stoid, + user_id: getApp().globalData.userInfo.user_id + }; + getApp().request.put("/api/weshop/cart/update", { + data: updata1, + }) + } + } + // 判断团购活动都去掉了,或者结束了,那么这个商品也没有必要留着 + else if (item.prom_type == 2) { + var prom = null; + var now = ut.gettimestamp(); + await getApp().request.promiseGet('/api/weshop/goods/groupBuy/getActInfo/' + oo.stoid + '/' + item.goods_id + '/' + item.prom_id, {}).then(res => { + if (res.data.code == 0) { + prom = res.data.data; + prom.price = prom.user_price; + } + }); + //---如果互动都已经过期,或者还未开始,或者无活动 + if (!prom || prom.is_end == 1 || prom.end_time < now || prom.start_time > now) { + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; + // a.delete(url, { + // success: function (t) {} + // }); + console.log('团购活动-----'); + th.disInvalid(item); + //商品已经下架 + continue; + } - var pcid = item.pick_id; - var find = 0; - //---------循环查找门店--- - if (arr.length > 0) { - for (var j = 0; j < arr.length; j++) { - if (arr[j].pid == pcid) { - arr[j].goods.push(item); - find = 1; - break; - } - } - } - //------如果没有找到----- - if (find == 0) { - var pikname = ''; - //找到门店名称 - 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; - break; - } - } - var narr = new Array(); - narr.push(item); - var ie = { - pid: pcid, - pname: pikname, - goods: narr, - selected: 0 - }; - arr.push(ie); - } + } + //--判断优惠活动有没有过期,-- + 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 (th.data.is_open_offline && th.data.is_open_offline > 0 && th.data.sales_rules == 2) { - //-- 此时要实时更新线下取价价格 -- - for (var i = 0; i < arr.length; i++) { - //每个门店都去看下线下取价 - var list = arr[i]; - await th.set_offline(list); + if (is_g_prom) { + 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) { + 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 { - //-- 此时要实时更新线下取价价格 -- - for (var ij in arr) { - //每个门店都去看下线下取价 - var list = arr[ij]; - for (var i in list.goods) { - list.goods[i].offline_price = 0 - } + + } 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) + } } - } - - 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, - all_num: all_num, - is_load: 1, - is_edit: 0 - }), - th.doCheckAll(), wx.stopPullDownRefresh(); + } 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; } - }); - }, - //商品购物车修改 - cartUpFn(item){ - let updata1 = { - id: item.id, - prom_type: 0, - prom_id:item.prom_id, - store_id: os.stoid, - user_id: getApp().globalData.userInfo.user_id - }; - getApp().request.put("/api/weshop/cart/update", { - data: updata1, - }) - }, - //-----真的获取购物车-------- - get_ser_cart: function () { - var th = this; - var user_id = getApp().globalData.user_id; - var rd = Math.random().toString(36).substr(2, 15); - getApp().request.get("/api/weshop/cartService/page", { - data: { - user_id: app.globalData.user_id, - rd: rd, - store_id: oo.stoid, - pageSize: 600, - }, - success: async function (su) { - //按门店分类的数组 - var arr = new Array(), - carr = su.data.data.pageData; - var all_num = 0; - - if (carr && carr.length > 0) { - for (var i = 0; i < carr.length; i++) { - var item = carr[i]; - var good = null; - - await getApp().request.promiseGet("/api/weshop/serviceCard/get/" + oo.stoid + "/" + item.service_id, {}).then(res => { - good = res.data.data; - }) - if (!good) { - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - // getApp().request.delete(url, { - // success: function (t) {} - // }); - th.disInvalid({ - ...item, - original_img: good.imgUrl - },1,1); - continue; - } - - //如果商品下架了,或者商品是赠品,一开始都要清除 - if (good.is_show == 0) { - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - // getApp().request.delete(url, { - // success: function (t) {} - // }); - th.disInvalid({ - ...item, - original_img: good.imgUrl - },1,1); - //商品已经下架 - 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; + } + act = res.data.data; - if(item.prom_type ==0){ - var prom = null; - var now = ut.gettimestamp(); - await getApp().request.promiseGet(`/api/weshop/activitylist/listGoodActInfo2`, { - data:{ - store_id: oo.stoid, - goods_id: item.service_id, - user_id: user_id, - goods_type: 1, - } - }).then(res => { - console.log('服务卡活动信息') - console.log(res) - console.log('服务卡活动信息-------------') - if (res.data.code == 0) { - prom = res.data.data - } - }) - if(prom){ - th.disInvalid({ - ...item, - original_img: good.imgUrl - },2,1) - continue; - } + } 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; - if (item.prom_type == 1) { - var prom = null; - var now = ut.gettimestamp(); - await getApp().request.promiseGet('/api/ms/flash_sale/getNew/' + os.stoid + '/' + user_id + '/' + item.prom_id, {}).then(res => { - if (res.data.code == 0) { - prom = res.data.data; - prom.price = prom.user_price; - } - }); - console.log('服务的秒杀信息') - console.log(prom) - //---如果互动都已经过期,或者还未开始,或者无活动 - if (!prom || prom.is_end == 1 || prom.end_time < now || prom.start_time > now) { - th.disInvalid({ - ...item, - original_img: good.imgUrl - },0,1); - continue; - } - //判断秒杀的限购 - var msNum=0 - await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum", { - data: { - store_id: os.stoid, - user_id: user_id, - card_id: prom.goods_id, - } - }).then(res=>{ - if (res.data.code==0) { - msNum = res.data.data.cardbuynum - console.log('秒杀限购:'+msNum) - } - }) - } - if (msNum && (msNum >= prom.buy_limit) ) { - console.log('秒杀限购') - th.disInvalid({ - ...item, - original_img: good.imgUrl - },2,1) - continue; - } + } 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; - all_num += item.goods_num; - item.img_url = oo.imghost + good.imgUrl; - item.selected = 0; - - - var pcid = item.pick_id; - var find = 0; - //---------循环查找门店--- - if (arr.length > 0) { - for (var j = 0; j < arr.length; j++) { - if (arr[j].pid == pcid) { - arr[j].goods.push(item); - find = 1; - break; - } - } - } + //-- 获取阶梯规则 -- + 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]; + } - //------如果没有找到----- - if (find == 0) { - var pikname = ''; - //找到门店名称 - 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; - break; - } - } - var narr = new Array(); - narr.push(item); - var ie = { - pid: pcid, - pname: pikname, - goods: narr, - selected: 0 - }; - arr.push(ie); - } + } + //判断不是代发的商品 + 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) { + 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; + item.selected = 0; + 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, + }) + + } + + var pcid = item.pick_id; + var find = 0; + //---------循环查找门店--- + if (arr.length > 0) { + for (var j = 0; j < arr.length; j++) { + if (arr[j].pid == pcid) { + arr[j].goods.push(item); + find = 1; + break; + } + } + } + + //------如果没有找到----- + if (find == 0) { + var pikname = ''; + //找到门店名称 + 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; + break; + } + } + var narr = new Array(); + narr.push(item); + var ie = { + pid: pcid, + pname: pikname, + goods: narr, + selected: 0 + }; + arr.push(ie); + } + } + } + + if (th.data.is_open_offline && th.data.is_open_offline > 0 && th.data.sales_rules == 2) { + //-- 此时要实时更新线下取价价格 -- + for (var i = 0; i < arr.length; i++) { + //每个门店都去看下线下取价 + var list = arr[i]; + await th.set_offline(list); + } + } else { + //-- 此时要实时更新线下取价价格 -- + for (var ij in arr) { + //每个门店都去看下线下取价 + var list = arr[ij]; + for (var i in list.goods) { + list.goods[i].offline_price = 0 + } + } + } + + 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, + all_num: all_num, + is_load: 1, + is_edit: 0 + }), + th.doCheckAll(), wx.stopPullDownRefresh(); + + } + }); + }, + //商品购物车修改 + cartUpFn(item) { + let updata1 = { + id: item.id, + prom_type: 0, + prom_id: item.prom_id, + store_id: os.stoid, + user_id: getApp().globalData.userInfo.user_id + }; + getApp().request.put("/api/weshop/cart/update", { + data: updata1, + }) + }, + //-----真的获取购物车-------- + get_ser_cart: function () { + var th = this; + var user_id = getApp().globalData.user_id; + var rd = Math.random().toString(36).substr(2, 15); + getApp().request.get("/api/weshop/cartService/page", { + data: { + user_id: app.globalData.user_id, + rd: rd, + store_id: oo.stoid, + pageSize: 600, + }, + success: async function (su) { + //按门店分类的数组 + var arr = new Array(), + carr = su.data.data.pageData; + var all_num = 0; + + if (carr && carr.length > 0) { + for (var i = 0; i < carr.length; i++) { + var item = carr[i]; + var good = null; + + await getApp().request.promiseGet("/api/weshop/serviceCard/get/" + oo.stoid + "/" + item.service_id, {}).then(res => { + good = res.data.data; + }) + if (!good) { + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; + // getApp().request.delete(url, { + // success: function (t) {} + // }); + th.disInvalid({ + ...item, + original_img: good.imgUrl + }, 1, 1); + continue; + } + + //如果商品下架了,或者商品是赠品,一开始都要清除 + if (good.is_show == 0) { + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; + // getApp().request.delete(url, { + // success: function (t) {} + // }); + th.disInvalid({ + ...item, + original_img: good.imgUrl + }, 1, 1); + //商品已经下架 + continue; + } + + if (item.prom_type == 0) { + var prom = null; + var now = ut.gettimestamp(); + await getApp().request.promiseGet(`/api/weshop/activitylist/listGoodActInfo2`, { + data: { + store_id: oo.stoid, + goods_id: item.service_id, + user_id: user_id, + goods_type: 1, + } + }).then(res => { + console.log('服务卡活动信息') + console.log(res) + console.log('服务卡活动信息-------------') + if (res.data.code == 0) { + prom = res.data.data + } + }) + if (prom) { + th.disInvalid({ + ...item, + original_img: good.imgUrl + }, 2, 1) + continue; + } + } + + if (item.prom_type == 1) { + var prom = null; + var now = ut.gettimestamp(); + await getApp().request.promiseGet('/api/ms/flash_sale/getNew/' + os.stoid + '/' + user_id + '/' + item.prom_id, {}).then(res => { + if (res.data.code == 0) { + prom = res.data.data; + prom.price = prom.user_price; + } + }); + console.log('服务的秒杀信息') + console.log(prom) + //---如果互动都已经过期,或者还未开始,或者无活动 + if (!prom || prom.is_end == 1 || prom.end_time < now || prom.start_time > now) { + th.disInvalid({ + ...item, + original_img: good.imgUrl + }, 0, 1); + continue; + } + //判断秒杀的限购 + var msNum = 0 + await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum", { + data: { + store_id: os.stoid, + user_id: user_id, + card_id: prom.goods_id, + } + }).then(res => { + if (res.data.code == 0) { + msNum = res.data.data.cardbuynum + console.log('秒杀限购:' + msNum) + } + }) + } + if (msNum && (msNum >= prom.buy_limit)) { + console.log('秒杀限购') + th.disInvalid({ + ...item, + original_img: good.imgUrl + }, 2, 1) + continue; + } + + all_num += item.goods_num; + item.img_url = oo.imghost + good.imgUrl; + item.selected = 0; + + + var pcid = item.pick_id; + var find = 0; + //---------循环查找门店--- + if (arr.length > 0) { + for (var j = 0; j < arr.length; j++) { + if (arr[j].pid == pcid) { + arr[j].goods.push(item); + find = 1; + break; + } + } + } + + //------如果没有找到----- + if (find == 0) { + var pikname = ''; + //找到门店名称 + 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; + break; + } + } + var narr = new Array(); + narr.push(item); + var ie = { + pid: pcid, + pname: pikname, + goods: narr, + selected: 0 + }; + arr.push(ie); + } + } + } + + // console.log('BBBBBB', all_num); + th.setData({ + service_data: arr, + all_num2: all_num, + is_edit: 0 + }), + th.doCheckAll(), wx.stopPullDownRefresh(); + + } + }); + }, + + async getUserBuyPromNum(prom_id) { + var userInfo = getApp().globalData.userInfo; + var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${userInfo.user_id}&prom_type=7&prom_id=${prom_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 + } + return userbuynum + }, + + //设置莫个门店的所有线下价格 + async set_offline(list) { + var th = this; + var userInfo = getApp().globalData.userInfo; + //组织一下商品,然后进行线下价格的赋值 + var wlist = ""; + for (var i in list.goods) { + //如果商品有促销活动 + if (list.goods[i].prom_type > 0 && list.goods[i].prom_type != 7) continue; + wlist += encodeURIComponent(list.goods[i].erpwareid) + ","; + } + wlist = ut.sub_last(wlist); + //调用接口进行赋值 + await getApp().request.promiseGet("/api/weshop/goods/listWarePrice", { + data: { + store_id: os.stoid, + PickupId: list.pid, + WareIds: wlist, + VIPId: encodeURIComponent(userInfo.erpvipid) + } + }).then(res => { + if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { + for (var e in res.data.data) { + th.set_cart_offline_price(res.data.data[e], list.goods); + } + } + }) + }, + + //-- 设置购物车线下 -- + set_cart_offline_price: function (data, glist) { + for (var i in glist) { + if (glist[i].erpwareid == data.WareId && (glist[i].prom_type == 0 || glist[i].prom_type == 7)) { + if (glist[i].goods_price >= data.WarePrice) { + glist[i].is_offline = 1; + glist[i].offline_price = data.WarePrice; + glist[i].pricing_type = data.PriceType; + } + } + } + }, + + + //删除商品 + delete_th_item: function (t) { + var e = this; + var a = rq; + console.log(a); + wx.showModal({ + title: "确定删除?", + success: function (s) { + if (s.confirm) { + var r = t.currentTarget.dataset.cartid; + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + r; + a.delete(url, { + success: function (t) { + e.getCardList(); + } + }); + } + } + }); + }, + + //-----------------点击输入修改商品数量--------------- + valueToNum: function (t) { + if (!this.data.is_load) return false; + //控制住,避免事件响应冲突,只有input有输入的时候,才刷新 + if (this.data.btn_click) { + return false; + } + this.data.btn_click = 1; + + var a = t.currentTarget.dataset.item; + var b = t.currentTarget.dataset.pitems; + a = this.data.requestData[b].goods[a]; + var e = a; + var th = this; + + if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) { + var s = { + goods_num: a, + goods_id: e.goods_id, + id: e.id, + store_id: oo.stoid + }; + th.postCardList(s, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); + } + }, + + //-------------加数量--------------------- + addNum: function (t) { + if (!this.data.is_load) return false; + if (this.data.up_dating == 1) return false; + this.data.up_dating = 1; + + var a = t.currentTarget.dataset.item; + var b = t.currentTarget.dataset.pitems; + a = this.data.requestData[b].goods[a]; + + console.log('add+'); + + if (this.data.sales_rules < 2 || a.whsle_id || [1, 2, 4, 6, 8, 9].indexOf(a.prom_type) > -1) { + + if (a.goods_num > a.store_count) { + console.log('购买的数量不能-----'); + // wx.showModal({ + // title: '提示', + // content: '购买的数量不能超出库存数量', + // }); + wx.showToast({ + title: '购买的数量不能超出库存数量', + icon: 'none', + }); + // getApp().my_warnning('购买的数量不能超出库存数量', 0, this); + this.data.up_dating = 0; + + return false; + } + } + + + var e = { + goods_num: a.goods_num + 1, + id: a.id, + goods_id: a.goods_id, + store_id: oo.stoid + }; + // console.log('goods_num', e.goods_num); + this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); + + }, + //-------------减数量--------------------- + subNum: function (t) { + if (!this.data.is_load) return false; + if (this.data.up_dating == 1) return false; + this.data.up_dating = 1; + + var a = t.currentTarget.dataset.item; + var b = t.currentTarget.dataset.pitems; + a = this.data.requestData[b].goods[a]; + this.data.btn_click = 1; + + if (a.goods_num - 1 < 0) { + this.data.up_dating = 0; + return false; + } + + + + if (1 != a.goods_num) { + var e = { + goods_num: a.goods_num - 1, + id: a.id, + goods_id: a.goods_id, + store_id: oo.stoid + }; + this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); + } + }, + + + //-----------------点击输入修改商品数量--------------- + valueToNum_ser: function (t) { + if (!this.data.is_load) return false; + //控制住,避免事件响应冲突,只有input有输入的时候,才刷新 + if (this.data.btn_click) { + return false; + } + this.data.btn_click = 1; + + var a = t.currentTarget.dataset.item; + var b = t.currentTarget.dataset.pitems; + a = this.data.service_data[b].goods[a]; + var e = a; + var th = this; + + if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) { + var s = { + goods_num: a, + goods_id: e.service_id, + id: e.id, + store_id: oo.stoid, + is_pd_normal: e.is_pd_normal + }; + if (e.prom_type) { + s.prom_type = e.prom_type; + }; + if (e.prom_id) { + s.prom_id = e.prom_id; + }; + if (e.is_pd_normal) { + s.is_pd_normal = e.is_pd_normal; + }; + if (e.service_id) { + s.card_id = e.service_id; + }; + th.postCardList_ser(s, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); + } + }, + //-------------加数量--------------------- + addNum_ser: function (t) { + if (!this.data.is_load) return false; + if (this.data.up_dating == 1) return false; + // this.data.up_dating = 1; + + var a = t.currentTarget.dataset.item; + var b = t.currentTarget.dataset.pitems; + a = this.data.service_data[b].goods[a]; + + var e = { + goods_num: a.goods_num + 1, + id: a.id, + goods_id: a.service_id, + store_id: oo.stoid, + is_pd_normal: a.is_pd_normal + }; + if (a.prom_type) { + e.prom_type = a.prom_type; + }; + if (a.prom_id) { + e.prom_id = a.prom_id; + }; + if (a.is_pd_normal) { + e.is_pd_normal = a.is_pd_normal; + }; + if (a.service_id) { + e.card_id = a.service_id; + }; + this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); + + }, + //-------------减数量--------------------- + subNum_ser: function (t) { + + if (!this.data.is_load) return false; + if (this.data.up_dating == 1) return false; + // this.data.up_dating = 1; + + var a = t.currentTarget.dataset.item; + var b = t.currentTarget.dataset.pitems; + a = this.data.service_data[b].goods[a]; + this.data.btn_click = 1; + + if (a.goods_num - 1 <= 0) { + this.data.up_dating = 0; + return false; + } + + if (1 != a.goods_num) { + var e = { + goods_num: a.goods_num - 1, + id: a.id, + goods_id: a.service_id, + store_id: oo.stoid, + is_pd_normal: a.is_pd_normal + }; + + this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); + } + }, + + + //---------------全选,全选的时候要判断是否门店的匹配方式一致-------------- + checkAll: function () { + var e = this, + th = this, + dda = e.data.requestData, + sdda = e.data.service_data, + tfeel = 0, + t_num = 0, + text_arr = ""; + + if (e.data.requestData && e.data.requestData.length > 0 && + e.data.service_data && e.data.service_data.length > 0) { + wx.showModal({ + title: '提示', + content: '服务卡项目不能和商品一起选择' + }); + return false; + } + + this.data.btn_click = 1; + + + + var offline_price = 0; + var offline_num = 0; + th.data.in_zhact_gdmap = {}; + + + if (dda && dda.length > 0) { + for (var i = 0; i < dda.length; i++) { + var item = dda[i].goods; + + if (e.data.checkAllToggle) { + var txt = "requestData[" + i + "].selected"; + e.setData({ + [txt]: 0, + }); + } + var fir = 0; + for (var j = 0; j < item.length; j++) { + if (item[j].is_gift) continue; + + var obj = JSON.parse(JSON.stringify(item[j])); + //计算之前先移除组合购的计算 + if (obj.prom_type == 7) + zh_calc.remove_zhprom(dda, i, obj); + //计算之前先移除阶梯购的计算 + if (obj.prom_type == 10) + ladder_calc.remove_ladder_prom(dda, i, obj); + + + if (fir == 0) { + fir = item[j].distr_type; + } else { + //如果同一门店有不同门店的商品,不能同一配送 + if (fir != item[j].distr_type && !e.data.checkAllToggle && item[j].distr_type != 0) { + text_arr += item[j].goods_name + " "; + break; + } + } + var txt = "requestData[" + i + "].goods[" + j + "].selected"; + + if (e.data.checkAllToggle) obj.goods_num = 0; + + //加入组合购计算 + if (obj.prom_type == 7) zh_calc.add_zhprom(dda, i, obj); + //加入阶梯促销计算 + if (obj.prom_type == 10) ladder_calc.add_ladder_prom(dda, i, obj); + + e.setData({ + + [txt]: !e.data.checkAllToggle, + }) + + if (!e.data.checkAllToggle) { + //组合购的金额要另外算 + if (item[j].prom_type != 7 && item[j].prom_type != 10) + tfeel += item[j].goods_num * item[j].goods_price; + t_num += item[j].goods_num; + } + + //-- 如果这个商品是线下取价的时候 -- + if (item[j].is_offline && item[j].prom_type != 7) { + offline_price += (item[j].goods_price - item[j].offline_price) * item[j].goods_num; + offline_num += item[j].goods_num; + } + + } + } + + + if (text_arr != "") { + wx.showModal({ + title: '提示', + content: text_arr + '不能与门店中其他商品一起结算,配送方式不一致' + }); + return false; + } else { + + for (var i = 0; i < dda.length; i++) { + + if (!e.data.checkAllToggle) { + var txt = "requestData[" + i + "].selected"; + e.setData({ + [txt]: 1, + }); + } + + //总的价格,把组合商品的价格拿出来 + var zh_calc_res = zh_calc.calculate_zh(dda, i, this); + tfeel += zh_calc_res.tfeel; + offline_price += zh_calc_res.offline_price; + offline_num += zh_calc_res.offline_num; + + //总的价格,把阶梯促销的商品的价格拿出来 + var ladder_calc_res = ladder_calc.calculate_ladder(dda, i, this); + tfeel += ladder_calc_res.tfeel; + offline_price += ladder_calc_res.offline_price; + offline_num += ladder_calc_res.offline_num; + + //当有线下取价的时候 + if (offline_price) { + var txt1 = "requestData[" + i + "].offline_price"; + var txt2 = "requestData[" + i + "].offline_num"; + th.setData({ + [txt1]: offline_price.toFixed(2), + [txt2]: offline_num, + }); + } else { + if (dda[i].offline_price > 0) { + var txt1 = "requestData[" + i + "].offline_price"; + var txt2 = "requestData[" + i + "].offline_num"; + th.setData({ + [txt1]: 0, + [txt2]: 0 + }); + } + } + } + + e.setData({ + checkAllToggle: !e.data.checkAllToggle, + total_fee: tfeel.toFixed(2), + total_num: t_num, + }); + + e.all_check_prom_activity(); + + } + } + + if (sdda && sdda.length > 0) { + for (var i = 0; i < sdda.length; i++) { + var item = sdda[i].goods; + if (e.data.checkAllToggle) { + var txt = "service_data[" + i + "].selected"; + e.setData({ + [txt]: 0, + }); + } + var fir = 0; + for (var j = 0; j < item.length; j++) { + var txt = "service_data[" + i + "].goods[" + j + "].selected" + e.setData({ + [txt]: !e.data.checkAllToggle ? 1 : 0, + }) + + if (!e.data.checkAllToggle) { + tfeel += item[j].goods_num * item[j].money; + t_num += item[j].goods_num; + } + } + } + e.setData({ + checkAllToggle: !e.data.checkAllToggle, + total_fee: tfeel.toFixed(2), + total_num: t_num, + }); + } + + }, + //------门店全选按钮,要判断是否门店的匹配方式一致--------- + check_th_all_item: async function (ele) { + var e = this, th = this, + pitems = ele.currentTarget.dataset.pitems, + item = this.data.requestData[pitems].goods, + sele = this.data.requestData[pitems].selected; + this.data.btn_click = 1; + var garr = e.data.service_data; + + var isok = 1, + fir = 0, + iarr = item; + + if (!sele) { + var check_is_service_selected = 0; + for (var ii in garr) { + for (var ij in garr[ii].goods) { + if (garr[ii].goods[ij].selected) { + check_is_service_selected = 1; + break; + } + } + } + + if (check_is_service_selected) { + wx.showModal({ + title: '提示', + content: '服务卡项目不能和商品一起选择' + }); + return false; + } + } + + if (!sele && item.length > 0) { + for (var i = 0; i < iarr.length; i++) { + if (iarr[i].is_gift == 1) continue; + if (iarr[i].distr_type != 0) { + if (fir == 0) { + fir = iarr[i].distr_type; + } else { + if (fir != iarr[i].distr_type && iarr[i].distr_type != 0) { + isok = 0; + break; + } + } + } + } + } + + if (!isok) { + wx.showModal({ + title: '提示', + content: '同一门店自提和物流的商品不能同时结算' + }); + return false; + } + + for (var i = 0; i < item.length; i++) { + var txt = "requestData[" + pitems + "].goods[" + i + "].selected"; + + var gd_info = item[i]; + if (th.data.sales_rules >= 2 && !gd_info.whsle_id && [1, 2, 4, 6, 8, 9].indexOf(gd_info.prom_type) == -1 && !gd_info.selected) { + var ob = {}; + await th.check_down_line_next(gd_info, pitems, i, gd_info.erpwareid, function (res) { + ob = res; + }); + + if (ob.code == -1) { - // console.log('BBBBBB', all_num); - th.setData({ - service_data: arr, - all_num2: all_num, - is_edit: 0 - }), - th.doCheckAll(), wx.stopPullDownRefresh(); + wx.showToast({ + title: '购买数量超出商品库存', + icon: 'none', + }); + return false; + } else { + if (th.data.sales_rules == 3) { + var goods_id = gd_info.goods_id; + var num = 0; + + for (let i = 0; i < th.data.requestData.length; i++) { + if (pitems == i) continue; + var it = th.data.requestData[i].goods.find((e) => { + return e.goods_id == goods_id; + }) + if (it && it.selected) num += it.goods_num } - }); - }, - async getUserBuyPromNum(prom_id){ - var userInfo = getApp().globalData.userInfo; - var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${userInfo.user_id}&prom_type=7&prom_id=${prom_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 - } - return userbuynum - }, - - //设置莫个门店的所有线下价格 - async set_offline(list) { - var th = this; - var userInfo = getApp().globalData.userInfo; - //组织一下商品,然后进行线下价格的赋值 - var wlist = ""; - for (var i in list.goods) { - //如果商品有促销活动 - if (list.goods[i].prom_type > 0 && list.goods[i].prom_type != 7) continue; - wlist += encodeURIComponent(list.goods[i].erpwareid) + ","; - } - wlist = ut.sub_last(wlist); - //调用接口进行赋值 - await getApp().request.promiseGet("/api/weshop/goods/listWarePrice", { - data: { - store_id: os.stoid, - PickupId: list.pid, - WareIds: wlist, - VIPId: encodeURIComponent(userInfo.erpvipid) - } - }).then(res => { - if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { - for (var e in res.data.data) { - th.set_cart_offline_price(res.data.data[e], list.goods); - } - } - }) - }, - - //-- 设置购物车线下 -- - set_cart_offline_price: function (data, glist) { - for (var i in glist) { - if (glist[i].erpwareid == data.WareId && (glist[i].prom_type == 0 || glist[i].prom_type == 7)) { - if (glist[i].goods_price >= data.WarePrice) { - glist[i].is_offline = 1; - glist[i].offline_price = data.WarePrice; - glist[i].pricing_type = data.PriceType; - } + if (num > ob.CanOutQty) { + wx.showToast({ + title: '购买数量超出商品库存', + icon: 'none', + }); + + return false; } + } } - }, + + } + - //删除商品 - delete_th_item: function (t) { - var e = this; - var a = rq; - console.log(a); + e.setData({ + [txt]: Number(!sele), + }); + } + var txt = "requestData[" + pitems + "].selected"; + e.setData({ + [txt]: Number(!sele), + }); + + e.data.duo_zp_num_arr = {}; + if (sele) { + await e.check_prom_activity(pitems); + } + for (var i in e.data.requestData) { + if (sele && i == pitems) continue; + await e.check_prom_activity(i); + } + this.doCheckAll(); + }, + //---------------单选,也要判断门店的配送方式是否一致-------------- + check_th_item: async function (t) { + var e = this, th = this, + item = t.currentTarget.dataset.item, + pitems = t.currentTarget.dataset.pitems; + a = this.data.requestData[pitems].goods[item]; + var isok = 1, + fir = 0; + var iarr = e.data.requestData[pitems].goods; + this.data.btn_click = 1; + var garr = e.data.service_data; + + if (!a.selected) { + var check_is_service_selected = 0; + for (var ii in garr) { + for (var ij in garr[ii].goods) { + if (garr[ii].goods[ij].selected) { + check_is_service_selected = 1; + break; + } + } + } + if (check_is_service_selected) { wx.showModal({ - title: "确定删除?", - success: function (s) { - if (s.confirm) { - var r = t.currentTarget.dataset.cartid; - var url = '/api/weshop/cart/del/' + oo.stoid + '/' + r; - a.delete(url, { - success: function (t) { - e.getCardList(); - } - }); - } - } + title: '提示', + content: '服务卡项目不能和商品一起选择' }); - }, - - //-----------------点击输入修改商品数量--------------- - valueToNum: function (t) { - if (!this.data.is_load) return false; - //控制住,避免事件响应冲突,只有input有输入的时候,才刷新 - if (this.data.btn_click) { - return false; - } - this.data.btn_click = 1; - - var a = t.currentTarget.dataset.item; - var b = t.currentTarget.dataset.pitems; - a = this.data.requestData[b].goods[a]; - var e = a; - var th = this; - - if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) { - var s = { - goods_num: a, - goods_id: e.goods_id, - id: e.id, - store_id: oo.stoid - }; - th.postCardList(s, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); + return false; + } + } + + //当数量大于1,且是选择的时候 + if (iarr.length > 1 && !a.selected) { + + for (var i = 0; i < iarr.length; i++) { + if (iarr[i].is_gift == 1) continue; + //---当不是本身选择项目---- + var sel = iarr[i].selected; + if (iarr[i].distr_type != 0 && (sel || iarr[i].id == a.id)) { + if (fir == 0) { + fir = iarr[i].distr_type; + } else { + if (fir != iarr[i].distr_type && iarr[i].distr_type != 0) { + isok = 0; + break; + } + } } - }, + } + } + if (!isok) { + wx.showModal({ + title: '提示', + content: '同一门店自提和物流的商品不能同时结算' + }); + } else { + var txt = "requestData[" + pitems + "].goods[" + item + "].selected"; + var gd_info = a; - //-------------加数量--------------------- - addNum: function (t) { - if (!this.data.is_load) return false; - if (this.data.up_dating == 1) return false; - this.data.up_dating = 1; + var erpwareid = gd_info.erpwareid; + if (th.data.sales_rules >= 2 && !gd_info.whsle_id && [1, 2, 4, 6, 8, 9].indexOf(gd_info.prom_type) == -1 && !a.selected) { + var ob = {}; + await th.check_down_line_next(gd_info, pitems, item, erpwareid, function (res) { + ob = res; + }); - var a = t.currentTarget.dataset.item; - var b = t.currentTarget.dataset.pitems; - a = this.data.requestData[b].goods[a]; + if (ob.code == -1) { - console.log('add+'); - - if(this.data.sales_rules <2 || a.whsle_id || [1,2,4,6,8,9].indexOf(a.prom_type)>-1 ) { - - if (a.goods_num > a.store_count) { - console.log('购买的数量不能-----'); - // wx.showModal({ - // title: '提示', - // content: '购买的数量不能超出库存数量', - // }); - wx.showToast({ - title: '购买的数量不能超出库存数量', - icon: 'none', - }); - // getApp().my_warnning('购买的数量不能超出库存数量', 0, this); - this.data.up_dating = 0; - - return false; - } + wx.showToast({ + title: '购买数量超出商品库存', + icon: 'none', + }); + + return false; + } else { + if (th.data.sales_rules == 3) { + var goods_id = gd_info.goods_id; + var num = 0; + + for (let i = 0; i < th.data.requestData.length; i++) { + if (pitems == i) continue; + var it = th.data.requestData[i].goods.find((e) => { + return e.goods_id == goods_id; + }) + if (it && it.selected) num += it.goods_num } + if (num > ob.CanOutQty) { + wx.showToast({ + title: '购买数量超出商品库存', + icon: 'none', + }); - var e = { - goods_num: a.goods_num + 1, - id: a.id, - goods_id: a.goods_id, - store_id: oo.stoid - }; - // console.log('goods_num', e.goods_num); - this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); - - }, - //-------------减数量--------------------- - subNum: function (t) { - if (!this.data.is_load) return false; - if (this.data.up_dating == 1) return false; - this.data.up_dating = 1; - - var a = t.currentTarget.dataset.item; - var b = t.currentTarget.dataset.pitems; - a = this.data.requestData[b].goods[a]; - this.data.btn_click = 1; - - if (a.goods_num - 1 < 0) { - this.data.up_dating = 0; - return false; + return false; + } + } } + } - if (1 != a.goods_num) { - var e = { - goods_num: a.goods_num - 1, - id: a.id, - goods_id: a.goods_id, - store_id: oo.stoid - }; - this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); - } - }, + e.setData({ + [txt]: Number(!a.selected), + }); - //-----------------点击输入修改商品数量--------------- - valueToNum_ser: function (t) { - if (!this.data.is_load) return false; - //控制住,避免事件响应冲突,只有input有输入的时候,才刷新 - if (this.data.btn_click) { - return false; - } - this.data.btn_click = 1; - - var a = t.currentTarget.dataset.item; - var b = t.currentTarget.dataset.pitems; - a = this.data.service_data[b].goods[a]; - var e = a; - var th = this; - - if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) { - var s = { - goods_num: a, - goods_id: e.service_id, - id: e.id, - store_id: oo.stoid, - is_pd_normal: e.is_pd_normal - }; - if(e.prom_type) { - s.prom_type = e.prom_type; - }; - if(e.prom_id) { - s.prom_id = e.prom_id; - }; - if(e.is_pd_normal) { - s.is_pd_normal = e.is_pd_normal; - }; - if(e.service_id) { - s.card_id = e.service_id; - }; - th.postCardList_ser(s, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); + if (a.prom_type == 3) { + e.data.duo_zp_num_arr = {}; + if (!a.selected) { + await e.check_prom_activity(pitems); } - }, - //-------------加数量--------------------- - addNum_ser: function (t) { - if (!this.data.is_load) return false; - if (this.data.up_dating == 1) return false; - // this.data.up_dating = 1; - - var a = t.currentTarget.dataset.item; - var b = t.currentTarget.dataset.pitems; - a = this.data.service_data[b].goods[a]; - - var e = { - goods_num: a.goods_num + 1, - id: a.id, - goods_id: a.service_id, - store_id: oo.stoid, - is_pd_normal: a.is_pd_normal - }; - if(a.prom_type) { - e.prom_type = a.prom_type; - }; - if(a.prom_id) { - e.prom_id = a.prom_id; - }; - if(a.is_pd_normal) { - e.is_pd_normal = a.is_pd_normal; - }; - if(a.service_id) { - e.card_id = a.service_id; - }; - this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); - - }, - //-------------减数量--------------------- - subNum_ser: function (t) { - - if (!this.data.is_load) return false; - if (this.data.up_dating == 1) return false; - // this.data.up_dating = 1; - - var a = t.currentTarget.dataset.item; - var b = t.currentTarget.dataset.pitems; - a = this.data.service_data[b].goods[a]; - this.data.btn_click = 1; - - if (a.goods_num - 1 <= 0) { - this.data.up_dating = 0; - return false; + //判断商品是不是优惠活动 + for (var i in e.data.requestData) { + if (!a.selected && i == pitems) continue; + await e.check_prom_activity(i); } + } + this.doCheckAll(); + } + }, - if (1 != a.goods_num) { - var e = { - goods_num: a.goods_num - 1, - id: a.id, - goods_id: a.service_id, - store_id: oo.stoid, - is_pd_normal: a.is_pd_normal - }; - - this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); + //------门店全选按钮,要判断是否门店的匹配方式一致--------- + check_th_all_item_ser: async function (ele) { + var e = this, + pitems = ele.currentTarget.dataset.pitems, + item = this.data.service_data[pitems].goods, + sele = this.data.service_data[pitems].selected; + this.data.btn_click = 1; + var garr = e.data.requestData; + + var isok = 1, + fir = 0, + iarr = item; + + if (!sele) { + var check_is_goods_selected = 0; + for (var ii in garr) { + for (var ij in garr[ii].goods) { + if (garr[ii].goods[ij].selected) { + check_is_goods_selected = 1; + break; + } } - }, - - - //---------------全选,全选的时候要判断是否门店的匹配方式一致-------------- - checkAll: function () { - var e = this, - th = this, - dda = e.data.requestData, - sdda = e.data.service_data, - tfeel = 0, - t_num = 0, - text_arr = ""; - - if (e.data.requestData && e.data.requestData.length > 0 && - e.data.service_data && e.data.service_data.length > 0) { - wx.showModal({ - title: '提示', - content: '服务卡项目不能和商品一起选择' - }); - return false; + } + if (check_is_goods_selected) { + wx.showModal({ + title: '提示', + content: '服务卡项目不能和商品一起选择' + }); + return false; + } + } + + for (var i = 0; i < item.length; i++) { + var txt = "service_data[" + pitems + "].goods[" + i + "].selected"; + e.setData({ + [txt]: Number(!sele), + }); + } + var txt = "service_data[" + pitems + "].selected"; + e.setData({ + [txt]: Number(!sele), + }); + this.doCheckAll(); + }, + //---------------单选,也要判断门店的配送方式是否一致-------------- + check_th_item_ser: async function (t) { + var e = this, + item = t.currentTarget.dataset.item, + pitems = t.currentTarget.dataset.pitems; + a = this.data.service_data[pitems].goods[item]; // 选中的商品 + + var isok = 1, + fir = 0; + var iarr = e.data.service_data[pitems].goods; + this.data.btn_click = 1; + + var garr = e.data.requestData; + + if (!a.selected) { + var check_is_goods_selected = 0; + for (var ii in garr) { + for (var ij in garr[ii].goods) { + if (garr[ii].goods[ij].selected) { + check_is_goods_selected = 1; + break; + } } + } - this.data.btn_click = 1; + if (check_is_goods_selected) { + wx.showModal({ + title: '提示', + content: '服务卡项目不能和商品一起选择' + }); + return false; + } + } + var txt = "service_data[" + pitems + "].goods[" + item + "].selected"; + e.setData({ + [txt]: Number(!a.selected), + }); + this.doCheckAll(); + }, + //----------检查是否全选--------- + doCheckAll: function () { + var th = this, + tfeel = 0, + t_num = 0, + ischeck = 1, + car = this.data.requestData, + car2 = this.data.service_data, + all_num = 0; + + //-- 购物车 -- + 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; var offline_price = 0; var offline_num = 0; - th.data.in_zhact_gdmap = {}; + for (var c = 0; c < item.length; c++) { + if (item[c].is_gift) continue; + all_num += item[c].goods_num; + + //不管怎么样都要移出去 + var obj = JSON.parse(JSON.stringify(item[c])); + zh_calc.remove_zhprom(car, a, obj); + ladder_calc.remove_ladder_prom(car, a, obj); + + if (item[c].selected == 0) { + ischeck = 0; + is_s_sele = 0; + if (item[c].prom_type == 7) { + obj.goods_num = 0; + zh_calc.add_zhprom(car, a, obj); + } + if (item[c].prom_type == 10) { + obj.goods_num = 0; + ladder_calc.add_ladder_prom(car, a, obj); + } - if (dda && dda.length > 0) { - for (var i = 0; i < dda.length; i++) { - var item = dda[i].goods; + } else { + if (item[c].prom_type == 7) { + //先把商品放入组合计算的专用的区域 + console.log('是组合商品---') + console.log(car); + console.log(a) + console.log(obj) + console.log('......................') + zh_calc.add_zhprom(car, a, obj); + } else if (item[c].prom_type == 10) { + ladder_calc.add_ladder_prom(car, a, obj); + } + else { + tfeel += item[c].goods_num * item[c].goods_price; + } + t_num += item[c].goods_num; + } - if (e.data.checkAllToggle) { - var txt = "requestData[" + i + "].selected"; - e.setData({ - [txt]: 0, - }); - } - var fir = 0; - for (var j = 0; j < item.length; j++) { - if(item[j].is_gift) continue; - - var obj=JSON.parse(JSON.stringify(item[j])); - //计算之前先移除组合购的计算 - if(obj.prom_type==7) - zh_calc.remove_zhprom(dda,i,obj); - //计算之前先移除阶梯购的计算 - if(obj.prom_type==10) - ladder_calc.remove_ladder_prom(dda,i,obj); - - - if (fir == 0) { - fir = item[j].distr_type; - } else { - //如果同一门店有不同门店的商品,不能同一配送 - if (fir != item[j].distr_type && !e.data.checkAllToggle && item[j].distr_type != 0) { - text_arr += item[j].goods_name + " "; - break; - } - } - var txt = "requestData[" + i + "].goods[" + j + "].selected"; - - if(e.data.checkAllToggle) obj.goods_num=0; - - //加入组合购计算 - if(obj.prom_type==7) zh_calc.add_zhprom(dda,i,obj); - //加入阶梯促销计算 - if(obj.prom_type==10) ladder_calc.add_ladder_prom(dda,i,obj); - - e.setData({ - - [txt]: !e.data.checkAllToggle, - }) + //-- 如果这个商品是线下取价的时候 -- + if (item[c].is_offline && 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 (!e.data.checkAllToggle) { - //组合购的金额要另外算 - if(item[j].prom_type!=7 && item[j].prom_type!=10) - tfeel += item[j].goods_num * item[j].goods_price; - t_num += item[j].goods_num; - } + //总的价格,把组合商品的价格拿出来 + var zh_calc_res = zh_calc.calculate_zh(car, a, th); + console.log('.组合价-----------') + console.log(zh_calc_res) + //总的价格,把阶梯促销商品的价格拿出来 + var ladder_calc_res = ladder_calc.calculate_ladder(car, a, th); - //-- 如果这个商品是线下取价的时候 -- - if (item[j].is_offline && item[j].prom_type != 7) { - offline_price += (item[j].goods_price - item[j].offline_price) * item[j].goods_num; - offline_num += item[j].goods_num; - } + tfeel += zh_calc_res.tfeel; + offline_price += zh_calc_res.offline_price; + offline_num += zh_calc_res.offline_num; - } - } + tfeel += ladder_calc_res.tfeel; + offline_price += ladder_calc_res.offline_price; + offline_num += ladder_calc_res.offline_num; + var txt = "requestData[" + a + "].selected"; + th.setData({ + [txt]: Number(is_s_sele) + }); - if (text_arr != "") { - wx.showModal({ - title: '提示', - content: text_arr + '不能与门店中其他商品一起结算,配送方式不一致' - }); - return false; - } else { + //当有线下取价的时候 + if (offline_price) { + var txt1 = "requestData[" + a + "].offline_price"; + var txt2 = "requestData[" + a + "].offline_num"; + th.setData({ + [txt1]: offline_price.toFixed(2), + [txt2]: offline_num, + }); + } else { + if (car[a].offline_price > 0) { + var txt1 = "requestData[" + a + "].offline_price"; + var txt2 = "requestData[" + a + "].offline_num"; + th.setData({ + [txt1]: 0, + [txt2]: 0 + }); + } + } - for (var i = 0; i < dda.length; i++) { + } + } - if (!e.data.checkAllToggle) { - var txt = "requestData[" + i + "].selected"; - e.setData({ - [txt]: 1, - }); - } + //-- 服务卡 -- + if (car2 && car2.length > 0) { + for (var a = 0; a < car2.length; a++) { + var c_item = car2[a]; + var item = car2[a].goods, + is_s_sele = 1; + + for (var c = 0; c < item.length; c++) { + if (item[c].is_gift) continue; + all_num += item[c].goods_num; + if (item[c].selected == 0) { + ischeck = 0; + is_s_sele = 0; + } else { + tfeel += item[c].goods_num * item[c].money; + t_num += item[c].goods_num; + } - //总的价格,把组合商品的价格拿出来 - var zh_calc_res = zh_calc.calculate_zh(dda, i, this); - tfeel += zh_calc_res.tfeel; - offline_price += zh_calc_res.offline_price; - offline_num += zh_calc_res.offline_num; - - //总的价格,把阶梯促销的商品的价格拿出来 - var ladder_calc_res=ladder_calc.calculate_ladder(dda,i,this); - tfeel+=ladder_calc_res.tfeel; - offline_price+=ladder_calc_res.offline_price; - offline_num+=ladder_calc_res.offline_num; - - //当有线下取价的时候 - if (offline_price) { - var txt1 = "requestData[" + i + "].offline_price"; - var txt2 = "requestData[" + i + "].offline_num"; - th.setData({ - [txt1]: offline_price.toFixed(2), - [txt2]: offline_num, - }); - } else { - if (dda[i].offline_price > 0) { - var txt1 = "requestData[" + i + "].offline_price"; - var txt2 = "requestData[" + i + "].offline_num"; - th.setData({ - [txt1]: 0, - [txt2]: 0 - }); - } - } - } + } - e.setData({ - checkAllToggle: !e.data.checkAllToggle, - total_fee: tfeel.toFixed(2), - total_num: t_num, - }); + var txt = "service_data[" + a + "].selected"; + th.setData({ + [txt]: Number(is_s_sele) + }); + } + } - e.all_check_prom_activity(); + this.setData({ + checkAllToggle: ischeck, + total_fee: tfeel.toFixed(2), + all_num: all_num, + total_num: t_num + }); + }, - } + //----------------------更新购物数量,加减,调用接口--------------------- + postCardList: function (t, item, pitem) { + var e = this, + th = e, + user_id = getApp().globalData.user_id; + + function normal_check(store_count, goodsinfo, wareIds) { + //--- 看一下是不是线下库存 --- + if (th.data.sales_rules >= 2 && !goodsinfo.whsle_id) { + th.check_down_line(t, pitem, item, wareIds); + } else { + if (t.goods_num > store_count) { + wx.showToast({ + title: '购买数量超出商品库存', + icon: 'none', + }); + // getApp().my_warnning('购买数量超出商品库存', 0, th); + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; + e.setData({ + [txt]: store_count + }); + e.doCheckAll(); + t.goods_num = store_count; } + e.update_cart(t, pitem, item); + } + } - if (sdda && sdda.length > 0) { - for (var i = 0; i < sdda.length; i++) { - var item = sdda[i].goods; - if (e.data.checkAllToggle) { - var txt = "service_data[" + i + "].selected"; - e.setData({ - [txt]: 0, - }); - } - var fir = 0; - for (var j = 0; j < item.length; j++) { - var txt = "service_data[" + i + "].goods[" + j + "].selected" - e.setData({ - [txt]: !e.data.checkAllToggle ? 1 : 0, - }) - - if (!e.data.checkAllToggle) { - tfeel += item[j].goods_num * item[j].money; - t_num += item[j].goods_num; - } - } - } - e.setData({ - checkAllToggle: !e.data.checkAllToggle, - total_fee: tfeel.toFixed(2), - total_num: t_num, + // console.log('update'); + // console.log('9995959595959',t); + var e = this, th = e; + var user_id = getApp().globalData.user_id; + rq.get("/api/weshop/goods/get/" + oo.stoid + "/" + t.goods_id, { + isShowLoading: 0, + async success(d) { + var limit = d.data.data.viplimited; + var store_count = d.data.data.store_count; + var wareIds = d.data.data.erpwareid; + + var goodsinfo = e.data.requestData[pitem].goods[item]; + var promgoodsbuynum = 0; + var goodsbuynum = 0; + + //--要获得商品,该用户买了多少件,同步应用-- + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { + data: { + store_id: oo.stoid, + user_id: user_id, + goods_id: goodsinfo.goods_id, + prom_type: goodsinfo.prom_type, + prom_id: goodsinfo.prom_id + }, + }).then(res => { + var buy_num_data = res.data.data; + if (buy_num_data.promgoodsbuynum) { + promgoodsbuynum = buy_num_data.promgoodsbuynum; + var txt = "requestData[" + pitem + "].goods[" + item + "].zh_b_num"; + th.setData({ + [txt]: promgoodsbuynum }); - } + } + goodsbuynum = buy_num_data.goodsbuynum; - }, - //------门店全选按钮,要判断是否门店的匹配方式一致--------- - check_th_all_item: async function (ele) { - var e = this,th=this, - pitems = ele.currentTarget.dataset.pitems, - item = this.data.requestData[pitems].goods, - sele = this.data.requestData[pitems].selected; - this.data.btn_click = 1; - var garr = e.data.service_data; - - var isok = 1, - fir = 0, - iarr = item; - - if (!sele) { - var check_is_service_selected = 0; - for (var ii in garr) { - for (var ij in garr[ii].goods) { - if (garr[ii].goods[ij].selected) { - check_is_service_selected = 1; - break; - } - } - } - if (check_is_service_selected) { - wx.showModal({ - title: '提示', - content: '服务卡项目不能和商品一起选择' - }); - return false; - } - } + }) - if (!sele && item.length > 0) { - for (var i = 0; i < iarr.length; i++) { - if (iarr[i].is_gift == 1) continue; - if (iarr[i].distr_type != 0) { - if (fir == 0) { - fir = iarr[i].distr_type; - } else { - if (fir != iarr[i].distr_type && iarr[i].distr_type != 0) { - isok = 0; - break; - } - } - } - } - } + //--> by ty + // var buyed_mum2 = t.goods_num + goodsbuynum; + var buyed_mum2 = t.goods_num; + //<-- - if (!isok) { - wx.showModal({ - title: '提示', - content: '同一门店自提和物流的商品不能同时结算' - }); - return false; - } + // 判断当前预购买的数量是否超过可购买的数量 + if (buyed_mum2 > (limit - goodsbuynum) && limit > 0) { + wx.showToast({ + title: '购买数量超出商品限购', + icon: 'none', + }); + //getApp().my_warnning('购买数量超出商品限购', 0, th); + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; - for (var i = 0; i < item.length; i++) { - var txt = "requestData[" + pitems + "].goods[" + i + "].selected"; + //--> by ty + var cbuy = limit - goodsbuynum; + // var cbuy = limit - buyed_mum2 + 1; + //<-- - var gd_info=item[i]; - if (th.data.sales_rules >= 2 && !gd_info.whsle_id && [1,2,4,6,8,9].indexOf(gd_info.prom_type)==-1 && !gd_info.selected ) { - var ob = {}; - await th.check_down_line_next(gd_info, pitems, i, gd_info.erpwareid, function (res) { - ob = res; - }); + e.setData({ + // [txt]: cbuy > 0 ? cbuy : 0, + [txt]: cbuy > 0 ? cbuy : limit, + }); + e.doCheckAll(); + + t.goods_num = cbuy > 0 ? cbuy : limit, + // t.goods_num = cbuy > 0 ? cbuy : 0, + e.update_cart(t, pitem, item); + return false; + } - if (ob.code == -1) { + switch (goodsinfo.prom_type) { + case 1: + //读取秒杀 + rq.get("/api/ms/flash_sale/getFlashSaleOne/" + oo.stoid + "/" + goodsinfo.prom_id, { + isShowLoading: 0, + success: function (res_d) { + if (res_d.data.code == 0 && res_d.data.data) { + if (t.goods_num > store_count) { + // wx.showModal({ + // title: '提示', + // content: '购买数量超出商品库存' + // }); wx.showToast({ - title: '购买数量超出商品库存', - icon: 'none', + title: '购买数量超出商品库存', + icon: 'none', }); + // getApp().my_warnning('购买数量超出商品库存', 0, th); + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; + e.setData({ + [txt]: store_count + }); + e.doCheckAll(); - return false; - }else{ - if(th.data.sales_rules==3){ - var goods_id=gd_info.goods_id; - var num=0; - - for (let i = 0; i < th.data.requestData.length; i++) { - if(pitems==i) continue; - var it= th.data.requestData[i].goods.find((e)=>{ - return e.goods_id==goods_id; - }) - if(it && it.selected) num+=it.goods_num - } - - if(num>ob.CanOutQty){ - wx.showToast({ - title: '购买数量超出商品库存', - icon: 'none', - }); - - return false; - } - } - } + t.goods_num = store_count; + e.update_cart(t, pitem, item); - } + return false; + } + var false_data = res_d.data.data; + //--判断库存-- + if (t.goods_num > false_data.goods_num - false_data.buy_num) { + // wx.showModal({ + // title: '提示', + // content: '购买数量超出活动库存' + // }); + wx.showToast({ + title: '购买数量超出活动库存', + icon: 'none', + }); + // getApp().my_warnning('购买数量超出活动库存', 0, th); + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; + e.setData({ + [txt]: false_data.goods_num - false_data.buy_num + }); + e.doCheckAll(); + t.goods_num = false_data.goods_num - false_data.buy_num; + e.update_cart(t, pitem, item); - e.setData({ - [txt]: Number(!sele), - }); - } - var txt = "requestData[" + pitems + "].selected"; - e.setData({ - [txt]: Number(!sele), - }); + return false; + } - e.data.duo_zp_num_arr={}; - if (sele) { - await e.check_prom_activity(pitems); - } - for (var i in e.data.requestData) { - if(sele && i==pitems) continue; - await e.check_prom_activity(i); - } - this.doCheckAll(); - }, - //---------------单选,也要判断门店的配送方式是否一致-------------- - check_th_item: async function (t) { - var e = this,th=this, - item = t.currentTarget.dataset.item, - pitems = t.currentTarget.dataset.pitems; - a = this.data.requestData[pitems].goods[item]; - var isok = 1, - fir = 0; - var iarr = e.data.requestData[pitems].goods; - this.data.btn_click = 1; - var garr = e.data.service_data; + //--判断redis数量是否已经超出-- + if (t.goods_num > false_data.redisnum) { + // wx.showModal({ + // title: '提示', + // content: '购买数量超出商品库存' + // }); + wx.showToast({ + title: '购买数量超出商品库存', + icon: 'none', + }); + //getApp().my_warnning('购买数量超出商品库存', 0, th); + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; + e.setData({ + [txt]: false_data.redisnum + }); + e.doCheckAll(); - if (!a.selected) { - var check_is_service_selected = 0; - for (var ii in garr) { - for (var ij in garr[ii].goods) { - if (garr[ii].goods[ij].selected) { - check_is_service_selected = 1; - break; - } - } - } - if (check_is_service_selected) { - wx.showModal({ - title: '提示', - content: '服务卡项目不能和商品一起选择' - }); - return false; - } - } + t.goods_num = false_data.redisnum; + e.update_cart(t, pitem, item); + return false; + } - //当数量大于1,且是选择的时候 - if (iarr.length > 1 && !a.selected) { + //--活动的限购是不是要判断-- + if (t.goods_num + promgoodsbuynum > false_data.buy_limit && false_data.buy_limit > 0) { + // wx.showModal({ + // title: '提示', + // content: '购买数量超出秒杀限购' + // }); + wx.showToast({ + title: '购买数量超出秒杀限购', + icon: 'none', + }); + // getApp().my_warnning('购买数量超出秒杀限购', 0, th); + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; + e.setData({ + [txt]: false_data.buy_limit + }); + e.doCheckAll(); + t.goods_num = (false_data.buy_limit - promgoodsbuynum) ? false_data.buy_limit - promgoodsbuynum : 0; + e.update_cart(t, pitem, item); + return false; + } + e.update_cart(t, pitem, item); - for (var i = 0; i < iarr.length; i++) { - if (iarr[i].is_gift == 1) continue; - //---当不是本身选择项目---- - var sel = iarr[i].selected; - if (iarr[i].distr_type != 0 && (sel || iarr[i].id == a.id)) { - if (fir == 0) { - fir = iarr[i].distr_type; - } else { - if (fir != iarr[i].distr_type && iarr[i].distr_type != 0) { - isok = 0; - break; - } - } + } else { + normal_check(store_count, goodsinfo, wareIds); } - } - } - if (!isok) { - wx.showModal({ - title: '提示', - content: '同一门店自提和物流的商品不能同时结算' - }); - } else { - var txt = "requestData[" + pitems + "].goods[" + item + "].selected"; - var gd_info=a; - - var erpwareid = gd_info.erpwareid; - if (th.data.sales_rules >= 2 && !gd_info.whsle_id && [1,2,4,6,8,9].indexOf(gd_info.prom_type)==-1 && !a.selected ) { - var ob = {}; - await th.check_down_line_next(gd_info, pitems, item, erpwareid, function (res) { - ob = res; - }); + } + }) + break; + case 2: + getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + goodsinfo.goods_id + "/" + goodsinfo.prom_id, {}).then(res => { + if (res.data.code == 0 && res.data.data) { + if (t.goods_num > store_count) { + // wx.showModal({ + // title: '提示', + // content: '购买数量超出商品库存' + // }); + wx.showToast({ + title: '购买数量超出商品库存', + icon: 'none', + }); + // getApp().my_warnning('购买数量超出商品库存', 0, th); + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; + e.setData({ + [txt]: store_count + }); + e.doCheckAll(); - if (ob.code == -1) { + t.goods_num = store_count; + e.update_cart(t, pitem, item); - wx.showToast({ - title: '购买数量超出商品库存', - icon: 'none', - }); + return false; + } - return false; - }else{ - if(th.data.sales_rules==3){ - var goods_id=gd_info.goods_id; - var num=0; - - for (let i = 0; i < th.data.requestData.length; i++) { - if(pitems==i) continue; - var it= th.data.requestData[i].goods.find((e)=>{ - return e.goods_id==goods_id; - }) - if(it && it.selected) num+=it.goods_num - } + var gr_data = res.data.data; + //--判断库存-- + if (t.goods_num > gr_data.goods_num - gr_data.buy_num) { + // wx.showModal({ + // title: '提示', + // content: '购买数量超出活动库存' + // }); + wx.showToast({ + title: '购买数量超出活动库存', + icon: 'none', + }); + // getApp().my_warnning('购买数量超出活动库存', 0, th); + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; + e.setData({ + [txt]: gr_data.goods_num - gr_data.buy_num + }); + e.doCheckAll(); - if(num>ob.CanOutQty){ - wx.showToast({ - title: '购买数量超出商品库存', - icon: 'none', - }); + t.goods_num = gr_data.goods_num - gr_data.buy_num; + e.update_cart(t, pitem, item); - return false; - } - } + return false; } - } - + //--判断redis数量是否已经超出-- + if (t.goods_num > gr_data.redisnum) { + // wx.showModal({ + // title: '提示', + // content: '购买数量超出商品库存' + // }); + wx.showToast({ + title: '购买数量超出商品库存', + icon: 'none', + }); + // getApp().my_warnning('购买数量超出商品库存', 0, th); + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; + e.setData({ + [txt]: gr_data.redisnum + }); + e.doCheckAll(); + t.goods_num = gr_data.redisnum; + e.update_cart(t, pitem, item); + return false; + } - e.setData({ - [txt]: Number(!a.selected), - }); + //--活动的限购是不是要判断-- + if (t.goods_num + promgoodsbuynum > gr_data.buy_limit && gr_data.buy_limit > 0) { + // wx.showModal({ + // title: '提示', + // content: '购买数量超出团购限购' + // }); + wx.showToast({ + title: '购买数量超出团购限购', + icon: 'none', + }); + // getApp().my_warnning('购买数量超出团购限购', 0, th); + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; + e.setData({ + [txt]: gr_data.buy_limit + }); + e.doCheckAll(); - if (a.prom_type == 3) { - e.data.duo_zp_num_arr={}; - if (!a.selected) { - await e.check_prom_activity(pitems); - } - //判断商品是不是优惠活动 - for (var i in e.data.requestData) { - if(!a.selected && i==pitems) continue; - await e.check_prom_activity(i); - } - } - this.doCheckAll(); - } - }, - - //------门店全选按钮,要判断是否门店的匹配方式一致--------- - check_th_all_item_ser: async function (ele) { - var e = this, - pitems = ele.currentTarget.dataset.pitems, - item = this.data.service_data[pitems].goods, - sele = this.data.service_data[pitems].selected; - this.data.btn_click = 1; - var garr = e.data.requestData; - - var isok = 1, - fir = 0, - iarr = item; - - if (!sele) { - var check_is_goods_selected = 0; - for (var ii in garr) { - for (var ij in garr[ii].goods) { - if (garr[ii].goods[ij].selected) { - check_is_goods_selected = 1; - break; - } + t.goods_num = (gr_data.buy_limit - promgoodsbuynum) ? gr_data.buy_limit - promgoodsbuynum : 0; + e.update_cart(t, pitem, item); + return false; } - } - if (check_is_goods_selected) { - wx.showModal({ - title: '提示', - content: '服务卡项目不能和商品一起选择' - }); - return false; - } - } + e.update_cart(t, pitem, item); - for (var i = 0; i < item.length; i++) { - var txt = "service_data[" + pitems + "].goods[" + i + "].selected"; - e.setData({ - [txt]: Number(!sele), - }); + } else { + normal_check(store_count, goodsinfo, wareIds); + } + }) + + break; + default: + normal_check(store_count, goodsinfo, wareIds); + break } - var txt = "service_data[" + pitems + "].selected"; - e.setData({ - [txt]: Number(!sele), - }); - this.doCheckAll(); - }, - //---------------单选,也要判断门店的配送方式是否一致-------------- - check_th_item_ser: async function (t) { - var e = this, - item = t.currentTarget.dataset.item, - pitems = t.currentTarget.dataset.pitems; - a = this.data.service_data[pitems].goods[item]; // 选中的商品 - - var isok = 1, - fir = 0; - var iarr = e.data.service_data[pitems].goods; - this.data.btn_click = 1; + } + }); + }, - var garr = e.data.requestData; + //----------------------更新购物数量,加减,调用接口--------------------- + postCardList_ser: async function (t, item, pitem) { + var e = this, + th = e; + var user_id = getApp().globalData.user_id; + var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num"; + + e.setData({ + [txt]: t.goods_num + }); + + // 1.秒杀活动 + // 2.活动开始 + if (t.prom_type == 1 && t.is_pd_normal == 0) { + var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num"; + var redis_num = 0; + + // 获取其他门店,同类商品的数量 + var cartGoodsNum = 0; + await getApp().request.promiseGet("/api/weshop/cartService/page?store_id=" + t.store_id + "&user_id=" + getApp().globalData.user_id + "&service_id=" + t.goods_id, + {}).then(res => { + if (res.data.data.pageData.length > 0) { + const tmpObj = res.data.data.pageData; + tmpObj.forEach(v => { + if (t.id != v.id) { + cartGoodsNum += parseInt(v.goods_num); + } - if (!a.selected) { - var check_is_goods_selected = 0; - for (var ii in garr) { - for (var ij in garr[ii].goods) { - if (garr[ii].goods[ij].selected) { - check_is_goods_selected = 1; - break; - } - } - } + }); + } + }); + // 当前商品数量包括其他门店 + var totalNum = 0 + if (cartGoodsNum > 0) { + totalNum = t.goods_num + cartGoodsNum; + } else { + totalNum = t.goods_num; + } - if (check_is_goods_selected) { - wx.showModal({ - title: '提示', - content: '服务卡项目不能和商品一起选择' - }); - return false; - } - } + //获取当前商品活动库存 + await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + + t.store_id + "/" + t.prom_type + "/" + t.prom_id, { + 1: 1 + }).then(res => { + redis_num = res.data.data; + }); - var txt = "service_data[" + pitems + "].goods[" + item + "].selected"; - e.setData({ - [txt]: Number(!a.selected), + // 检测库存 + if (redis_num == 0) { + wx.showToast({ + title: '超出活动库存', + icon: 'none', }); - - this.doCheckAll(); - }, - - //----------检查是否全选--------- - doCheckAll: function () { - var th = this, - tfeel = 0, - t_num = 0, - ischeck = 1, - car = this.data.requestData, - car2 = this.data.service_data, - all_num = 0; - - //-- 购物车 -- - 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; - var offline_price=0; - var offline_num=0; - for (var c = 0; c < item.length; c++) { - if (item[c].is_gift) continue; - all_num += item[c].goods_num; - - //不管怎么样都要移出去 - var obj=JSON.parse(JSON.stringify(item[c])); - zh_calc.remove_zhprom(car,a,obj); - ladder_calc.remove_ladder_prom(car,a,obj); - - if (item[c].selected == 0) { - ischeck = 0; - is_s_sele = 0; - if (item[c].prom_type == 7) { - obj.goods_num = 0; - zh_calc.add_zhprom(car, a, obj); - } - if(item[c].prom_type==10) { - obj.goods_num=0; - ladder_calc.add_ladder_prom(car,a,obj); - } + // getApp().my_warnning('超出活动库存', 0, th); + th.setData({ [txt]: redis_num }); + t.goods_num = redis_num; + await th.doCheckAll(); + await th.update_cart_ser(t, pitem, item); + return false; + }; + // 限购数量 + var buylimit = 0 + await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + t.store_id + "/" + getApp().globalData.user_id + "/" + t.prom_id, { - } else { - if(item[c].prom_type==7){ - //先把商品放入组合计算的专用的区域 - console.log('是组合商品---') - console.log(car); - console.log(a) - console.log(obj) - console.log('......................') - zh_calc.add_zhprom(car,a,obj); - }else if(item[c].prom_type==10){ - ladder_calc.add_ladder_prom(car,a,obj); - } - else{ - tfeel += item[c].goods_num * item[c].goods_price; - } - t_num += item[c].goods_num; - } + }).then(res => { + if (res.data.code == 0) { + th.data.sele_g = res.data.data; + th.data.sele_g.viplimited = res.data.data.buy_limit; + buylimit = !res.data.data.buy_limit ? 0 : res.data.data.buy_limit; + }; + }); - //-- 如果这个商品是线下取价的时候 -- - if (item[c].is_offline && 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 gd_buy_num = 0; + await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum?store_id=" + t.store_id + "&user_id=" + getApp().globalData.user_id + "&card_id=" + t.card_id + "&prom_type=" + t.prom_type + "&prom_id=" + t.prom_id, { + }).then(tt => { + if (tt.data.code == 0) { + gd_buy_num = !tt.data.data.promcardbuynum ? 0 : tt.data.data.promcardbuynum; + th.setData({ + promcardbuynum: !tt.data.data.promcardbuynum ? 0 : tt.data.data.promcardbuynum, + cardbuynum: tt.data.data.cardbuynum, + }); + }; + }); - //总的价格,把组合商品的价格拿出来 - var zh_calc_res=zh_calc.calculate_zh(car,a,th); - console.log('.组合价-----------') - console.log(zh_calc_res) - //总的价格,把阶梯促销商品的价格拿出来 - var ladder_calc_res=ladder_calc.calculate_ladder(car,a,th); - - tfeel+=zh_calc_res.tfeel; - offline_price+=zh_calc_res.offline_price; - offline_num+=zh_calc_res.offline_num; - - tfeel+=ladder_calc_res.tfeel; - offline_price+=ladder_calc_res.offline_price; - offline_num+=ladder_calc_res.offline_num; - - var txt = "requestData[" + a + "].selected"; - th.setData({ - [txt]: Number(is_s_sele) - }); - - //当有线下取价的时候 - if (offline_price) { - var txt1 = "requestData[" + a + "].offline_price"; - var txt2 = "requestData[" + a + "].offline_num"; - th.setData({ - [txt1]: offline_price.toFixed(2), - [txt2]: offline_num, - }); - } else { - if (car[a].offline_price > 0) { - var txt1 = "requestData[" + a + "].offline_price"; - var txt2 = "requestData[" + a + "].offline_num"; - th.setData({ - [txt1]: 0, - [txt2]: 0 - }); - } - } + // 剩余购买数 + let num = buylimit - gd_buy_num; - } + if (totalNum > redis_num) { + wx.showToast({ + title: '超出活动库存', + icon: 'none', + }); + // getApp().my_warnning('超出活动库存', 0, th); + // 开启限购 + if (buylimit > 0) { + if (num > redis_num) { + th.setData({ [txt]: redis_num - cartGoodsNum }); + t.goods_num = redis_num - cartGoodsNum; + await th.doCheckAll(); + await th.update_cart_ser(t, pitem, item); + } else { + th.setData({ [txt]: num - cartGoodsNum }); + t.goods_num = num - cartGoodsNum; + await th.doCheckAll(); + await th.update_cart_ser(t, pitem, item); + } + } else { + th.setData({ [txt]: redis_num - cartGoodsNum }); + t.goods_num = redis_num - cartGoodsNum; + await th.doCheckAll(); + await th.update_cart_ser(t, pitem, item); } - //-- 服务卡 -- - if (car2 && car2.length > 0) { - for (var a = 0; a < car2.length; a++) { - var c_item = car2[a]; - var item = car2[a].goods, - is_s_sele = 1; - - for (var c = 0; c < item.length; c++) { - if (item[c].is_gift) continue; - all_num += item[c].goods_num; - if (item[c].selected == 0) { - ischeck = 0; - is_s_sele = 0; - } else { - tfeel += item[c].goods_num * item[c].money; - t_num += item[c].goods_num; - } + return false; + }; - } - var txt = "service_data[" + a + "].selected"; - th.setData({ - [txt]: Number(is_s_sele) - }); - } - } + //--秒杀:判断商品是否超出活动限购-- + if (buylimit > 0) { - this.setData({ - checkAllToggle: ischeck, - total_fee: tfeel.toFixed(2), - all_num: all_num, - total_num: t_num - }); - }, - - //----------------------更新购物数量,加减,调用接口--------------------- - postCardList: function (t, item, pitem) { - var e = this, - th = e, - user_id = getApp().globalData.user_id; - - function normal_check(store_count, goodsinfo, wareIds) { - //--- 看一下是不是线下库存 --- - if (th.data.sales_rules >= 2 && !goodsinfo.whsle_id) { - th.check_down_line(t, pitem, item, wareIds); - } else { - if (t.goods_num > store_count) { - wx.showToast({ - title: '购买数量超出商品库存', - icon: 'none', - }); - // getApp().my_warnning('购买数量超出商品库存', 0, th); - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; - e.setData({ - [txt]: store_count - }); - e.doCheckAll(); - t.goods_num = store_count; - } - e.update_cart(t, pitem, item); - } - } + // 如果限购数量<=活动库存数量,增加数量时会先超过限购数量,此时应提示“超出活动限购数量” + if (totalNum > num) { + // 计算还可以购买的数量:库存量 - 已购数 + wx.showToast({ + title: '超出活动限购', + icon: 'none', + }); + // getApp().my_warnning('超出活动限购', 0, th); + if (num <= 0) num = 1; + th.setData({ [txt]: num - cartGoodsNum }); + t.goods_num = num - cartGoodsNum; + await th.doCheckAll(); + await th.update_cart_ser(t, pitem, item); + return false; + }; - // console.log('update'); - // console.log('9995959595959',t); - var e = this,th=e; - var user_id = getApp().globalData.user_id; - rq.get("/api/weshop/goods/get/" + oo.stoid + "/" + t.goods_id, { - isShowLoading: 0, - async success(d) { - var limit = d.data.data.viplimited; - var store_count = d.data.data.store_count; - var wareIds = d.data.data.erpwareid; - - var goodsinfo = e.data.requestData[pitem].goods[item]; - var promgoodsbuynum = 0; - var goodsbuynum = 0; + } - //--要获得商品,该用户买了多少件,同步应用-- - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { - data: { - store_id: oo.stoid, - user_id: user_id, - goods_id: goodsinfo.goods_id, - prom_type: goodsinfo.prom_type, - prom_id: goodsinfo.prom_id - }, - }).then(res => { - var buy_num_data = res.data.data; - if (buy_num_data.promgoodsbuynum) { - promgoodsbuynum = buy_num_data.promgoodsbuynum; - var txt = "requestData[" + pitem + "].goods[" + item + "].zh_b_num"; - th.setData({ - [txt]: promgoodsbuynum - }); - } - goodsbuynum = buy_num_data.goodsbuynum; + } - }) - //--> by ty - // var buyed_mum2 = t.goods_num + goodsbuynum; - var buyed_mum2 = t.goods_num; - //<-- - - // 判断当前预购买的数量是否超过可购买的数量 - if (buyed_mum2 > (limit - goodsbuynum) && limit > 0) { - wx.showToast({ - title: '购买数量超出商品限购', - icon: 'none', - }); - //getApp().my_warnning('购买数量超出商品限购', 0, th); - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; - - //--> by ty - var cbuy = limit - goodsbuynum; - // var cbuy = limit - buyed_mum2 + 1; - //<-- - - e.setData({ - // [txt]: cbuy > 0 ? cbuy : 0, - [txt]: cbuy > 0 ? cbuy : limit, - }); - e.doCheckAll(); - - t.goods_num = cbuy > 0 ? cbuy : limit, - // t.goods_num = cbuy > 0 ? cbuy : 0, - e.update_cart(t, pitem, item); - return false; - } + await e.doCheckAll(); + await e.update_cart_ser(t, pitem, item); - switch (goodsinfo.prom_type) { - case 1: - //读取秒杀 - rq.get("/api/ms/flash_sale/getFlashSaleOne/" + oo.stoid + "/" + goodsinfo.prom_id, { - isShowLoading: 0, - success: function (res_d) { - if (res_d.data.code == 0 && res_d.data.data) { - if (t.goods_num > store_count) { - // wx.showModal({ - // title: '提示', - // content: '购买数量超出商品库存' - // }); - wx.showToast({ - title: '购买数量超出商品库存', - icon: 'none', - }); - // getApp().my_warnning('购买数量超出商品库存', 0, th); - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; - e.setData({ - [txt]: store_count - }); - e.doCheckAll(); - - t.goods_num = store_count; - e.update_cart(t, pitem, item); - - return false; - } - - var false_data = res_d.data.data; - //--判断库存-- - if (t.goods_num > false_data.goods_num - false_data.buy_num) { - // wx.showModal({ - // title: '提示', - // content: '购买数量超出活动库存' - // }); - wx.showToast({ - title: '购买数量超出活动库存', - icon: 'none', - }); - // getApp().my_warnning('购买数量超出活动库存', 0, th); - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; - e.setData({ - [txt]: false_data.goods_num - false_data.buy_num - }); - e.doCheckAll(); - - t.goods_num = false_data.goods_num - false_data.buy_num; - e.update_cart(t, pitem, item); - - return false; - } - - //--判断redis数量是否已经超出-- - if (t.goods_num > false_data.redisnum) { - // wx.showModal({ - // title: '提示', - // content: '购买数量超出商品库存' - // }); - wx.showToast({ - title: '购买数量超出商品库存', - icon: 'none', - }); - //getApp().my_warnning('购买数量超出商品库存', 0, th); - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; - e.setData({ - [txt]: false_data.redisnum - }); - e.doCheckAll(); - - t.goods_num = false_data.redisnum; - e.update_cart(t, pitem, item); - return false; - } - - //--活动的限购是不是要判断-- - if (t.goods_num + promgoodsbuynum > false_data.buy_limit && false_data.buy_limit > 0) { - // wx.showModal({ - // title: '提示', - // content: '购买数量超出秒杀限购' - // }); - wx.showToast({ - title: '购买数量超出秒杀限购', - icon: 'none', - }); - // getApp().my_warnning('购买数量超出秒杀限购', 0, th); - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; - e.setData({ - [txt]: false_data.buy_limit - }); - e.doCheckAll(); - t.goods_num = (false_data.buy_limit - promgoodsbuynum) ? false_data.buy_limit - promgoodsbuynum : 0; - e.update_cart(t, pitem, item); - return false; - } - e.update_cart(t, pitem, item); - - } else { - normal_check(store_count, goodsinfo, wareIds); - } - } - }) - break; - case 2: - getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + goodsinfo.goods_id + "/" + goodsinfo.prom_id, {}).then(res => { - if (res.data.code == 0 && res.data.data) { - if (t.goods_num > store_count) { - // wx.showModal({ - // title: '提示', - // content: '购买数量超出商品库存' - // }); - wx.showToast({ - title: '购买数量超出商品库存', - icon: 'none', - }); - // getApp().my_warnning('购买数量超出商品库存', 0, th); - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; - e.setData({ - [txt]: store_count - }); - e.doCheckAll(); - - t.goods_num = store_count; - e.update_cart(t, pitem, item); - - return false; - } - - var gr_data = res.data.data; - //--判断库存-- - if (t.goods_num > gr_data.goods_num - gr_data.buy_num) { - // wx.showModal({ - // title: '提示', - // content: '购买数量超出活动库存' - // }); - wx.showToast({ - title: '购买数量超出活动库存', - icon: 'none', - }); - // getApp().my_warnning('购买数量超出活动库存', 0, th); - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; - e.setData({ - [txt]: gr_data.goods_num - gr_data.buy_num - }); - e.doCheckAll(); - - t.goods_num = gr_data.goods_num - gr_data.buy_num; - e.update_cart(t, pitem, item); - - return false; - } - - //--判断redis数量是否已经超出-- - if (t.goods_num > gr_data.redisnum) { - // wx.showModal({ - // title: '提示', - // content: '购买数量超出商品库存' - // }); - wx.showToast({ - title: '购买数量超出商品库存', - icon: 'none', - }); - // getApp().my_warnning('购买数量超出商品库存', 0, th); - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; - e.setData({ - [txt]: gr_data.redisnum - }); - e.doCheckAll(); - - t.goods_num = gr_data.redisnum; - e.update_cart(t, pitem, item); - return false; - } - - //--活动的限购是不是要判断-- - if (t.goods_num + promgoodsbuynum > gr_data.buy_limit && gr_data.buy_limit > 0) { - // wx.showModal({ - // title: '提示', - // content: '购买数量超出团购限购' - // }); - wx.showToast({ - title: '购买数量超出团购限购', - icon: 'none', - }); - // getApp().my_warnning('购买数量超出团购限购', 0, th); - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; - e.setData({ - [txt]: gr_data.buy_limit - }); - e.doCheckAll(); - - t.goods_num = (gr_data.buy_limit - promgoodsbuynum) ? gr_data.buy_limit - promgoodsbuynum : 0; - e.update_cart(t, pitem, item); - return false; - } - e.update_cart(t, pitem, item); + }, - } else { - normal_check(store_count, goodsinfo, wareIds); - } - }) - break; - default: - normal_check(store_count, goodsinfo, wareIds); - break - } - } - }); - }, + // 检查购物车数量 + async checkCartNum(t, item, pitem) { + var th = this; + if (t.is_pd_normal) return false; + if (t.prom_type == 1) { + var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num"; + var redis_num = 0; + + //------判断活动是否抢光----- + await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + + t.store_id + "/" + t.prom_type + "/" + t.prom_id, { + 1: 1 + }).then(res => { + redis_num = res.data.data; + }); - //----------------------更新购物数量,加减,调用接口--------------------- - postCardList_ser: async function (t, item, pitem) { - var e = this, - th = e; - var user_id = getApp().globalData.user_id; - var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num"; + // 检测库存 + if (redis_num == 0) { + wx.showToast({ + title: '超出活动库存', + icon: 'none', + }); + // getApp().my_warnning('超出活动库存', 0, th); + th.setData({ [txt]: redis_num }); + return false; + }; - e.setData({ - [txt]: t.goods_num + if (t.goods_num > redis_num) { + wx.showToast({ + title: '超出活动库存', + icon: 'none', }); + // getApp().my_warnning('超出活动库存', 0, th); + th.setData({ [txt]: redis_num }); + return false; + }; - // 1.秒杀活动 - // 2.活动开始 - if(t.prom_type == 1 && t.is_pd_normal == 0) { - var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num"; - var redis_num = 0; - - // 获取其他门店,同类商品的数量 - var cartGoodsNum = 0; - await getApp().request.promiseGet("/api/weshop/cartService/page?store_id="+t.store_id+"&user_id="+getApp().globalData.user_id+"&service_id="+t.goods_id, - { }).then(res => { - if (res.data.data.pageData.length > 0) { - const tmpObj = res.data.data.pageData; - tmpObj.forEach(v => { - if (t.id != v.id) { - cartGoodsNum += parseInt(v.goods_num); - } - - }); - } - }); - // 当前商品数量包括其他门店 - var totalNum = 0 - if (cartGoodsNum > 0) { - totalNum = t.goods_num + cartGoodsNum; - } else { - totalNum = t.goods_num; - } + // 个人限购 + //----获取用户活动购买数---- + await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum?store_id=" + t.store_id + "&user_id=" + getApp().globalData.user_id + "&card_id=" + t.goods_id + "&prom_type=" + t.prom_type + "&prom_id=" + t.prom_id, { + }).then(tt => { + if (tt.data.code == 0) { + th.setData({ + promcardbuynum: tt.data.data.promcardbuynum, + cardbuynum: tt.data.data.cardbuynum, + }); + }; + }); - //获取当前商品活动库存 - await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + - t.store_id + "/" + t.prom_type + "/" + t.prom_id, { - 1: 1 - }).then(res => { - redis_num = res.data.data; - }); - - // 检测库存 - if(redis_num == 0) { - wx.showToast({ - title: '超出活动库存', - icon: 'none', - }); - // getApp().my_warnning('超出活动库存', 0, th); - th.setData({[txt]: redis_num}); - t.goods_num = redis_num; - await th.doCheckAll(); - await th.update_cart_ser(t, pitem, item); - return false; - }; - // 限购数量 - var buylimit = 0 - await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + t.store_id + "/" + getApp().globalData.user_id + "/" + t.prom_id, { - - }).then(res => { - if(res.data.code == 0) { - th.data.sele_g = res.data.data; - th.data.sele_g.viplimited = res.data.data.buy_limit; - buylimit = !res.data.data.buy_limit ? 0 : res.data.data.buy_limit; - }; - }); - //用户已经成功付款购买的数量 - var gd_buy_num = 0; - await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum?store_id="+t.store_id+"&user_id="+getApp().globalData.user_id+"&card_id="+t.card_id+"&prom_type="+t.prom_type+"&prom_id="+t.prom_id, { - }).then(tt => { - if (tt.data.code == 0) { - gd_buy_num = !tt.data.data.promcardbuynum ? 0 : tt.data.data.promcardbuynum; - th.setData({ - promcardbuynum: !tt.data.data.promcardbuynum ? 0 : tt.data.data.promcardbuynum, - cardbuynum: tt.data.data.cardbuynum, - }); - }; - }); + var buylimit = 0 + await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + t.store_id + "/" + getApp().globalData.user_id + "/" + t.prom_id, { - // 剩余购买数 - let num = buylimit - gd_buy_num; + }).then(res => { + if (res.data.code == 0) { - if(totalNum > redis_num) { - wx.showToast({ - title: '超出活动库存', - icon: 'none', - }); - // getApp().my_warnning('超出活动库存', 0, th); - // 开启限购 - if (buylimit > 0) { - if (num > redis_num) { - th.setData({[txt]: redis_num-cartGoodsNum}); - t.goods_num = redis_num-cartGoodsNum; - await th.doCheckAll(); - await th.update_cart_ser(t, pitem, item); - } else { - th.setData({[txt]: num - cartGoodsNum}); - t.goods_num = num - cartGoodsNum; - await th.doCheckAll(); - await th.update_cart_ser(t, pitem, item); - } - } else { - th.setData({[txt]: redis_num - cartGoodsNum}); - t.goods_num = redis_num - cartGoodsNum; - await th.doCheckAll(); - await th.update_cart_ser(t, pitem, item); - } + th.data.sele_g = res.data.data; + th.data.sele_g.viplimited = res.data.data.buy_limit; + buylimit = res.data.data.buy_limit; + }; + }); - return false; - }; - - //--秒杀:判断商品是否超出活动限购-- - if (buylimit > 0) { - - // 如果限购数量<=活动库存数量,增加数量时会先超过限购数量,此时应提示“超出活动限购数量” - if(totalNum > num) { - // 计算还可以购买的数量:库存量 - 已购数 - wx.showToast({ - title: '超出活动限购', - icon: 'none', - }); - // getApp().my_warnning('超出活动限购', 0, th); - if (num <= 0) num = 1; - th.setData({[txt]: num - cartGoodsNum}); - t.goods_num = num - cartGoodsNum; - await th.doCheckAll(); - await th.update_cart_ser(t, pitem, item); - return false; - }; - - } - - - } + //--秒杀:判断商品是否超出活动限购-- + if (buylimit > 0) { + var gd_buy_num = th.data.promcardbuynum; - await e.doCheckAll(); - await e.update_cart_ser(t, pitem, item); - - - }, - - - // 检查购物车数量 - async checkCartNum(t, item, pitem) { - var th = this; - if(t.is_pd_normal) return false; - if (t.prom_type == 1) { - var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num"; - var redis_num = 0; - - //------判断活动是否抢光----- - await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + - t.store_id + "/" + t.prom_type + "/" + t.prom_id, { - 1: 1 - }).then(res => { - redis_num = res.data.data; - }); - - // 检测库存 - if(redis_num == 0) { - wx.showToast({ - title: '超出活动库存', - icon: 'none', - }); - // getApp().my_warnning('超出活动库存', 0, th); - th.setData({[txt]: redis_num}); - return false; - }; + // 如果限购数量<=活动库存数量,增加数量时会先超过限购数量,此时应提示“超出活动限购数量” + if (t.goods_num + gd_buy_num > buylimit) { + // 计算还可以购买的数量:库存量 - 已购数 + wx.showToast({ + title: '超出活动限购', + icon: 'none', + }); + // getApp().my_warnning('超出活动限购', 0, th); + th.setData({ [txt]: buylimit }); - if(t.goods_num > redis_num) { - wx.showToast({ - title: '超出活动库存', - icon: 'none', - }); - // getApp().my_warnning('超出活动库存', 0, th); - th.setData({[txt]: redis_num}); - return false; - }; + }; - // 个人限购 - //----获取用户活动购买数---- - await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum?store_id="+t.store_id+"&user_id="+getApp().globalData.user_id+"&card_id="+t.goods_id+"&prom_type="+t.prom_type+"&prom_id="+t.prom_id, { - }).then(tt => { - if (tt.data.code == 0) { - th.setData({ - promcardbuynum: tt.data.data.promcardbuynum, - cardbuynum: tt.data.data.cardbuynum, - }); - }; - }); - - - - var buylimit = 0 - await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + t.store_id + "/" + getApp().globalData.user_id + "/" + t.prom_id, { - - }).then(res => { - if(res.data.code == 0) { - - th.data.sele_g = res.data.data; - th.data.sele_g.viplimited = res.data.data.buy_limit; - buylimit = res.data.data.buy_limit; - }; - }); - - - //--秒杀:判断商品是否超出活动限购-- - if (buylimit > 0) { - - var gd_buy_num = th.data.promcardbuynum; - - // 如果限购数量<=活动库存数量,增加数量时会先超过限购数量,此时应提示“超出活动限购数量” - if(t.goods_num + gd_buy_num > buylimit) { - // 计算还可以购买的数量:库存量 - 已购数 - wx.showToast({ - title: '超出活动限购', - icon: 'none', - }); - // getApp().my_warnning('超出活动限购', 0, th); - th.setData({[txt]: buylimit}); - - }; - - } - - - th.doCheckAll(); - th.update_cart_ser(t, pitem, item); - + } - - }; - }, + th.doCheckAll(); + th.update_cart_ser(t, pitem, item); - //---检验线下库存的数量--- - async check_down_line(t, pitem, item, erpwareid) { - var ob = {}, - th = this; - await this.check_down_line_next(t, pitem, item, erpwareid, function (res) { - ob = res; - }); - var log = 0; - if (ob.code == -1) { - // wx.showModal({ - // title: '提示', - // content: '购买数量超出商品库存' - // }); - wx.showToast({ - title: '购买数量超出商品库存', - icon: 'none', - }); - // getApp().my_warnning('购买数量超出商品库存', 0, th); - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; - th.setData({ - [txt]: ob.CanOutQty - }); - th.doCheckAll(); - t.goods_num = ob.CanOutQty; - }else{ - var this_obj=this.data.requestData[pitem].goods[item]; + }; + }, - if(th.data.sales_rules==3 && this_obj.selected){ - var goods_id=this_obj.goods_id; + //---检验线下库存的数量--- + async check_down_line(t, pitem, item, erpwareid) { + var ob = {}, + th = this; + await this.check_down_line_next(t, pitem, item, erpwareid, function (res) { + ob = res; + }); + var log = 0; + if (ob.code == -1) { + // wx.showModal({ + // title: '提示', + // content: '购买数量超出商品库存' + // }); + wx.showToast({ + title: '购买数量超出商品库存', + icon: 'none', + }); + // getApp().my_warnning('购买数量超出商品库存', 0, th); + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; + th.setData({ + [txt]: ob.CanOutQty + }); + th.doCheckAll(); + t.goods_num = ob.CanOutQty; + } else { - var num=0; + var this_obj = this.data.requestData[pitem].goods[item]; - for (let i = 0; i < this.data.requestData.length; i++) { - if(pitem==i) continue; - var it= this.data.requestData[i].goods.find((e)=>{ - return e.goods_id==goods_id; - }) - if(it && it.selected) num+=it.goods_num - } + if (th.data.sales_rules == 3 && this_obj.selected) { - if(num>ob.CanOutQty){ - wx.showToast({ - title: '购买数量超出商品库存', - icon: 'none', - }); - th.data.up_dating = 0; - return false; - } + var goods_id = this_obj.goods_id; + var num = 0; + for (let i = 0; i < this.data.requestData.length; i++) { + if (pitem == i) continue; + var it = this.data.requestData[i].goods.find((e) => { + return e.goods_id == goods_id; + }) + if (it && it.selected) num += it.goods_num + } - } + if (num > ob.CanOutQty) { + wx.showToast({ + title: '购买数量超出商品库存', + icon: 'none', + }); + + th.data.up_dating = 0; + return false; } + } + } - this.update_cart(t, pitem, item); - }, - //---检验线下库存的数量的子函数--- - async check_down_line_next(t, pitem, item, erpwareid, func) { - var goodsinfo = this.data.requestData[pitem].goods[item]; - var lock = 0, - pick_no, plist; - var lock_rq={ - store_id: os.stoid, wareId: t.goods_id, - storageId: goodsinfo.pick_id, pageSize: 1000 - } + this.update_cart(t, pitem, item); + }, - if(this.data.sales_rules==3){ - lock_rq.appoint_pick_keyid=this.data.appoint_pick_keyid; - delete lock_rq.storageId - } + //---检验线下库存的数量的子函数--- + async check_down_line_next(t, pitem, item, erpwareid, func) { - //先读取门店的lock - await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { - data: lock_rq - }).then(res => { - if (res.data.code == 0 && res.data.data.total > 0) { - for (var i in res.data.data.pageData) - lock += res.data.data.pageData[i].outQty; - } - }) + var goodsinfo = this.data.requestData[pitem].goods[item]; + var lock = 0, + pick_no, plist; - if(this.data.sales_rules==2) { - //先获取门店的编号 - await getApp().request.promiseGet("/api/weshop/pickup/get/" + os.stoid + "/" + goodsinfo.pick_id, { - data: { - storeId: os.stoid, - goodsId: t.goods_id, - pickupId: goodsinfo.pick_id - } - }).then(res => { - if (res.data.code == 0) { - pick_no = res.data.data.pickup_no; - } - }) - } + var lock_rq = { + store_id: os.stoid, wareId: t.goods_id, + storageId: goodsinfo.pick_id, pageSize: 1000 + } - var sto_rq={storageNos:pick_no,wareIds:encodeURIComponent(erpwareid),storeId:os.stoid}; + if (this.data.sales_rules == 3) { + lock_rq.appoint_pick_keyid = this.data.appoint_pick_keyid; + delete lock_rq.storageId + } - if(this.data.sales_rules==3){ - sto_rq.storageIds=this.data.appoint_pick_keyid; - delete sto_rq.storageNos + //先读取门店的lock + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { + data: lock_rq + }).then(res => { + if (res.data.code == 0 && res.data.data.total > 0) { + for (var i in res.data.data.pageData) + lock += res.data.data.pageData[i].outQty; + } + }) + + if (this.data.sales_rules == 2) { + //先获取门店的编号 + await getApp().request.promiseGet("/api/weshop/pickup/get/" + os.stoid + "/" + goodsinfo.pick_id, { + data: { + storeId: os.stoid, + goodsId: t.goods_id, + pickupId: goodsinfo.pick_id } - //读取线下的门店库存 - await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ - data:sto_rq - }).then(res=>{ - if(ut.ajax_ok(res)){ - plist=res.data.data.pageData[0]; - } - }) - var ob = {}; - ob.code = 1; - - if (!plist) { - ob.code = -1; - ob.CanOutQty = 0; - func(ob); - return false; + }).then(res => { + if (res.data.code == 0) { + pick_no = res.data.data.pickup_no; } + }) + } + + var sto_rq = { storageNos: pick_no, wareIds: encodeURIComponent(erpwareid), storeId: os.stoid }; + + if (this.data.sales_rules == 3) { + sto_rq.storageIds = this.data.appoint_pick_keyid; + delete sto_rq.storageNos + } + //读取线下的门店库存 + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { + data: sto_rq + }).then(res => { + if (ut.ajax_ok(res)) { + plist = res.data.data.pageData[0]; + } + }) + var ob = {}; + ob.code = 1; + + if (!plist) { + ob.code = -1; + ob.CanOutQty = 0; + func(ob); + return false; + } + + var c_num = t.goods_num; + if (t.need_downlow_num) c_num = t.need_downlow_num; + + if (c_num > plist.CanOutQty - lock) { + ob.code = -1; + ob.CanOutQty = plist.CanOutQty - lock + if (ob.CanOutQty < 0) ob.CanOutQty = 0; + } else { + ob.CanOutQty = plist.CanOutQty - c_num - lock; + } - var c_num = t.goods_num; - if (t.need_downlow_num) c_num = t.need_downlow_num; - if (c_num > plist.CanOutQty - lock) { - ob.code = -1; - ob.CanOutQty = plist.CanOutQty - lock - if (ob.CanOutQty < 0) ob.CanOutQty = 0; - }else{ - ob.CanOutQty=plist.CanOutQty-c_num- lock; - } + func(ob) + }, - func(ob) - }, + //--更新购物车--- + update_cart: function (t, pitem, item) { + var e = this; + getApp().request.put("/api/weshop/cart/update", { + data: t, + success: async function (ee) { + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; - //--更新购物车--- - update_cart: function (t, pitem, item) { - var e = this; + e.setData({ + [txt]: t.goods_num, + }); - getApp().request.put("/api/weshop/cart/update", { - data: t, - success: async function (ee) { - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; + e.data.duo_zp_num_arr = {}; + //await e.check_prom_activity(pitem) + for (var i in e.data.requestData) { + await e.check_prom_activity(i) + } + e.doCheckAll(); + getApp().requestCardNum(e); + } + }); + }, - e.setData({ - [txt]: t.goods_num, - }); + //--更新购物车--- + update_cart_ser: function (t, pitem, item) { + var e = this; - e.data.duo_zp_num_arr={}; - //await e.check_prom_activity(pitem) - for (var i in e.data.requestData) { - await e.check_prom_activity(i) - } - e.doCheckAll(); - getApp().requestCardNum(e); - } - }); - }, - - //--更新购物车--- - update_cart_ser: function (t, pitem, item) { - var e = this; - - getApp().request.put("/api/weshop/cartService/update", { - data: t, - success: async function (ee) { - var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num"; - e.setData({ - [txt]: t.goods_num, - }); - e.doCheckAll(); - getApp().requestCardNum(e); - } + getApp().request.put("/api/weshop/cartService/update", { + data: t, + success: async function (ee) { + var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num"; + e.setData({ + [txt]: t.goods_num, }); - }, + e.doCheckAll(); + getApp().requestCardNum(e); + } + }); + }, - //-------下拉刷新--------- - onPullDownRefresh: function (t) { - this.getCardList(); - }, + //-------下拉刷新--------- + onPullDownRefresh: function (t) { + this.getCardList(); + }, - //--------------去结算------------ - async checkout() { + //--------------去结算------------ + async checkout() { - if(getApp().is_sp_hao()){ - wx.showToast({ - title: "视频号不支持购物车购买", - icon: 'none', - duration: 2000 - }); - return false; - } - - if (!this.data.total_num || this.data.total_num <= 0) return false; - if (!this.data.is_load) return false; - if (this.data.up_dating) { - wx.showLoading({ - title: "计算中" - }) + if (getApp().is_sp_hao()) { + wx.showToast({ + title: "视频号不支持购物车购买", + icon: 'none', + duration: 2000 + }); + return false; + } + + if (!this.data.total_num || this.data.total_num <= 0) return false; + if (!this.data.is_load) return false; + if (this.data.up_dating) { + wx.showLoading({ + title: "计算中" + }) + } + var garr = this.data.requestData; + var check_is_goods_selected = 0; + if (garr) { + for (var ii in garr) { + for (var ij in garr[ii].goods) { + if (garr[ii].goods[ij].selected) { + check_is_goods_selected = 1; + break; + } } - var garr = this.data.requestData; - var check_is_goods_selected = 0; - if (garr) { - for (var ii in garr) { - for (var ij in garr[ii].goods) { - if (garr[ii].goods[ij].selected) { - check_is_goods_selected = 1; - break; - } - } + } + } + //-- 如果是商品的结算 -- + if (check_is_goods_selected) { + var glist = ""; //用逗号隔开的 + var map = new Map(); //使用map值键进行运算 + var map_limit = new Map(); //使用map值键进行存储限购 + var g_arr = new Array(); //已选的商品列表 + var user_id = getApp().globalData.user_id; + var th = this; + //用于判断是不是积分购的普通购买 + var normal_arr = {}; + var ab = 0; //选中 + wx.showLoading(); + let checkArr7 = [];//组合购选中的数据 + // let checkOff=false + for (var i = 0; i < this.data.requestData.length; i++) { + var i_arr = this.data.requestData[i].goods; + for (var j = 0; j < i_arr.length; j++) { + if (i_arr[j].selected && i_arr[j].is_gift != 1) { + if (i_arr[j].is_pd_normal || i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3) { + normal_arr[i_arr[j].goods_id] = 1; } - } - //-- 如果是商品的结算 -- - if (check_is_goods_selected) { - var glist = ""; //用逗号隔开的 - var map = new Map(); //使用map值键进行运算 - var map_limit = new Map(); //使用map值键进行存储限购 - var g_arr = new Array(); //已选的商品列表 - var user_id = getApp().globalData.user_id; - var th = this; - //用于判断是不是积分购的普通购买 - var normal_arr = {}; - var ab = 0; //选中 - wx.showLoading(); - let checkArr7=[];//组合购选中的数据 - // let checkOff=false - for (var i = 0; i < this.data.requestData.length; i++) { - var i_arr = this.data.requestData[i].goods; - for (var j = 0; j < i_arr.length; j++) { - if (i_arr[j].selected && i_arr[j].is_gift != 1) { - if (i_arr[j].is_pd_normal || i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3) { - normal_arr[i_arr[j].goods_id] = 1; - } - if (i_arr[j].prom_type==7 && ( !this.data.requestData[i].need_list || (this.data.requestData[i].need_list && this.data.requestData[i].need_list.length==0)) && i_arr[j].act && i_arr[j].act.buy_limit !=0) { - let userbuynum = await this.getUserBuyPromNum(i_arr[j].goods_prom_id) - console.log('活动次数:' + userbuynum); - if (userbuynum >= i_arr[j].act.buy_limit) { - // i_arr[j].act.buy_userbuynum=true - checkArr7.push(i_arr[j]) - } - } - //map 的key是不会重复,会覆盖,, - var ie = { - goods_id: i_arr[j].goods_id, - id: i_arr[j].id, - goods_price: i_arr[j].goods_price, - }; - //判断是不是线下取价 - if (i_arr[j].is_offline) { - ie.is_offline = i_arr[j].is_offline; - ie.offline_price = i_arr[j].offline_price; - ie.pricing_type = i_arr[j].pricing_type; - } - g_arr.push(ie); - - if (map.has(i_arr[j].goods_id + "")) { - var num11 = map.get(i_arr[j].goods_id + ""); - var num22 = parseInt(i_arr[j].goods_num) + parseInt(num11); - map.set(i_arr[j].goods_id + "", num22); - } else { - map.set(i_arr[j].goods_id + "", i_arr[j].goods_num); - } - glist += i_arr[j].goods_id + ","; - ab = 1; - //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存--- - if ((i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3 || i_arr[j].prom_type == 5 || i_arr[j].prom_type == 7 || - i_arr[j].need_downlow_num) && th.data.sales_rules >= 2 && i_arr[j].is_gift != 1 && !i_arr[j].whsle_id) { - //--获取商品的线下商品ID-- - var gd = null; - await getApp().request.promiseGet("/api/weshop/goods/get/" + oo.stoid + "/" + i_arr[j].goods_id, {}).then(res => { - if (res.data.code == 0) gd = res.data.data; - }) - //--判断商品是线下库存-- - var ob = {} - await th.check_down_line_next(i_arr[j], i, j, gd.erpwareid, function (rs) { - ob = rs; - }); - if (ob.code == -1) { - t.my_warnning(gd.goods_name + "门店库存不足", 0, th); - wx.hideLoading(); - return false; - } + if (i_arr[j].prom_type == 7 && (!this.data.requestData[i].need_list || (this.data.requestData[i].need_list && this.data.requestData[i].need_list.length == 0)) && i_arr[j].act && i_arr[j].act.buy_limit != 0) { + let userbuynum = await this.getUserBuyPromNum(i_arr[j].goods_prom_id) + console.log('活动次数:' + userbuynum); + if (userbuynum >= i_arr[j].act.buy_limit) { + // i_arr[j].act.buy_userbuynum=true + checkArr7.push(i_arr[j]) + } + } + //map 的key是不会重复,会覆盖,, + var ie = { + goods_id: i_arr[j].goods_id, + id: i_arr[j].id, + goods_price: i_arr[j].goods_price, + }; + //判断是不是线下取价 + if (i_arr[j].is_offline) { + ie.is_offline = i_arr[j].is_offline; + ie.offline_price = i_arr[j].offline_price; + ie.pricing_type = i_arr[j].pricing_type; + } + g_arr.push(ie); - var is_ok = 1; - //如果是优惠活动话,要看活动有没有过期 - if (i_arr[j].prom_type == 3) { - //判断有没有活动 - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + i_arr[j].goods_id + "/1"+"/"+getApp().globalData.user_id, {}).then(res => { - if (res.data.code == 0) { - if (!res.data.data.promGoodsLists) { - t.my_warnning(i_arr[j].goods_name + "优惠活动已经过期", 0, th); - wx.hideLoading(); - is_ok = 0; - } - } - }) - } - if (!is_ok) { - return false; - } - } + if (map.has(i_arr[j].goods_id + "")) { + var num11 = map.get(i_arr[j].goods_id + ""); + var num22 = parseInt(i_arr[j].goods_num) + parseInt(num11); + map.set(i_arr[j].goods_id + "", num22); + } else { + map.set(i_arr[j].goods_id + "", i_arr[j].goods_num); + } + glist += i_arr[j].goods_id + ","; + ab = 1; + //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存--- + if ((i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3 || i_arr[j].prom_type == 5 || i_arr[j].prom_type == 7 || + i_arr[j].need_downlow_num) && th.data.sales_rules >= 2 && i_arr[j].is_gift != 1 && !i_arr[j].whsle_id) { + //--获取商品的线下商品ID-- + var gd = null; + await getApp().request.promiseGet("/api/weshop/goods/get/" + oo.stoid + "/" + i_arr[j].goods_id, {}).then(res => { + if (res.data.code == 0) gd = res.data.data; + }) + //--判断商品是线下库存-- + var ob = {} + await th.check_down_line_next(i_arr[j], i, j, gd.erpwareid, function (rs) { + ob = rs; + }); + if (ob.code == -1) { + t.my_warnning(gd.goods_name + "门店库存不足", 0, th); + wx.hideLoading(); + return false; + } - } else { - if (i_arr[j].is_gift == 1) continue; - rq.put("/api/weshop/cart/update", { - data: { - id: i_arr[j].id, - selected: 0, - store_id: oo.stoid - }, - success: function (ee) { - console.log(ee); - } - }); + var is_ok = 1; + //如果是优惠活动话,要看活动有没有过期 + if (i_arr[j].prom_type == 3) { + //判断有没有活动 + await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + i_arr[j].goods_id + "/1" + "/" + getApp().globalData.user_id, {}).then(res => { + if (res.data.code == 0) { + if (!res.data.data.promGoodsLists) { + t.my_warnning(i_arr[j].goods_name + "优惠活动已经过期", 0, th); + wx.hideLoading(); + is_ok = 0; } - } + } + }) + } + if (!is_ok) { + return false; + } } - - if (checkArr7.length >0) { - let checkStr=[] - checkArr7.map(item=>{ - checkStr.push(item.goods_name) - }) - let str=checkStr.join() - wx.hideLoading() - wx.showModal({ - title: '提示', - // content: `商品${str},组合购活动,购买次数已超,将以普通商品购买?`, - content: `${str}超出组合购限购次数,将以普通商品购买`, - success:res=>{ - wx.showLoading(); - if (res.confirm) { - console.log('用户点击确定') - //排除失效商品结算 - this.data.invalidList.map(item=>{ - if(item.selected && item.classType==0){ - rq.put('/api/weshop/cart/update', { - data: { - id: item.id, - selected: 0, - store_id: oo.stoid - }, - success: function (ee) { - console.log(ee); - } - }); - } - }) - if (ab == 0) { - t.my_warnning("未选择商品", 0, th); - wx.hideLoading(); - return false; - } - glist = glist.substring(0, glist.length - 1); - //--取一下商品的限购 以及活动的限购,redis数量-- - rq.get("/api/weshop/goods/getGoodsListNum", { - data: { - goodsidlist: glist, - store_id: oo.stoid - }, - async success(ee) { - console.log(ee); - if (ee.data.code == 0) { - var ddata = ee.data.data, - isok = 1, - gname = "", - err = ""; - //--组装-- - for (var ij = 0; ij < ddata.length; ij++) { - var val = ddata[ij]; - var obj = map_limit.get(val.goods_id + ""); - if (obj) continue; - - var promgoodsbuynum = 0; - var goodsbuynum = 0; - - //--要获得商品,该用户买了多少件,同步应用-- - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { - data: { - store_id: oo.stoid, - user_id: user_id, - goods_id: val.goods_id, - prom_type: val.prom_type, - prom_id: val.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; - }) - var ie = { - promgoodsbuynum: promgoodsbuynum, - goodsbuynum: goodsbuynum - }; - map_limit.set(val.goods_id + "", ie); - } - - try { - for (var ind in ddata) { - var val = ddata[ind]; - var num = map.get(val.goods_id + ""); - if (num <= 0) { - isok = 0; - gname = val.goods_name; - throw "购买数量不能为0"; - return false; - } - - if (val.prom_type == 1 || val.prom_type == 6) { - if (num > val.store_count) { - isok = 0; - gname = val.goods_name; - throw "超出库存"; - return false; - } - } - - if (th.data.sales_rules == 1) { - if (num > val.store_count) { - isok = 0; - gname = val.goods_name; - throw "超出库存"; - return false; - } - } - if (num > val.redisnum && val.redisnum && !normal_arr[val.goods_id]) { - isok = 0; - gname = val.goods_name; - throw "超出活动库存"; - return false; - } - if (num > val.goods_num - val.buy_num && val.goods_num && !normal_arr[val.goods_id]) { - isok = 0; - gname = val.goods_name; - throw "超出活动库存"; - return false; - } - - var buyed = map_limit.get(val.goods_id + ""); - if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) { - isok = 0; - gname = val.goods_name; - throw "超出商品限购"; - return false; - } - - if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0 && !normal_arr[val.goods_id]) { - isok = 0; - gname = val.goods_name; - throw "超出活动限购"; - return false; - } - - var card_field = th.data.card_field; - for (var i = 0; i < g_arr.length; i++) { - - if (g_arr[i].goods_id == val.goods_id) { - - //如果会员是等级会员,商品有等级价,且不是活动商品 - if (card_field && val[card_field] > 0 && - ((val.prom_type == 0 && g_arr[i].prom_type==0) || val.prom_type == 3 || val.prom_type == 4 || val.prom_type == 5 || val.prom_type == 7 || val.prom_type == 10 || normal_arr[val.goods_id])) { - if (g_arr[i].goods_price != val[card_field]) { - isok = 0; - gname = val.goods_name; - throw "商品价格已经变化"; - } - } else { - if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price && val.prom_price > 0) { - isok = 0; - gname = val.goods_name; - throw "商品价格已经变化"; - } - } - - //-- 数据的更新 -- - var data = { - id: g_arr[i].id, - selected: 1, - store_id: oo.stoid - }; - let gitem=checkArr7.find(item=>item.goods_id==g_arr[i].goods_id) - if(gitem){ - data.prom_type=0 - data.prom_id=0 - } - //-- 如果有线下取价的时候 -- - if (g_arr[i].is_offline) { - data.pricing_type = g_arr[i].pricing_type; - data.offline_price = g_arr[i].offline_price; - } - rq.put("/api/weshop/cart/update", { - data: data, - success: function (ee) { - console.log(ee); - } - }); - } - } - - } - } catch (e) { - err = e; - } - if (isok == 0) { - t.confirmBox(gname + ":" + err); - wx.hideLoading(); - return false; - } - wx.hideLoading(); - wx.navigateTo({ - url: "/packageE/pages/cart/cart2/cart2" - }); - } - } - }); - } else if (res.cancel) { - wx.hideLoading(); - console.log('用户点击取消') - } - } - }) - }else{ + } else { + if (i_arr[j].is_gift == 1) continue; + rq.put("/api/weshop/cart/update", { + data: { + id: i_arr[j].id, + selected: 0, + store_id: oo.stoid + }, + success: function (ee) { + console.log(ee); + } + }); + } + } + } + + if (checkArr7.length > 0) { + let checkStr = [] + checkArr7.map(item => { + checkStr.push(item.goods_name) + }) + let str = checkStr.join() + wx.hideLoading() + wx.showModal({ + title: '提示', + // content: `商品${str},组合购活动,购买次数已超,将以普通商品购买?`, + content: `${str}超出组合购限购次数,将以普通商品购买`, + success: res => { + wx.showLoading(); + if (res.confirm) { + console.log('用户点击确定') //排除失效商品结算 - this.data.invalidList.map(item=>{ - if(item.selected && item.classType==0){ + this.data.invalidList.map(item => { + if (item.selected && item.classType == 0) { rq.put('/api/weshop/cart/update', { data: { - id: item.id, - selected: 0, - store_id: oo.stoid + id: item.id, + selected: 0, + store_id: oo.stoid }, success: function (ee) { - console.log(ee); + console.log(ee); } }); } }) if (ab == 0) { - t.my_warnning("未选择商品", 0, th); - wx.hideLoading(); - return false; + t.my_warnning("未选择商品", 0, th); + wx.hideLoading(); + return false; } glist = glist.substring(0, glist.length - 1); //--取一下商品的限购 以及活动的限购,redis数量-- rq.get("/api/weshop/goods/getGoodsListNum", { - data: { - goodsidlist: glist, - store_id: oo.stoid - }, - async success(ee) { - console.log(ee); - if (ee.data.code == 0) { - var ddata = ee.data.data, - isok = 1, - gname = "", - err = ""; - //--组装-- - for (var ij = 0; ij < ddata.length; ij++) { - var val = ddata[ij]; - var obj = map_limit.get(val.goods_id + ""); - if (obj) continue; - - var promgoodsbuynum = 0; - var goodsbuynum = 0; - - //--要获得商品,该用户买了多少件,同步应用-- - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { - data: { - store_id: oo.stoid, - user_id: user_id, - goods_id: val.goods_id, - prom_type: val.prom_type, - prom_id: val.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; - }) - var ie = { - promgoodsbuynum: promgoodsbuynum, - goodsbuynum: goodsbuynum - }; - map_limit.set(val.goods_id + "", ie); + data: { + goodsidlist: glist, + store_id: oo.stoid + }, + async success(ee) { + console.log(ee); + if (ee.data.code == 0) { + var ddata = ee.data.data, + isok = 1, + gname = "", + err = ""; + //--组装-- + for (var ij = 0; ij < ddata.length; ij++) { + var val = ddata[ij]; + var obj = map_limit.get(val.goods_id + ""); + if (obj) continue; + + var promgoodsbuynum = 0; + var goodsbuynum = 0; + + //--要获得商品,该用户买了多少件,同步应用-- + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { + data: { + store_id: oo.stoid, + user_id: user_id, + goods_id: val.goods_id, + prom_type: val.prom_type, + prom_id: val.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; + }) + var ie = { + promgoodsbuynum: promgoodsbuynum, + goodsbuynum: goodsbuynum + }; + map_limit.set(val.goods_id + "", ie); + } + + try { + for (var ind in ddata) { + var val = ddata[ind]; + var num = map.get(val.goods_id + ""); + if (num <= 0) { + isok = 0; + gname = val.goods_name; + throw "购买数量不能为0"; + return false; + } + + if (val.prom_type == 1 || val.prom_type == 6) { + if (num > val.store_count) { + isok = 0; + gname = val.goods_name; + throw "超出库存"; + return false; + } + } + + if (th.data.sales_rules == 1) { + if (num > val.store_count) { + isok = 0; + gname = val.goods_name; + throw "超出库存"; + return false; } + } + if (num > val.redisnum && val.redisnum && !normal_arr[val.goods_id]) { + isok = 0; + gname = val.goods_name; + throw "超出活动库存"; + return false; + } + if (num > val.goods_num - val.buy_num && val.goods_num && !normal_arr[val.goods_id]) { + isok = 0; + gname = val.goods_name; + throw "超出活动库存"; + return false; + } + + var buyed = map_limit.get(val.goods_id + ""); + if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) { + isok = 0; + gname = val.goods_name; + throw "超出商品限购"; + return false; + } + + if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0 && !normal_arr[val.goods_id]) { + isok = 0; + gname = val.goods_name; + throw "超出活动限购"; + return false; + } - try { - for (var ind in ddata) { - var val = ddata[ind]; - var num = map.get(val.goods_id + ""); - if (num <= 0) { - isok = 0; - gname = val.goods_name; - throw "购买数量不能为0"; - return false; - } - - if (val.prom_type == 1 || val.prom_type == 6) { - if (num > val.store_count) { - isok = 0; - gname = val.goods_name; - throw "超出库存"; - return false; - } - } - - if (th.data.sales_rules == 1) { - if (num > val.store_count) { - isok = 0; - gname = val.goods_name; - throw "超出库存"; - return false; - } - } - if (num > val.redisnum && val.redisnum && !normal_arr[val.goods_id]) { - isok = 0; - gname = val.goods_name; - throw "超出活动库存"; - return false; - } - if (num > val.goods_num - val.buy_num && val.goods_num && !normal_arr[val.goods_id]) { - isok = 0; - gname = val.goods_name; - throw "超出活动库存"; - return false; - } - - var buyed = map_limit.get(val.goods_id + ""); - if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) { - isok = 0; - gname = val.goods_name; - throw "超出商品限购"; - return false; - } - - if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0 && !normal_arr[val.goods_id]) { - isok = 0; - gname = val.goods_name; - throw "超出活动限购"; - return false; - } - - var card_field = th.data.card_field; - for (var i = 0; i < g_arr.length; i++) { - - if (g_arr[i].goods_id == val.goods_id) { - - //如果会员是等级会员,商品有等级价,且不是活动商品 - if (card_field && val[card_field] > 0 && - ((val.prom_type == 0 && g_arr[i].prom_type==0) || val.prom_type == 3 || val.prom_type == 4 || val.prom_type == 5 || val.prom_type == 7 || val.prom_type == 10 || normal_arr[val.goods_id])) { - if (g_arr[i].goods_price != val[card_field]) { - isok = 0; - gname = val.goods_name; - throw "商品价格已经变化"; - } - } else { - if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price && val.prom_price > 0) { - isok = 0; - gname = val.goods_name; - throw "商品价格已经变化"; - } - } - - //-- 数据的更新 -- - var data = { - id: g_arr[i].id, - selected: 1, - store_id: oo.stoid - }; - - //-- 如果有线下取价的时候 -- - if (g_arr[i].is_offline) { - data.pricing_type = g_arr[i].pricing_type; - data.offline_price = g_arr[i].offline_price; - } - rq.put("/api/weshop/cart/update", { - data: data, - success: function (ee) { - console.log(ee); - } - }); - } - } + var card_field = th.data.card_field; + for (var i = 0; i < g_arr.length; i++) { + if (g_arr[i].goods_id == val.goods_id) { + + //如果会员是等级会员,商品有等级价,且不是活动商品 + if (card_field && val[card_field] > 0 && + ((val.prom_type == 0 && g_arr[i].prom_type == 0) || val.prom_type == 3 || val.prom_type == 4 || val.prom_type == 5 || val.prom_type == 7 || val.prom_type == 10 || normal_arr[val.goods_id])) { + if (g_arr[i].goods_price != val[card_field]) { + isok = 0; + gname = val.goods_name; + throw "商品价格已经变化"; } - } catch (e) { - err = e; - } - if (isok == 0) { - t.confirmBox(gname + ":" + err); - wx.hideLoading(); - return false; + } else { + if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price && val.prom_price > 0) { + isok = 0; + gname = val.goods_name; + throw "商品价格已经变化"; + } + } + + //-- 数据的更新 -- + var data = { + id: g_arr[i].id, + selected: 1, + store_id: oo.stoid + }; + let gitem = checkArr7.find(item => item.goods_id == g_arr[i].goods_id) + if (gitem) { + data.prom_type = 0 + data.prom_id = 0 + } + //-- 如果有线下取价的时候 -- + if (g_arr[i].is_offline) { + data.pricing_type = g_arr[i].pricing_type; + data.offline_price = g_arr[i].offline_price; + } + rq.put("/api/weshop/cart/update", { + data: data, + success: function (ee) { + console.log(ee); + } + }); } - wx.hideLoading(); - wx.navigateTo({ - url: "/packageE/pages/cart/cart2/cart2" - }); + } + } + } catch (e) { + err = e; + } + if (isok == 0) { + t.confirmBox(gname + ":" + err); + wx.hideLoading(); + return false; + } + wx.hideLoading(); + wx.navigateTo({ + url: "/packageE/pages/cart/cart2/cart2" + }); } + } }); + } else if (res.cancel) { + wx.hideLoading(); + console.log('用户点击取消') } - } else { + } + }) + } else { + //排除失效商品结算 + this.data.invalidList.map(item => { + if (item.selected && item.classType == 0) { + rq.put('/api/weshop/cart/update', { + data: { + id: item.id, + selected: 0, + store_id: oo.stoid + }, + success: function (ee) { + console.log(ee); + } + }); + } + }) + if (ab == 0) { + t.my_warnning("未选择商品", 0, th); + wx.hideLoading(); + return false; + } - //-- 开始服务卡的购物车购买 -- - for (var i = 0; i < this.data.service_data.length; i++) { - var i_arr = this.data.service_data[i].goods; - console.log(i_arr) + glist = glist.substring(0, glist.length - 1); + //--取一下商品的限购 以及活动的限购,redis数量-- + rq.get("/api/weshop/goods/getGoodsListNum", { + data: { + goodsidlist: glist, + store_id: oo.stoid + }, + async success(ee) { + console.log(ee); + if (ee.data.code == 0) { + var ddata = ee.data.data, + isok = 1, + gname = "", + err = ""; + //--组装-- + for (var ij = 0; ij < ddata.length; ij++) { + var val = ddata[ij]; + var obj = map_limit.get(val.goods_id + ""); + if (obj) continue; - for (var j = 0; j < i_arr.length; j++) { - await rq.promisePut("/api/weshop/cartService/update", { - data: { - id: i_arr[j].id, - selected: i_arr[j].selected, - store_id: oo.stoid - } - }); - } - } - //排除失效服务结算 - this.data.invalidList.map(item=>{ - if(item.selected && item.classType==1){ - rq.promisePut('/api/weshop/cartService/update', { + var promgoodsbuynum = 0; + var goodsbuynum = 0; + + //--要获得商品,该用户买了多少件,同步应用-- + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { data: { - id: item.id, - selected: 0, - store_id: oo.stoid + store_id: oo.stoid, + user_id: user_id, + goods_id: val.goods_id, + prom_type: val.prom_type, + prom_id: val.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; + }) + var ie = { + promgoodsbuynum: promgoodsbuynum, + goodsbuynum: goodsbuynum + }; + map_limit.set(val.goods_id + "", ie); + } + + try { + for (var ind in ddata) { + var val = ddata[ind]; + var num = map.get(val.goods_id + ""); + if (num <= 0) { + isok = 0; + gname = val.goods_name; + throw "购买数量不能为0"; + return false; + } + + if (val.prom_type == 1 || val.prom_type == 6) { + if (num > val.store_count) { + isok = 0; + gname = val.goods_name; + throw "超出库存"; + return false; + } + } + + if (th.data.sales_rules == 1) { + if (num > val.store_count) { + isok = 0; + gname = val.goods_name; + throw "超出库存"; + return false; + } + } + if (num > val.redisnum && val.redisnum && !normal_arr[val.goods_id]) { + isok = 0; + gname = val.goods_name; + throw "超出活动库存"; + return false; + } + if (num > val.goods_num - val.buy_num && val.goods_num && !normal_arr[val.goods_id]) { + isok = 0; + gname = val.goods_name; + throw "超出活动库存"; + return false; + } + + var buyed = map_limit.get(val.goods_id + ""); + if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) { + isok = 0; + gname = val.goods_name; + throw "超出商品限购"; + return false; + } + + if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0 && !normal_arr[val.goods_id]) { + isok = 0; + gname = val.goods_name; + throw "超出活动限购"; + return false; + } + + var card_field = th.data.card_field; + for (var i = 0; i < g_arr.length; i++) { + + if (g_arr[i].goods_id == val.goods_id) { + + //如果会员是等级会员,商品有等级价,且不是活动商品 + if (card_field && val[card_field] > 0 && + ((val.prom_type == 0 && g_arr[i].prom_type == 0) || val.prom_type == 3 || val.prom_type == 4 || val.prom_type == 5 || val.prom_type == 7 || val.prom_type == 10 || normal_arr[val.goods_id])) { + if (g_arr[i].goods_price != val[card_field]) { + isok = 0; + gname = val.goods_name; + throw "商品价格已经变化"; + } + } else { + if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price && val.prom_price > 0) { + isok = 0; + gname = val.goods_name; + throw "商品价格已经变化"; + } + } + + //-- 数据的更新 -- + var data = { + id: g_arr[i].id, + selected: 1, + store_id: oo.stoid + }; + + //-- 如果有线下取价的时候 -- + if (g_arr[i].is_offline) { + data.pricing_type = g_arr[i].pricing_type; + data.offline_price = g_arr[i].offline_price; + } + rq.put("/api/weshop/cart/update", { + data: data, + success: function (ee) { + console.log(ee); + } + }); + } } - }); + + } + } catch (e) { + err = e; } - }) - wx.hideLoading(); - getApp().goto("/packageA/pages/cart2_ser/cart2_ser?is_cart=1"); + if (isok == 0) { + t.confirmBox(gname + ":" + err); + wx.hideLoading(); + return false; + } + wx.hideLoading(); + wx.navigateTo({ + url: "/packageE/pages/cart/cart2/cart2" + }); + } + } + }); + } + } else { + + //-- 开始服务卡的购物车购买 -- + for (var i = 0; i < this.data.service_data.length; i++) { + var i_arr = this.data.service_data[i].goods; + console.log(i_arr) + + for (var j = 0; j < i_arr.length; j++) { + await rq.promisePut("/api/weshop/cartService/update", { + data: { + id: i_arr[j].id, + selected: i_arr[j].selected, + store_id: oo.stoid + } + }); + } + } + //排除失效服务结算 + this.data.invalidList.map(item => { + if (item.selected && item.classType == 1) { + rq.promisePut('/api/weshop/cartService/update', { + data: { + id: item.id, + selected: 0, + store_id: oo.stoid + } + }); + } + }) + wx.hideLoading(); + getApp().goto("/packageA/pages/cart2_ser/cart2_ser?is_cart=1"); + } + }, + + //结算到最后一个商品 + set_last: function (ab, isok, gname) { + if (isok == 0) { + t.my_warnning(gname + "商品超出库存", 0, this); + } else { + ab ? wx.navigateTo({ + url: "/packageE/pages/cart/cart2/cart2" + }) : t.my_warnning("还没有选中商品", 0, this); + } + }, + + + //图片失败,默认图片 + bind_bnerr2: function (e) { + var _errImg = e.target.dataset.errorimg; + var _errurl = e.target.dataset.url; + var ii = _errurl.indexOf(oo.imghost); + if (ii != -1) { + this.setData({ + [_errImg]: oo.imghost + "/miniapp/images/default_g_img.gif", + }) + } + }, + //设置点击按钮为true或者false + radio_chick: function (checked, num) { + var th = this; + var requestData = th.data.requestData; + }, + + //点击编辑后的效果 + edit_cart: function (e) { + var type = parseFloat(e.currentTarget.dataset.type); + this.setData({ + is_edit: type + }); + }, + + //--多个删除购物车商品--- + check_del: function () { + var glist = "", + slist = ''; //用逗号隔开的 + var user_id = getApp().globalData.user_id; + var th = this; + + var ab = 0; //选中 + var abc = 0; // + for (var i = 0; i < this.data.requestData.length; i++) { + var i_arr = this.data.requestData[i].goods; + for (var j = 0; j < i_arr.length; j++) { + if (i_arr[j].selected) { + glist += i_arr[j].id + ","; + ab = 1; + } + } + } + + for (var ii = 0; ii < this.data.service_data.length; ii++) { + var i_arr = this.data.service_data[ii].goods; + for (var jj = 0; jj < i_arr.length; jj++) { + if (i_arr[jj].selected) { + slist += i_arr[jj].id + ","; + abc = 1; + } + } + } + + if (ab == 0 && abc == 0) { + t.my_warnning("未选择商品或者服务卡", 0, th); + return false; + } + + if (ab) { + glist = glist.substring(0, glist.length - 1); + //要删除购物车中的商品 + var url = '/api/weshop/cart/delIds/' + oo.stoid + '/' + user_id + "/" + glist; + getApp().request.delete(url, { + success: function (t) { + // console.log('del done1111111111'); + th.getCardList(); + getApp().requestCardNum(th); + // console.log('all================', th.data.all_num); + // getApp().globalData.cartGoodsNum = + } + }); + } + if (abc) { + slist = slist.substring(0, slist.length - 1); + //要删除购物车中的商品 + var url = '/api/weshop/cartService/delIds/' + oo.stoid + '/' + user_id + "/" + slist; + getApp().request.delete(url, { + success: function (t) { + th.getCardList(); + getApp().requestCardNum(th); + console.log('all2================', th.data.all_num); + } + }); + } + + setTimeout(() => { + if ((!th.data.requestData || th.data.requestData.length == 0) && (!th.data.service_data || th.data.service_data.length == 0)) { + + console.log('---1111---bb'); + var goods_list = th.selectComponent("#goods_list"); //组件的id + if (goods_list) { + goods_list.init(); + goods_list.get_list(); } - }, - //结算到最后一个商品 - set_last: function (ab, isok, gname) { - if (isok == 0) { - t.my_warnning(gname + "商品超出库存", 0, this); - } else { - ab ? wx.navigateTo({ - url: "/packageE/pages/cart/cart2/cart2" - }) : t.my_warnning("还没有选中商品", 0, this); - } - }, + } + + }, 1200) + + + }, + //跳到首页 + goto: function (e) { + var url = '/pages/index/index/index'; + getApp().goto(url); + }, + //---加载更多是靠这个函数---- + onReachBottom: function () { + if (this.data.requestData && this.data.requestData.length == 0) { + var goods_list = this.selectComponent("#goods_list"); //组件的id + if (goods_list) goods_list.get_list(); + } + }, - //图片失败,默认图片 - bind_bnerr2: function (e) { - var _errImg = e.target.dataset.errorimg; - var _errurl = e.target.dataset.url; - var ii = _errurl.indexOf(oo.imghost); - if (ii != -1) { - this.setData({ - [_errImg]: oo.imghost + "/miniapp/images/default_g_img.gif", - }) + //检查莫个门店下的商品是不是优惠活动,有的话,看要不要送礼品,同时有没有倍增 + check_prom_activity: async function (cindex) { + var make_up_arr = new Array(); + var send_gift_arr = new Array(); + var th = this; + var map = new Map(); + var list = JSON.parse(JSON.stringify(this.data.requestData[cindex])); + //循环处理活动,看活动商品的数量,用map来出来存储,key为活动id,值是数量 + + //-- 所有的购物车的数据,要用拷贝的赖进行计算 -- + var alllist = JSON.parse(JSON.stringify(this.data.requestData)); + var list2 = alllist[cindex]; + var no_gift_arr = []; + + + //主要判断有没有促销活动 + var is_sele_prom = 0; + var is_gift_del = 0; + for (var i = 0; i < list.goods.length; i++) { + var item = list.goods[i]; + if (item.prom_type == 3 && item.selected && !item.is_gift) { + is_sele_prom = 1; + if (map.has(item.prom_id + "")) { + var ob = map.get(item.prom_id + ""); + ob.num += item.goods_num; + ob.price += item.goods_num * item.goods_price; + delete map[item.prom_id + ""]; + map.set(item.prom_id + "", ob); + } else { + var ob = {}; + ob.num = item.goods_num; + ob.price = item.goods_num * item.goods_price; + if (item.guide_id) { + ob.guide_id = item.guide_id; + } + if (item.guide_type) { + ob.guide_type = item.guide_type; + } + map.set(item.prom_id + "", ob); } - }, - //设置点击按钮为true或者false - radio_chick: function (checked, num) { - var th = this; - var requestData = th.data.requestData; - }, - - //点击编辑后的效果 - edit_cart: function (e) { - var type = parseFloat(e.currentTarget.dataset.type); + } + if (item.is_gift == 1) { + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; + //getApp().request.delete(url, {}); + await getApp().request.promiseDelete(url, {}) // 要用同步让赠品删除 + list2.goods.splice(i, 1); + list.goods.splice(i--, 1); + is_gift_del = 1; + } + } + //--如果没有选中的促销活动的,直接退出 -- + if (!is_sele_prom) { + //如果有赠品,要重新更新购物车的前台渲染-- + if (is_gift_del) { + var rq_text = "requestData[" + cindex + "]"; this.setData({ - is_edit: type + [rq_text]: list }); - }, + } - //--多个删除购物车商品--- - check_del: function () { - var glist = "", - slist = ''; //用逗号隔开的 - var user_id = getApp().globalData.user_id; - var th = this; - - var ab = 0; //选中 - var abc = 0; // - for (var i = 0; i < this.data.requestData.length; i++) { - var i_arr = this.data.requestData[i].goods; - for (var j = 0; j < i_arr.length; j++) { - if (i_arr[j].selected) { - glist += i_arr[j].id + ","; - ab = 1; - } - } - } + var rq_text2 = "requestData[" + cindex + "].make_up_arr"; + this.setData({ + [rq_text2]: null, + }) - for (var ii = 0; ii < this.data.service_data.length; ii++) { - var i_arr = this.data.service_data[ii].goods; - for (var jj = 0; jj < i_arr.length; jj++) { - if (i_arr[jj].selected) { - slist += i_arr[jj].id + ","; - abc = 1; - } - } + var gift_text = "requestData[" + cindex + "].send_gift_arr"; + this.setData({ + [gift_text]: null, + }) + return false; + } + //-- 循环判断活动 -- + for (let p_item of map.entries()) { + var prom = null; + //使用缓存,减少接口的调用 + if (th.data.promgoods_map[p_item[0]]) { + prom = th.data.promgoods_map[p_item[0]]; + } else { + await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + p_item[0], {}).then(res => { + if (res.data.code == 0) { + prom = res.data.data; + } + }) + } + //如果活动已经结束 + if (!prom || prom.is_end || prom.end_time < ut.gettimestamp()) { + for (var ii in list.goods) { + var item = list.goods[ii]; + list.goods.splice(ii, 1); + if (item.prom_id == p_item[0] && item.prom_type == 3) { + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; + // getApp().request.delete(url, {}); + th.disInvalid(item); + } } + continue; + } - if (ab == 0 && abc == 0) { - t.my_warnning("未选择商品或者服务卡", 0, th); - return false; - } + if (!th.data.promgoods_map[p_item[0]]) th.data.promgoods_map[p_item[0]] = prom; + //---读取打折的详情--- + var ob = p_item[1]; + var discount = null; + + //看一下是不是多赠品,如果是多赠品 + var promgoods_list = null; + if (th.data.promgoods_list[p_item[0]]) { + promgoods_list = th.data.promgoods_list[p_item[0]]; + } else { + //-- 获取凑单提示 -- + await getApp().request.promiseGet("/api/weshop/promgoodslist/list", { + data: { + prom_id: prom.id + } + }).then(res => { + if (res.data.code == 0) { + promgoods_list = res.data.data; + } + }) + if (!promgoods_list) continue; + th.data.promgoods_list[p_item[0]] = promgoods_list; + } - if (ab) { - glist = glist.substring(0, glist.length - 1); - //要删除购物车中的商品 - var url = '/api/weshop/cart/delIds/' + oo.stoid + '/' + user_id + "/" + glist; - getApp().request.delete(url, { - success: function (t) { - // console.log('del done1111111111'); - th.getCardList(); - getApp().requestCardNum(th); - // console.log('all================', th.data.all_num); - // getApp().globalData.cartGoodsNum = - } - }); - } - if (abc) { - slist = slist.substring(0, slist.length - 1); - //要删除购物车中的商品 - var url = '/api/weshop/cartService/delIds/' + oo.stoid + '/' + user_id + "/" + slist; - getApp().request.delete(url, { - success: function (t) { - th.getCardList(); - getApp().requestCardNum(th); - console.log('all2================', th.data.all_num); - } - }); + for (var i in promgoods_list) { + var item = promgoods_list[i]; + if (item.prom_type == 0) { + if (ob.price < item.condition) { + var elem = { + prom_id: prom.id, + diff_type: item.prom_type, + diff: (item.condition - ob.price).toFixed(2), + content: JSON.parse(item.preferential_type) + } + make_up_arr.push(elem); + break; + } + } else { + if (ob.num < item.condition) { + var elem = { + prom_id: prom.id, + diff_type: item.prom_type, + diff: (item.condition - ob.num).toFixed(2), + content: JSON.parse(item.preferential_type) + } + make_up_arr.push(elem); + break; + } } + } - setTimeout(()=>{ - if ((!th.data.requestData|| th.data.requestData.length==0) && (!th.data.service_data|| th.data.service_data.length==0)){ - console.log('---1111---bb'); - var goods_list = th.selectComponent("#goods_list"); //组件的id - if (goods_list) { - goods_list.init(); - goods_list.get_list(); - } - } + //-- 只有在单赠品的时候,才要进行计算 -- + await getApp().request.promiseGet("/api/weshop/goods/getDiscount", { + data: { + price: parseFloat(ob.price).toFixed(2), + prom_id: p_item[0], + goods_num: ob.num, + user_id: getApp().globalData.user_id, + is_bz: prom.is_bz + } + }).then(res => { + if (res.data.code == 0) discount = res.data.data; + }) - },1200) + if (discount) { + if (!discount.zp_num || parseInt(discount.zp_num) == 0) discount.zp_num = 1; + //判断一下赠品的模式 + if (parseInt(discount.zp_mode) == 1) { - }, - //跳到首页 - goto: function (e) { - var url = '/pages/index/index/index'; - getApp().goto(url); - }, + var can_zp_num = 0; + var a_limit_num = 0; + for (let iy in discount.giftsinfo) { + let item = discount.giftsinfo[iy]; + can_zp_num += parseInt(item.gift_storecount) > parseInt(item.limit_num) ? parseInt(item.limit_num) : parseInt(item.gift_storecount); + } - //---加载更多是靠这个函数---- - onReachBottom: function () { - if (this.data.requestData && this.data.requestData.length == 0) { - var goods_list = this.selectComponent("#goods_list"); //组件的id - if (goods_list) goods_list.get_list(); - } - }, - - //检查莫个门店下的商品是不是优惠活动,有的话,看要不要送礼品,同时有没有倍增 - check_prom_activity: async function (cindex) { - var make_up_arr = new Array(); - var send_gift_arr = new Array(); - var th = this; - var map = new Map(); - var list = JSON.parse(JSON.stringify(this.data.requestData[cindex])); - //循环处理活动,看活动商品的数量,用map来出来存储,key为活动id,值是数量 - - //-- 所有的购物车的数据,要用拷贝的赖进行计算 -- - var alllist = JSON.parse(JSON.stringify(this.data.requestData)); - var list2 = alllist[cindex]; - var no_gift_arr = []; - - - //主要判断有没有促销活动 - var is_sele_prom = 0; - var is_gift_del = 0; - for (var i = 0; i < list.goods.length; i++) { - var item = list.goods[i]; - if (item.prom_type == 3 && item.selected && !item.is_gift) { - is_sele_prom = 1; - if (map.has(item.prom_id + "")) { - var ob = map.get(item.prom_id + ""); - ob.num += item.goods_num; - ob.price += item.goods_num * item.goods_price; - delete map[item.prom_id + ""]; - map.set(item.prom_id + "", ob); - } else { - var ob = {}; - ob.num = item.goods_num; - ob.price = item.goods_num * item.goods_price; - if (item.guide_id) { - ob.guide_id = item.guide_id; - } - if (item.guide_type) { - ob.guide_type = item.guide_type; - } - map.set(item.prom_id + "", ob); - } - } - if (item.is_gift == 1) { - var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - //getApp().request.delete(url, {}); - await getApp().request.promiseDelete(url, {}) // 要用同步让赠品删除 - list2.goods.splice(i, 1); - list.goods.splice(i--, 1); - is_gift_del = 1; - } - } - //--如果没有选中的促销活动的,直接退出 -- - if (!is_sele_prom) { - //如果有赠品,要重新更新购物车的前台渲染-- - if (is_gift_del) { - var rq_text = "requestData[" + cindex + "]"; - this.setData({ - [rq_text]: list - }); - } + var t_zp_num = parseInt(discount.zp_num) * parseInt(discount.bs); + if (th.data.duo_zp_num_arr[prom.id]) { + t_zp_num += th.data.duo_zp_num_arr[prom.id]; + } - var rq_text2 = "requestData[" + cindex + "].make_up_arr"; - this.setData({ - [rq_text2]:null, - }) + if (can_zp_num >= t_zp_num) { + var json = {}; + json.prom_id = prom.id; + json.prom_name = prom.name; + send_gift_arr.push(json); + th.data.duo_zp_num_arr[prom.id] = t_zp_num; + } - var gift_text = "requestData[" + cindex + "].send_gift_arr"; - this.setData({ - [gift_text]:null, - }) - return false; } - //-- 循环判断活动 -- - for (let p_item of map.entries()) { - var prom = null; - //使用缓存,减少接口的调用 - if(th.data.promgoods_map[p_item[0]]){ - prom=th.data.promgoods_map[p_item[0]]; - }else{ - await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + p_item[0], {}).then(res => { - if (res.data.code == 0) { - prom = res.data.data; - } - }) - } - //如果活动已经结束 - if (!prom || prom.is_end || prom.end_time < ut.gettimestamp()) { - for (var ii in list.goods) { - var item = list.goods[ii]; - list.goods.splice(ii, 1); - if (item.prom_id == p_item[0] && item.prom_type == 3) { - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - // getApp().request.delete(url, {}); - th.disInvalid(item); - } + else { + //---如果有打折的信息,赠送的信息,赠送的时候要判断是不是限购数量--- + if (discount && discount['goods_id'] && discount.limit_num >= discount.bs * discount.zp_num + && discount.gift_storecount >= discount.bs * discount.zp_num) { + //如果这礼品超了情况下 + if (no_gift_arr.indexOf(discount.gift_id) != -1) continue; + var o = discount.goodsinfo; + //-- 默认等于1,兼容旧的活动 -- + + var newd = { + goods_id: o.goods_id, + goods_num: discount.bs * discount.zp_num, //是赠品的翻倍 + pick_id: list.pid, + user_id: app.globalData.user_id, + store_id: os.stoid, + goods_price: 0, + guide_id: ob.guide_id ? ob.guide_id : 0, + guide_type: ob.guide_type ? ob.guide_type : 0, + member_goods_price: 0, + goods_name: o.goods_name, + goods_sn: o.goods_sn, + sku: o.sku, + is_gift: 1, + prom_id: p_item[0], + prom_type: 3, + selected: 1, + gift_id: discount.gift_id, + original_img: th.data.imgUrl + o.original_img + }; + + list2.goods.push(newd); + var all_num = 0; + var all_limit_num = 0; + + for (var i in alllist) { + var list_item = alllist[i]; + if (list_item.pid == list.pid) continue; + for (var j in list_item.goods) { + //如果赠品的ID一样,要进行统计数量 + if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id) { + all_num += list_item.goods[j].goods_num; + } + if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id && list_item.goods[j].prom_id == p_item[0]) { + all_limit_num += list_item.goods[j].goods_num; } - continue; - } - if(!th.data.promgoods_map[p_item[0]]) th.data.promgoods_map[p_item[0]]=prom; - //---读取打折的详情--- - var ob = p_item[1]; - var discount = null; - - //看一下是不是多赠品,如果是多赠品 - var promgoods_list=null; - if(th.data.promgoods_list[p_item[0]]){ - promgoods_list=th.data.promgoods_list[p_item[0]]; - }else{ - //-- 获取凑单提示 -- - await getApp().request.promiseGet("/api/weshop/promgoodslist/list", { - data: { - prom_id: prom.id - } - }).then(res => { - if (res.data.code == 0) { - promgoods_list = res.data.data; - } - }) - if(!promgoods_list) continue; - th.data.promgoods_list[p_item[0]]=promgoods_list; + } } - for (var i in promgoods_list) { - var item = promgoods_list[i]; - if (item.prom_type == 0) { - if (ob.price < item.condition) { - var elem = { - prom_id: prom.id, - diff_type: item.prom_type, - diff: (item.condition - ob.price).toFixed(2), - content: JSON.parse(item.preferential_type) - } - make_up_arr.push(elem); - break; - } - } else { - if (ob.num < item.condition) { - var elem = { - prom_id: prom.id, - diff_type: item.prom_type, - diff: (item.condition - ob.num).toFixed(2), - content: JSON.parse(item.preferential_type) - } - make_up_arr.push(elem); - break; - } - } + //-- 赠品的数量超出库存数量和会员的限制,这里是保证所有的赠品部会超出 -- + if (discount.gift_storecount < all_num + newd.goods_num || discount.limit_num < all_limit_num + newd.goods_num) { + no_gift_arr.push(discount.gift_id); + //--进入下一个循环 -- + continue; } + var url = "/api/weshop/cart/delGift?store_id=" + newd.store_id + "&user_id=" + + newd.user_id + "&goods_id=" + newd.goods_id + "&is_gift=1&pick_id=" + newd.pick_id + "&prom_id=" + newd.prom_id + await getApp().request.promiseDelete(url, {}) - //-- 只有在单赠品的时候,才要进行计算 -- - await getApp().request.promiseGet("/api/weshop/goods/getDiscount", { - data: { - price: parseFloat(ob.price).toFixed(2), - prom_id: p_item[0], - goods_num: ob.num, - user_id: getApp().globalData.user_id, - is_bz: prom.is_bz - } - }).then(res => { - if (res.data.code == 0) discount = res.data.data; - }) + var add_data = null; + await getApp().request.promisePost("/api/weshop/cart/save", { + data: newd + }).then(res => { + if (res.data.code == 0) { + add_data = res.data.data; + } + }) + if (add_data) { + newd.id = add_data.id; + list.goods.push(newd); + } + } + } + } - if(discount) { - - if (!discount.zp_num || parseInt(discount.zp_num) == 0) discount.zp_num = 1; - //判断一下赠品的模式 - if (parseInt(discount.zp_mode)== 1 ) - { - - var can_zp_num=0; - var a_limit_num=0; - for(let iy in discount.giftsinfo){ - let item=discount.giftsinfo[iy]; - can_zp_num+= parseInt(item.gift_storecount)>parseInt(item.limit_num)?parseInt(item.limit_num): parseInt(item.gift_storecount); - } - - var t_zp_num=parseInt(discount.zp_num)*parseInt(discount.bs); - if(th.data.duo_zp_num_arr[prom.id]){ - t_zp_num+=th.data.duo_zp_num_arr[prom.id]; - } - - if(can_zp_num>=t_zp_num ) { - var json={}; - json.prom_id=prom.id; - json.prom_name=prom.name; - send_gift_arr.push(json); - th.data.duo_zp_num_arr[prom.id]=t_zp_num; - } - - } - else - { - //---如果有打折的信息,赠送的信息,赠送的时候要判断是不是限购数量--- - if (discount && discount['goods_id'] && discount.limit_num >= discount.bs * discount.zp_num - && discount.gift_storecount >= discount.bs * discount.zp_num) { - //如果这礼品超了情况下 - if (no_gift_arr.indexOf(discount.gift_id) != -1) continue; - var o = discount.goodsinfo; - //-- 默认等于1,兼容旧的活动 -- - - var newd = { - goods_id: o.goods_id, - goods_num: discount.bs * discount.zp_num, //是赠品的翻倍 - pick_id: list.pid, - user_id: app.globalData.user_id, - store_id: os.stoid, - goods_price: 0, - guide_id: ob.guide_id ? ob.guide_id : 0, - guide_type: ob.guide_type ? ob.guide_type : 0, - member_goods_price: 0, - goods_name: o.goods_name, - goods_sn: o.goods_sn, - sku: o.sku, - is_gift: 1, - prom_id: p_item[0], - prom_type: 3, - selected: 1, - gift_id: discount.gift_id, - original_img: th.data.imgUrl + o.original_img - }; - - list2.goods.push(newd); - var all_num = 0; - var all_limit_num = 0; - - for (var i in alllist) { - var list_item = alllist[i]; - if(list_item.pid==list.pid) continue; - for (var j in list_item.goods) { - //如果赠品的ID一样,要进行统计数量 - if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id) { - all_num += list_item.goods[j].goods_num; - } - if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id && list_item.goods[j].prom_id == p_item[0]) { - all_limit_num += list_item.goods[j].goods_num; - } - - } - } - - //-- 赠品的数量超出库存数量和会员的限制,这里是保证所有的赠品部会超出 -- - if (discount.gift_storecount < all_num+newd.goods_num || discount.limit_num { - if (res.data.code == 0) { - add_data = res.data.data; - } - }) - if (add_data) { - newd.id = add_data.id; - list.goods.push(newd); - } - } - } - } + } + //--更新购物车的前台渲染-- + var rq_text = "requestData[" + cindex + "]"; + this.setData({ + [rq_text]: list + }); + + var diff_text = "requestData[" + cindex + "].make_up_arr"; + //-- 如果有凑单的话 -- + if (make_up_arr.length > 0) { + this.setData({ + [diff_text]: make_up_arr + }); + } else { + this.setData({ + [diff_text]: null + }); + } + + var gift_text = "requestData[" + cindex + "].send_gift_arr"; + //-- 如果有凑单的话 -- + if (send_gift_arr.length > 0) { + this.setData({ + [gift_text]: send_gift_arr + }); + } else { + this.setData({ + [gift_text]: null + }); + } + }, + + async all_check_prom_activity() { + this.data.duo_zp_num_arr = {}; + for (var i in this.data.requestData) { + var cindex = i; + var make_up_arr = new Array(); + var send_gift_arr = new Array(); + var th = this; + var map = new Map(); + var list = JSON.parse(JSON.stringify(this.data.requestData[cindex])); + //循环处理活动,看活动商品的数量,用map来出来存储,key为活动id,值是数量 + + //-- 所有的购物车的数据,要用拷贝的赖进行计算 -- + var alllist = JSON.parse(JSON.stringify(this.data.requestData)); + var list2 = alllist[cindex]; + var no_gift_arr = []; + + + //主要判断有没有促销活动 + var is_sele_prom = 0; + var is_gift_del = 0; + for (var i = 0; i < list.goods.length; i++) { + var item = list.goods[i]; + if (item.prom_type == 3 && item.selected && !item.is_gift) { + is_sele_prom = 1; + if (map.has(item.prom_id + "")) { + var ob = map.get(item.prom_id + ""); + ob.num += item.goods_num; + ob.price += item.goods_num * item.goods_price; + delete map[item.prom_id + ""]; + map.set(item.prom_id + "", ob); + } else { + var ob = {}; + ob.num = item.goods_num; + ob.price = item.goods_num * item.goods_price; + if (item.guide_id) { + ob.guide_id = item.guide_id; + } + if (item.guide_type) { + ob.guide_type = item.guide_type; + } + map.set(item.prom_id + "", ob); + } } - //--更新购物车的前台渲染-- - var rq_text = "requestData[" + cindex + "]"; - this.setData({ + if (item.is_gift == 1) { + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; + //getApp().request.delete(url, {}); + await getApp().request.promiseDelete(url, {}) // 要用同步让赠品删除 + list2.goods.splice(i, 1); + list.goods.splice(i--, 1); + is_gift_del = 1; + } + } + //--如果没有选中的促销活动的,直接退出 -- + if (!is_sele_prom) { + //如果有赠品,要重新更新购物车的前台渲染-- + if (is_gift_del) { + var rq_text = "requestData[" + cindex + "]"; + this.setData({ [rq_text]: list - }); - - var diff_text = "requestData[" + cindex + "].make_up_arr"; - //-- 如果有凑单的话 -- - if (make_up_arr.length > 0) { - this.setData({ - [diff_text]: make_up_arr - }); - } else { - this.setData({ - [diff_text]: null - }); + }); } + var rq_text2 = "requestData[" + cindex + "].make_up_arr"; + this.setData({ + [rq_text2]: null, + }) + var gift_text = "requestData[" + cindex + "].send_gift_arr"; - //-- 如果有凑单的话 -- - if (send_gift_arr.length > 0) { - this.setData({ - [gift_text]: send_gift_arr - }); + this.setData({ + [gift_text]: null, + }) + continue; + } + //-- 循环判断活动 -- + for (let p_item of map.entries()) { + var prom = null; + //使用缓存,减少接口的调用 + if (th.data.promgoods_map[p_item[0]]) { + prom = th.data.promgoods_map[p_item[0]]; } else { - this.setData({ - [gift_text]: null - }); + await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + p_item[0], {}).then(res => { + if (res.data.code == 0) { + prom = res.data.data; + } + }) } - - }, - - async all_check_prom_activity(){ - this.data.duo_zp_num_arr={}; - for (var i in this.data.requestData) { - var cindex=i; - var make_up_arr = new Array(); - var send_gift_arr = new Array(); - var th = this; - var map = new Map(); - var list = JSON.parse(JSON.stringify(this.data.requestData[cindex])); - //循环处理活动,看活动商品的数量,用map来出来存储,key为活动id,值是数量 - - //-- 所有的购物车的数据,要用拷贝的赖进行计算 -- - var alllist = JSON.parse(JSON.stringify(this.data.requestData)); - var list2 = alllist[cindex]; - var no_gift_arr = []; - - - //主要判断有没有促销活动 - var is_sele_prom = 0; - var is_gift_del = 0; - for (var i = 0; i < list.goods.length; i++) { - var item = list.goods[i]; - if (item.prom_type == 3 && item.selected && !item.is_gift) { - is_sele_prom = 1; - if (map.has(item.prom_id + "")) { - var ob = map.get(item.prom_id + ""); - ob.num += item.goods_num; - ob.price += item.goods_num * item.goods_price; - delete map[item.prom_id + ""]; - map.set(item.prom_id + "", ob); - } else { - var ob = {}; - ob.num = item.goods_num; - ob.price = item.goods_num * item.goods_price; - if (item.guide_id) { - ob.guide_id = item.guide_id; - } - if (item.guide_type) { - ob.guide_type = item.guide_type; - } - map.set(item.prom_id + "", ob); - } - } - if (item.is_gift == 1) { - var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - //getApp().request.delete(url, {}); - await getApp().request.promiseDelete(url, {}) // 要用同步让赠品删除 - list2.goods.splice(i, 1); - list.goods.splice(i--, 1); - is_gift_del = 1; - } + //如果活动已经结束 + if (!prom || prom.is_end || prom.end_time < ut.gettimestamp()) { + for (var ii in list.goods) { + var item = list.goods[ii]; + list.goods.splice(ii, 1); + if (item.prom_id == p_item[0] && item.prom_type == 3) { + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; + // getApp().request.delete(url, {}); + th.disInvalid(item); } - //--如果没有选中的促销活动的,直接退出 -- - if (!is_sele_prom) { - //如果有赠品,要重新更新购物车的前台渲染-- - if (is_gift_del) { - var rq_text = "requestData[" + cindex + "]"; - this.setData({ - [rq_text]: list - }); - } + } + continue; + } - var rq_text2 = "requestData[" + cindex + "].make_up_arr"; - this.setData({ - [rq_text2]:null, - }) + if (!th.data.promgoods_map[p_item[0]]) th.data.promgoods_map[p_item[0]] = prom; + //---读取打折的详情--- + var ob = p_item[1]; + var discount = null; - var gift_text = "requestData[" + cindex + "].send_gift_arr"; - this.setData({ - [gift_text]:null, - }) - continue; + //看一下是不是多赠品,如果是多赠品 + var promgoods_list = null; + if (th.data.promgoods_list[p_item[0]]) { + promgoods_list = th.data.promgoods_list[p_item[0]]; + } else { + //-- 获取凑单提示 -- + await getApp().request.promiseGet("/api/weshop/promgoodslist/list", { + data: { + prom_id: prom.id } - //-- 循环判断活动 -- - for (let p_item of map.entries()) { - var prom = null; - //使用缓存,减少接口的调用 - if(th.data.promgoods_map[p_item[0]]){ - prom=th.data.promgoods_map[p_item[0]]; - }else{ - await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + p_item[0], {}).then(res => { - if (res.data.code == 0) { - prom = res.data.data; - } - }) - } - //如果活动已经结束 - if (!prom || prom.is_end || prom.end_time < ut.gettimestamp()) { - for (var ii in list.goods) { - var item = list.goods[ii]; - list.goods.splice(ii, 1); - if (item.prom_id == p_item[0] && item.prom_type == 3) { - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; - // getApp().request.delete(url, {}); - th.disInvalid(item); - } - } - continue; - } + }).then(res => { + if (res.data.code == 0) { + promgoods_list = res.data.data; + } + }) + if (!promgoods_list) continue; + th.data.promgoods_list[p_item[0]] = promgoods_list; + } - if(!th.data.promgoods_map[p_item[0]]) th.data.promgoods_map[p_item[0]]=prom; - //---读取打折的详情--- - var ob = p_item[1]; - var discount = null; - - //看一下是不是多赠品,如果是多赠品 - var promgoods_list=null; - if(th.data.promgoods_list[p_item[0]]){ - promgoods_list=th.data.promgoods_list[p_item[0]]; - }else{ - //-- 获取凑单提示 -- - await getApp().request.promiseGet("/api/weshop/promgoodslist/list", { - data: { - prom_id: prom.id - } - }).then(res => { - if (res.data.code == 0) { - promgoods_list = res.data.data; - } - }) - if(!promgoods_list) continue; - th.data.promgoods_list[p_item[0]]=promgoods_list; - } + for (var i in promgoods_list) { + var item = promgoods_list[i]; + if (item.prom_type == 0) { + if (ob.price < item.condition) { + var elem = { + prom_id: prom.id, + diff_type: item.prom_type, + diff: (item.condition - ob.price).toFixed(2), + content: JSON.parse(item.preferential_type) + } + make_up_arr.push(elem); + break; + } + } else { + if (ob.num < item.condition) { + var elem = { + prom_id: prom.id, + diff_type: item.prom_type, + diff: (item.condition - ob.num).toFixed(2), + content: JSON.parse(item.preferential_type) + } + make_up_arr.push(elem); + break; + } + } + } - for (var i in promgoods_list) { - var item = promgoods_list[i]; - if (item.prom_type == 0) { - if (ob.price < item.condition) { - var elem = { - prom_id: prom.id, - diff_type: item.prom_type, - diff: (item.condition - ob.price).toFixed(2), - content: JSON.parse(item.preferential_type) - } - make_up_arr.push(elem); - break; - } - } else { - if (ob.num < item.condition) { - var elem = { - prom_id: prom.id, - diff_type: item.prom_type, - diff: (item.condition - ob.num).toFixed(2), - content: JSON.parse(item.preferential_type) - } - make_up_arr.push(elem); - break; - } - } - } + //-- 只有在单赠品的时候,才要进行计算 -- + await getApp().request.promiseGet("/api/weshop/goods/getDiscount", { + data: { + price: parseFloat(ob.price).toFixed(2), + prom_id: p_item[0], + goods_num: ob.num, + user_id: getApp().globalData.user_id, + is_bz: prom.is_bz + } + }).then(res => { + if (res.data.code == 0) discount = res.data.data; + }) - //-- 只有在单赠品的时候,才要进行计算 -- - await getApp().request.promiseGet("/api/weshop/goods/getDiscount", { - data: { - price: parseFloat(ob.price).toFixed(2), - prom_id: p_item[0], - goods_num: ob.num, - user_id: getApp().globalData.user_id, - is_bz: prom.is_bz - } - }).then(res => { - if (res.data.code == 0) discount = res.data.data; - }) + if (discount) { - if(discount) { + if (!discount.zp_num || parseInt(discount.zp_num) == 0) discount.zp_num = 1; + //判断一下赠品的模式 + if (parseInt(discount.zp_mode) == 1) { - if (!discount.zp_num || parseInt(discount.zp_num) == 0) discount.zp_num = 1; - //判断一下赠品的模式 - if (parseInt(discount.zp_mode)== 1 ) - { + var can_zp_num = 0; + var a_limit_num = 0; + for (let iy in discount.giftsinfo) { + let item = discount.giftsinfo[iy]; + can_zp_num += parseInt(item.gift_storecount) > parseInt(item.limit_num) ? parseInt(item.limit_num) : parseInt(item.gift_storecount); + } - var can_zp_num=0; - var a_limit_num=0; - for(let iy in discount.giftsinfo){ - let item=discount.giftsinfo[iy]; - can_zp_num+= parseInt(item.gift_storecount)>parseInt(item.limit_num)?parseInt(item.limit_num): parseInt(item.gift_storecount); - } + var t_zp_num = parseInt(discount.zp_num) * parseInt(discount.bs); + if (th.data.duo_zp_num_arr[prom.id]) { + t_zp_num += th.data.duo_zp_num_arr[prom.id]; + } - var t_zp_num=parseInt(discount.zp_num)*parseInt(discount.bs); - if(th.data.duo_zp_num_arr[prom.id]){ - t_zp_num+=th.data.duo_zp_num_arr[prom.id]; - } + if (can_zp_num >= t_zp_num) { + var json = {}; + json.prom_id = prom.id; + json.prom_name = prom.name; + send_gift_arr.push(json); + th.data.duo_zp_num_arr[prom.id] = t_zp_num; + } - if(can_zp_num>=t_zp_num ) { - var json={}; - json.prom_id=prom.id; - json.prom_name=prom.name; - send_gift_arr.push(json); - th.data.duo_zp_num_arr[prom.id]=t_zp_num; - } + } + else { + //---如果有打折的信息,赠送的信息,赠送的时候要判断是不是限购数量--- + if (discount && discount['goods_id'] && discount.limit_num >= discount.bs * discount.zp_num + && discount.gift_storecount >= discount.bs * discount.zp_num) { + //如果这礼品超了情况下 + if (no_gift_arr.indexOf(discount.gift_id) != -1) continue; + var o = discount.goodsinfo; + //-- 默认等于1,兼容旧的活动 -- + + var newd = { + goods_id: o.goods_id, + goods_num: discount.bs * discount.zp_num, //是赠品的翻倍 + pick_id: list.pid, + user_id: app.globalData.user_id, + store_id: os.stoid, + goods_price: 0, + guide_id: ob.guide_id ? ob.guide_id : 0, + guide_type: ob.guide_type ? ob.guide_type : 0, + member_goods_price: 0, + goods_name: o.goods_name, + goods_sn: o.goods_sn, + sku: o.sku, + is_gift: 1, + prom_id: p_item[0], + prom_type: 3, + selected: 1, + gift_id: discount.gift_id, + original_img: th.data.imgUrl + o.original_img + }; + + list2.goods.push(newd); + var all_num = 0; + var all_limit_num = 0; + + for (var i in alllist) { + var list_item = alllist[i]; + if (list_item.pid == list.pid) continue; + for (var j in list_item.goods) { + //如果赠品的ID一样,要进行统计数量 + if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id) { + all_num += list_item.goods[j].goods_num; + } + if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id && list_item.goods[j].prom_id == p_item[0]) { + all_limit_num += list_item.goods[j].goods_num; + } - } - else - { - //---如果有打折的信息,赠送的信息,赠送的时候要判断是不是限购数量--- - if (discount && discount['goods_id'] && discount.limit_num >= discount.bs * discount.zp_num - && discount.gift_storecount >= discount.bs * discount.zp_num) { - //如果这礼品超了情况下 - if (no_gift_arr.indexOf(discount.gift_id) != -1) continue; - var o = discount.goodsinfo; - //-- 默认等于1,兼容旧的活动 -- - - var newd = { - goods_id: o.goods_id, - goods_num: discount.bs * discount.zp_num, //是赠品的翻倍 - pick_id: list.pid, - user_id: app.globalData.user_id, - store_id: os.stoid, - goods_price: 0, - guide_id: ob.guide_id ? ob.guide_id : 0, - guide_type: ob.guide_type ? ob.guide_type : 0, - member_goods_price: 0, - goods_name: o.goods_name, - goods_sn: o.goods_sn, - sku: o.sku, - is_gift: 1, - prom_id: p_item[0], - prom_type: 3, - selected: 1, - gift_id: discount.gift_id, - original_img: th.data.imgUrl + o.original_img - }; + } + } - list2.goods.push(newd); - var all_num = 0; - var all_limit_num = 0; - - for (var i in alllist) { - var list_item = alllist[i]; - if(list_item.pid==list.pid) continue; - for (var j in list_item.goods) { - //如果赠品的ID一样,要进行统计数量 - if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id) { - all_num += list_item.goods[j].goods_num; - } - if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id && list_item.goods[j].prom_id == p_item[0]) { - all_limit_num += list_item.goods[j].goods_num; - } - - } - } + //-- 赠品的数量超出库存数量和会员的限制,这里是保证所有的赠品部会超出 -- + if (discount.gift_storecount < all_num + newd.goods_num || discount.limit_num < all_limit_num + newd.goods_num) { + no_gift_arr.push(discount.gift_id); + //--进入下一个循环 -- + continue; + } - //-- 赠品的数量超出库存数量和会员的限制,这里是保证所有的赠品部会超出 -- - if (discount.gift_storecount < all_num+newd.goods_num || discount.limit_num { - if (res.data.code == 0) { - add_data = res.data.data; - } - }) - if (add_data) { - newd.id = add_data.id; - list.goods.push(newd); - } - } - } + var add_data = null; + await getApp().request.promisePost("/api/weshop/cart/save", { + data: newd + }).then(res => { + if (res.data.code == 0) { + add_data = res.data.data; } - + }) + if (add_data) { + newd.id = add_data.id; + list.goods.push(newd); + } } - //--更新购物车的前台渲染-- - var rq_text = "requestData[" + cindex + "]"; - this.setData({ - [rq_text]: list - }); + } + } - var diff_text = "requestData[" + cindex + "].make_up_arr"; - //-- 如果有凑单的话 -- - if (make_up_arr.length > 0) { - this.setData({ - [diff_text]: make_up_arr - }); - } else { - this.setData({ - [diff_text]: null - }); - } + } + //--更新购物车的前台渲染-- + var rq_text = "requestData[" + cindex + "]"; + this.setData({ + [rq_text]: list + }); - var gift_text = "requestData[" + cindex + "].send_gift_arr"; - //-- 如果有凑单的话 -- - if (send_gift_arr.length > 0) { - this.setData({ - [gift_text]: send_gift_arr - }); - } else { - this.setData({ - [gift_text]: null - }); - } + var diff_text = "requestData[" + cindex + "].make_up_arr"; + //-- 如果有凑单的话 -- + if (make_up_arr.length > 0) { + this.setData({ + [diff_text]: make_up_arr + }); + } else { + this.setData({ + [diff_text]: null + }); + } + + var gift_text = "requestData[" + cindex + "].send_gift_arr"; + //-- 如果有凑单的话 -- + if (send_gift_arr.length > 0) { + this.setData({ + [gift_text]: send_gift_arr + }); + } else { + this.setData({ + [gift_text]: null + }); + } - } - }, - - //去凑单 - go_cou_dang: function (e) { - var prom_id = e.currentTarget.dataset.prom_id; - var url = "/pages/goods/goodsList/goodsList?prom_type=3&prom_id=" + prom_id; - getApp().goto(url); - }, - - //导航跳转 - nav_goto: function (e) { - var url = e.currentTarget.dataset.url; - if (!url || url == '') return; - if (url[0] != '/') url = '/' + url; - getApp().goto(url); - }, - - refresh_input: function () { - this.data.btn_click = 0; - }, - - imageLoad: function (e) { - var imgwidth = e.detail.width; - var imgheight = e.detail.height; - //宽高比 - var ratio = imgwidth / imgheight; - //计算的高度值 - var viewHeight = 715 / ratio; - var hei = this.data.max_sw_height; - - if (hei < viewHeight) { - this.setData({ - max_sw_height: viewHeight - }); - } - }, - - go_url(e) { - var url = e.currentTarget.dataset.url; - getApp().goto(url); - }, - - //跳转到商品 - go_gd:function (e) { - var user_id=getApp().globalData.user_id; - if(!user_id) user_id=0; - var gd= e.currentTarget.dataset.gd; - var good_url="/pages/goods/goodsInfo/goodsInfo?goods_id=" + gd; - var url="/api/weshop/activitylist/getGoodActInfo"; - var req_data={ - store_id:os.stoid,goodsidlist:gd,is_detail:1,user_id:user_id - }; - //获取秒杀的多规格 - getApp().request.promiseGet(url, {data:req_data}).then(res=>{ - if(res.data.code==0 && res.data.data){ - if(res.data.data.length==1){ - var item=res.data.data[0]; - switch (item.prom_type){ - case 9: - good_url= '/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo?goods_id=' + gd + '&group_id=' + item.act_id; - break; - case 8: - good_url="/packageC/pages/presell/goodsInfo/goodsInfo?goods_id="+gd+"&prom_id="+item.act_id - break; - default: - good_url="/pages/goods/goodsInfo/goodsInfo?goods_id="+gd+"&prom_id="+item.act_id+"&prom_type=1"; - break - } - } - getApp().goto(good_url); + } + }, - } else { - getApp().goto(good_url); - } - }) - }, + //去凑单 + go_cou_dang: function (e) { + var prom_id = e.currentTarget.dataset.prom_id; + var url = "/pages/goods/goodsList/goodsList?prom_type=3&prom_id=" + prom_id; + getApp().goto(url); + }, - //赠品提示 - show_gift_toast:function () { - wx.showToast({ - title: "请点击结算至提交订单页选择赠品", - icon: 'none', - duration: 2000 - }); + //导航跳转 + nav_goto: function (e) { + var url = e.currentTarget.dataset.url; + if (!url || url == '') return; + if (url[0] != '/') url = '/' + url; + getApp().goto(url); + }, + + refresh_input: function () { + this.data.btn_click = 0; + }, + + imageLoad: function (e) { + var imgwidth = e.detail.width; + var imgheight = e.detail.height; + //宽高比 + var ratio = imgwidth / imgheight; + //计算的高度值 + var viewHeight = 715 / ratio; + var hei = this.data.max_sw_height; + + if (hei < viewHeight) { + this.setData({ + max_sw_height: viewHeight + }); } + }, + + go_url(e) { + var url = e.currentTarget.dataset.url; + getApp().goto(url); + }, + + //跳转到商品 + go_gd: function (e) { + var user_id = getApp().globalData.user_id; + if (!user_id) user_id = 0; + var gd = e.currentTarget.dataset.gd; + var good_url = "/pages/goods/goodsInfo/goodsInfo?goods_id=" + gd; + var url = "/api/weshop/activitylist/getGoodActInfo"; + var req_data = { + store_id: os.stoid, goodsidlist: gd, is_detail: 1, user_id: user_id + }; + //获取秒杀的多规格 + getApp().request.promiseGet(url, { data: req_data }).then(res => { + if (res.data.code == 0 && res.data.data) { + if (res.data.data.length == 1) { + var item = res.data.data[0]; + switch (item.prom_type) { + case 9: + good_url = '/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo?goods_id=' + gd + '&group_id=' + item.act_id; + break; + case 8: + good_url = "/packageC/pages/presell/goodsInfo/goodsInfo?goods_id=" + gd + "&prom_id=" + item.act_id + break; + default: + good_url = "/pages/goods/goodsInfo/goodsInfo?goods_id=" + gd + "&prom_id=" + item.act_id + "&prom_type=1"; + break + } + } + getApp().goto(good_url); + + } else { + getApp().goto(good_url); + } + }) + }, + + //赠品提示 + show_gift_toast: function () { + wx.showToast({ + title: "请点击结算至提交订单页选择赠品", + icon: 'none', + duration: 2000 + }); + } }); \ No newline at end of file -- libgit2 0.21.4