From 8ec2633082888e6eb1230adc5d2061c6bed15c84 Mon Sep 17 00:00:00 2001 From: luo <17530855@qq.com> Date: Wed, 28 Dec 2022 23:19:31 +0800 Subject: [PATCH] OA --- components/diy_advertising/diy_advertising.wxml | 6 +++--- components/diy_advertising/diy_advertising.wxss | 7 ++++++- packageA/pages/distribution/shop/shop.wxml | 32 +++++++++++++++++++++++++++++--- packageA/pages/jfbuy/jfbuy.js | 5 +++-- packageA/pages/profile/profile.js | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------ packageB/pages/zuhegou/index/index.js | 43 +++++++++++++++++++++++++++++++++++++++++-- packageB/pages/zuhegou/index/index.wxml | 4 ++++ packageE/pages/togoin/togoin.js | 720 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- packageE/pages/user/labels/labels.js | 282 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------- packageE/pages/user/labels/labels.wxml | 17 ++++++++++++++--- packageE/pages/user/labels/labels.wxss | 12 +++++++++++- pages/cart/cart/cart.js | 554 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------- pages/cart/cart2/cart2.js | 11082 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ pages/cart/cart2_inte/cart2_inte.js | 6 +++--- pages/goods/goodsInfo/goodsInfo.js | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------- pages/goods/goodsInfo/goodsInfo.wxml | 283 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------- pages/user/order_detail/order_detail.js | 25 ++++++++++++++++++++++++- pages/user/order_list/order_list.js | 4625 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- pages/user/plus/plus.js | 24 +++++++++++++++++++++++- 19 files changed, 9333 insertions(+), 8576 deletions(-) diff --git a/components/diy_advertising/diy_advertising.wxml b/components/diy_advertising/diy_advertising.wxml index 97f2898..745993b 100644 --- a/components/diy_advertising/diy_advertising.wxml +++ b/components/diy_advertising/diy_advertising.wxml @@ -129,11 +129,11 @@ - + - + 200*200 @@ -169,7 +169,7 @@ - + 200*200 diff --git a/components/diy_advertising/diy_advertising.wxss b/components/diy_advertising/diy_advertising.wxss index 3785961..02b474c 100644 --- a/components/diy_advertising/diy_advertising.wxss +++ b/components/diy_advertising/diy_advertising.wxss @@ -156,7 +156,12 @@ float: left; margin-left: 10rpx; } - +.s4:after{ + content: ''; + height: 0; + width: 30%; + visibility: hidden; +} .s4_gk { /* background-color: rgb(129, 213, 249); */ color: #fff; diff --git a/packageA/pages/distribution/shop/shop.wxml b/packageA/pages/distribution/shop/shop.wxml index 993b486..6ad1ebf 100644 --- a/packageA/pages/distribution/shop/shop.wxml +++ b/packageA/pages/distribution/shop/shop.wxml @@ -204,10 +204,24 @@ - @@ -350,9 +364,21 @@ - + + + 一级分成: + {{filter.toFix(item.new_fir_rate,2)}} + + + 二级分成: + {{filter.toFix(item.new_sec_rate,2)}} + + + 三级分成: + {{filter.toFix(item.new_thi_rate,2)}} diff --git a/packageA/pages/jfbuy/jfbuy.js b/packageA/pages/jfbuy/jfbuy.js index 8fed520..816b3cc 100644 --- a/packageA/pages/jfbuy/jfbuy.js +++ b/packageA/pages/jfbuy/jfbuy.js @@ -300,7 +300,8 @@ Page({ var data = { store_id:oo.stoid, stype:e.target.dataset.index, - stypeup:1, + stypeup:1, + page:th.data.currentPage2, pageSize:psize }; @@ -347,7 +348,7 @@ Page({ // 开启加载状态 this.data.is_load2=1; - + data.timetype=2 // var req_data = { // page:th.data.currentPage2 diff --git a/packageA/pages/profile/profile.js b/packageA/pages/profile/profile.js index 0ce2924..b8ec6bc 100644 --- a/packageA/pages/profile/profile.js +++ b/packageA/pages/profile/profile.js @@ -70,6 +70,7 @@ Page({ sto_sele_id: "", //所属门店id is_zy: 0, //是否执行onshow is_lable_set: "", //是否启用我的兴趣标签 + is_bq_must:'',//兴趣标签是否必填 check_label: [], //我选择的兴趣标签 fir_guide_id: null, //存储会员详情接口出来的美导ID isLunar: 0, @@ -593,7 +594,7 @@ Page({ if (uu) { this.setData({head_pic: uu.head_pic, nickname: uu.nickname}) } - + if (getApp().globalData.first_leader) { //--生成会员 -- getApp().promiseGet("/api/weshop/users/get/" + r.stoid + "/" + getApp().globalData.first_leader, {}).then(res => { @@ -649,6 +650,15 @@ Page({ }, }); + //----获取系统参数----- + getApp().getConfig2(function (e) { + var json_d = JSON.parse(e.switch_list); + console.log('获取系统参数1'); + console.log(json_d); + if (json_d.user_label_set==1) { + self.setData({is_lable_set: 1}) + } + }, 1) //-- 获取线下会员的情况 -- var req_data = { @@ -696,9 +706,14 @@ Page({ //----获取系统参数----- getApp().getConfig2(function (e) { var json_d = JSON.parse(e.switch_list); + console.log('获取系统参数1'); + console.log(json_d); if (json_d.is_brithday != 1) { self.setData({isLunar: 1}) } + if (json_d.user_label_set==1) { + self.setData({is_lable_set: 1}) + } }, 1) } @@ -732,9 +747,17 @@ Page({ //----获取系统参数----- getApp().getConfig2(function (e) { var json_d = JSON.parse(e.switch_list); + console.log('获取系统参数2'); + console.log(json_d); if (json_d.is_brithday != 1) { self.setData({isLunar: 1}) } + if (json_d.user_label_set==1) { + self.setData({is_lable_set: 1}) + // if (json_d.is_bq_must==1) { + // self.setData({is_bq_must: 1}) + // } + } }, 1) } @@ -762,7 +785,19 @@ Page({ } }, - + getIsBool(){ + getApp().request.get("/api/weshop/users/grade/vip/init/get", { + data: { + storeId: r.stoid, + }, + success: function(su) { + var isBool = su.data.data.isBool; + th.setData({ + isBool: isBool + }); + } + }) + }, check_is_send_quan: function (cid, uid) { var self = this; let url2 = '/api/weshop/prom/coupon/get/'; @@ -950,9 +985,19 @@ Page({ if (th.data.fir_guide_id != th.data.user.staffId) { datas.staffId = th.data.user.staffId; } - var post_data = {...getApp().globalData.zc_dd, ...datas} - this.zu_ce(post_data); + + if (this.data.is_lable_set) { + getApp().globalData.zc_dd = post_data; + wx.redirectTo({ + url: "/pages/user/labels/labels?pageType=1" + }) + }else{ + this.zu_ce(post_data); + } + + + }, @@ -1267,10 +1312,19 @@ Page({ delete post_data.iv; + if (th.data.loading) return false; th.setData({loading: 1}); - - this.zu_ce(post_data); + + if (this.data.is_lable_set) { + getApp().globalData.zc_dd = post_data; + wx.redirectTo({ + url: "/pages/user/labels/labels?pageType=1" + }) + }else{ + this.zu_ce(post_data); + } + // this.zu_ce(post_data); }, diff --git a/packageB/pages/zuhegou/index/index.js b/packageB/pages/zuhegou/index/index.js index 4443e1e..bff9738 100644 --- a/packageB/pages/zuhegou/index/index.js +++ b/packageB/pages/zuhegou/index/index.js @@ -117,7 +117,7 @@ Page({ choice_sort_store: 0, //选择分类门店 fir_pick_index: 0, //门店选择的下标 sec_pick_index: 0, //门店选择的下标,地区选择之后的内页 - + userbuynum:false,//是否有超出购买次数,还是否可以购买。false 为可购买,true为不可购买 sales_map:{}, //线下销售的map }, @@ -196,7 +196,11 @@ Page({ return false; } if (e.data.data.is_end == 0 && ut.gettimestamp() < e.data.data.end_time) { - //-- 获取商品列表 -- + //判断是否有限制购买次数 + if(e.data.data.buy_limit !=0){ + self.getUserBuyPromNum() + } + //-- 获取商品列表 -- self.get_list(); self.countDown(); } else { @@ -381,7 +385,25 @@ Page({ } }) }, + //获取用户参与活动的次数 + getUserBuyPromNum(){ + 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=${this.data.act.id}`; + getApp().request.get(url, { + success: (e)=>{ + if (e.data.code == 0 && e.data.data) { + let userbuynum=e.data.data.userbuynum + if (userbuynum >=this.data.act.buy_limit && this.data.act.buy_limit !=0) { + this.setData({ + userbuynum:true + }) + } + } else { + } + } + }); + }, onHide: function () { this.data.is_timer = 0; }, @@ -536,6 +558,14 @@ Page({ let title = ''; self = this; th.data.s_cart_num = 0; + if(this.data.userbuynum){ + wx.showToast({ + title: '你已超出该活动购买次数!', + icon: 'none', + duration: 2000 + }) + return + } //说明是加入购物车是时候 this.data.is_zuhe_addcart = 1; @@ -777,6 +807,15 @@ Page({ */ add(e) { + if(this.data.userbuynum){ + wx.showToast({ + title: '你已超出该活动购买次数!', + icon: 'none', + duration: 2000 + }) + return + } + var th = this; var userInfo = getApp().globalData.userInfo; if (!userInfo) { diff --git a/packageB/pages/zuhegou/index/index.wxml b/packageB/pages/zuhegou/index/index.wxml index 732cedf..674f7c3 100644 --- a/packageB/pages/zuhegou/index/index.wxml +++ b/packageB/pages/zuhegou/index/index.wxml @@ -115,6 +115,10 @@ {{filters.format_time(act.start_time,1)}} 至 {{filters.format_time(act.end_time,1)}} + + 限购次数 + 每人限购{{act.buy_limit}}次 + 活动内容 diff --git a/packageE/pages/togoin/togoin.js b/packageE/pages/togoin/togoin.js index eadd064..0ec1463 100644 --- a/packageE/pages/togoin/togoin.js +++ b/packageE/pages/togoin/togoin.js @@ -1,414 +1,440 @@ var t = require("../../../utils/common.js"); -const app=getApp(); +const app = getApp(); var os = app.globalData.setting; var regeneratorRuntime = require('../../../utils/runtime.js'); Page({ data: { - user:null, - show_bind:0, - imghots: os.imghost, - store_logo:'', - first_leader:'', //-- 邀请人 -- - config2:null, - sub:0 + user: null, + show_bind: 0, + imghots: os.imghost, + store_logo: '', + first_leader: '', //-- 邀请人 -- + config2: null, + sub: 0 }, onLoad: function (options) { - if (wx.getUserProfile) { - this.setData({ - canIUseGetUserProfile: true - }) - } - getApp().globalData.isLoad_ad=1; - //--判断是否有接受到邀请人的ID-- - if(options.first_leader){ - this.setData({first_leader:options.first_leader}); - }else if(getApp().globalData.first_leader){ - this.setData({first_leader:getApp().globalData.first_leader}); - } - var th=this; - app.getConfig(function (e) { - var logo=th.data.imghots+e.store_logo; - th.setData({ store: e,store_logo:logo}); - }) - - //判断注册的条件 - app.getConfig2(function (e) { - if(e.reg_type==1){ - var arr=JSON.parse(e.reg_info); - if(arr['name_state']==1) th.data.name_need_go=1; - if(arr['birthday_state']==1) th.data.birth_need_go=1; - if(arr['idcard_state']==1) th.data.idcard_need_go=1; - if(arr['address_state']==1) th.data.address_need_go=1; - if(arr['pick_state']==1) th.data.pick_need_go=1; - if(arr['sex_state']==1) th.data.sex_need_go=1; - if(arr['introducer_state']==1) th.data.introducer_need_go=1; - } - },1) - - getApp().promiseGet("/api/wx/weappSendlist/page", { - data: { - store_id: os.stoid, - typeid: "1007" - }}).then(res=>{ - if (res.data.code == 0 && res.data.data.pageData.length > 0) { - var template_id = res.data.data.pageData[0].template_id; - th.setData({template_id:template_id}); - } - }) + if (wx.getUserProfile) { + this.setData({ + canIUseGetUserProfile: true + }) + } + getApp().globalData.isLoad_ad = 1; + //--判断是否有接受到邀请人的ID-- + if (options.first_leader) { + this.setData({ first_leader: options.first_leader }); + } else if (getApp().globalData.first_leader) { + this.setData({ first_leader: getApp().globalData.first_leader }); + } + var th = this; + app.getConfig(function (e) { + var logo = th.data.imghots + e.store_logo; + th.setData({ store: e, store_logo: logo }); + }) + + //判断注册的条件 + app.getConfig2(function (e) { + if (e.reg_type == 1) { + var arr = JSON.parse(e.reg_info); + if (arr['name_state'] == 1) th.data.name_need_go = 1; + if (arr['birthday_state'] == 1) th.data.birth_need_go = 1; + if (arr['idcard_state'] == 1) th.data.idcard_need_go = 1; + if (arr['address_state'] == 1) th.data.address_need_go = 1; + if (arr['pick_state'] == 1) th.data.pick_need_go = 1; + if (arr['sex_state'] == 1) th.data.sex_need_go = 1; + if (arr['introducer_state'] == 1) th.data.introducer_need_go = 1; + } + var json_d = JSON.parse(e.switch_list); + if (json_d.user_label_set == 1) { + th.data.is_lable_set = 1 + // self.setData({is_lable_set: 1}) + // if (json_d.is_bq_must==1) { + // self.setData({is_bq_must: 1}) + // } + } + }, 1) + + getApp().promiseGet("/api/wx/weappSendlist/page", { + data: { + store_id: os.stoid, + typeid: "1007" + } + }).then(res => { + if (res.data.code == 0 && res.data.data.pageData.length > 0) { + var template_id = res.data.data.pageData[0].template_id; + th.setData({ template_id: template_id }); + } + }) }, //绑定手机号 - getphone:function (e) { - //接下来写业务代码登录 - e=e.detail; - if (e.encryptedData==undefined){ - this.setData({show_bind:0}) - return app.my_warnning("登录需要授权手机号码!", 0, this); - return false; - } + getphone: function (e) { + //接下来写业务代码登录 + e = e.detail; + if (e.encryptedData == undefined) { + this.setData({ show_bind: 0 }) + return app.my_warnning("登录需要授权手机号码!", 0, this); + return false; + } var sessionKey = getApp().globalData.sessionKey; var openid = getApp().globalData.openid; - var r=getApp().globalData.getu; - this.save_the_data(r,e,sessionKey,openid) + var r = getApp().globalData.getu; + this.save_the_data(r, e, sessionKey, openid) }, //-- 会员授权 -- - bindGetUserInfo: function(ee) { - if(!this.data.isAgree) { - wx.showToast({ - title: '请您先阅读和勾选指定的内容', - icon: 'none', - }); - return false; - } + bindGetUserInfo: function (ee) { + if (!this.data.isAgree) { + wx.showToast({ + title: '请您先阅读和勾选指定的内容', + icon: 'none', + }); + return false; + } var that = this; - //-- 点击授权 -- - that.getUserProfile(function(res){ - var user=res; - //--拿下code-- - wx.login({ - success: function (o) { - var dd = { - js_code:o.code, - store_id: os.stoid, - nickname: app.clear_word(app.globalData.getu.nickName), - head_pic: app.clear_word(app.globalData.getu.avatarUrl) - }; - //-- 导购会员ID -- - if(getApp().globalData.guide_id){ - dd.guide_id=getApp().globalData.guide_id; - } - - getApp().request.get("/api/weshop/users/openidandkey", { - data: dd, - success: function (e) { - if(e.data.code==0){ - that.setData({user:user}) - //如果有会员的话,没有sessionKey - if(!e.data.data.sessionKey){ - // getApp().showWarning("登录成功"); - wx.showToast({ - title: '登录成功', - icon: 'success', - duration: 2000 - }); - getApp().globalData.userInfo=e.data.data; - getApp().globalData.user_id=e.data.data.user_id; - getApp().globalData.openid = e.data.data.weapp_openid; - //把会员的信息存在内存 - wx.setStorageSync("userinfo",e.data.data); - - //调用接口判断是不是会员 - app.promiseGet("/api/weshop/shoppingGuide/get/" + os.stoid + "/" + e.data.data.user_id, {}).then(res => { - if (res.data.code == 0) { - getApp().globalData.guide_id = res.data.data.id; - } - }) - - - setTimeout(function () { - getApp().globalData.login_back=1; - wx.navigateBack({ delta: 1}) //返回上一页 - },1000) - }else{ - getApp().globalData.sessionKey=e.data.data.sessionKey; - getApp().globalData.openid=e.data.data.openid; - that.setData({show_bind:1}); - } - }else{ - getApp().confirmBox(e.data.msg); - } - } - }); - } - }) - - }) + //-- 点击授权 -- + that.getUserProfile(function (res) { + var user = res; + //--拿下code-- + wx.login({ + success: function (o) { + var dd = { + js_code: o.code, + store_id: os.stoid, + nickname: app.clear_word(app.globalData.getu.nickName), + head_pic: app.clear_word(app.globalData.getu.avatarUrl) + }; + //-- 导购会员ID -- + if (getApp().globalData.guide_id) { + dd.guide_id = getApp().globalData.guide_id; + } + + getApp().request.get("/api/weshop/users/openidandkey", { + data: dd, + success: function (e) { + if (e.data.code == 0) { + that.setData({ user: user }) + //如果有会员的话,没有sessionKey + if (!e.data.data.sessionKey) { + // getApp().showWarning("登录成功"); + wx.showToast({ + title: '登录成功', + icon: 'success', + duration: 2000 + }); + getApp().globalData.userInfo = e.data.data; + getApp().globalData.user_id = e.data.data.user_id; + getApp().globalData.openid = e.data.data.weapp_openid; + //把会员的信息存在内存 + wx.setStorageSync("userinfo", e.data.data); + + //调用接口判断是不是会员 + app.promiseGet("/api/weshop/shoppingGuide/get/" + os.stoid + "/" + e.data.data.user_id, {}).then(res => { + if (res.data.code == 0) { + getApp().globalData.guide_id = res.data.data.id; + } + }) + + + setTimeout(function () { + getApp().globalData.login_back = 1; + wx.navigateBack({ delta: 1 }) //返回上一页 + }, 1000) + } else { + getApp().globalData.sessionKey = e.data.data.sessionKey; + getApp().globalData.openid = e.data.data.openid; + that.setData({ show_bind: 1 }); + } + } else { + getApp().confirmBox(e.data.msg); + } + } + }); + } + }) + + }) }, //-- 调整后的获取会员信息 -- - getUserProfile:function(func){ - var that=this; - wx.getUserProfile({ - desc:'获取用户相关信息', - success:res=>{ - console.log("getUserProfile",res); - //此处授权得到userInfo - getApp().globalData.getu = res.userInfo; - func(res.userInfo); - } - }); + getUserProfile: function (func) { + var that = this; + wx.getUserProfile({ + desc: '获取用户相关信息', + success: res => { + console.log("getUserProfile", res); + //此处授权得到userInfo + getApp().globalData.getu = res.userInfo; + func(res.userInfo); + } + }); }, //暂不登录,返回上一页 - cancle_bind:function () { - wx.navigateBack({ delta: 1}) + cancle_bind: function () { + wx.navigateBack({ delta: 1 }) }, - close_pop:function(){ - this.setData({show_bind:0}) + close_pop: function () { + this.setData({ show_bind: 0 }) }, - show_bind_mobile:function(){ - let th=this; - th.sendsm(function (){ - th.setData({show_bind:1}) - }) + show_bind_mobile: function () { + let th = this; + th.sendsm(function () { + th.setData({ show_bind: 1 }) + }) }, - - save_the_data: async function (r,e,sessionKey,openid) { - var app=getApp(),a=app,th=this; + + save_the_data: async function (r, e, sessionKey, openid) { + var app = getApp(), a = app, th = this; var dd = { oauth: "miniapp", - nickname:a.clear_word(r.nickName), + nickname: a.clear_word(r.nickName), head_pic: r.avatarUrl, sex: r.gender, terminal: "miniapp", sessionKey: sessionKey, - openid:openid, + openid: openid, encryptedData: e.encryptedData, iv: e.iv, store_id: getApp().globalData.setting.stoid, }; - //--如果有邀请人的时候-- - if(th.data.first_leader){ - dd.first_leader=th.data.first_leader; - } - //-- 导购会员ID -- - if(getApp().globalData.guide_id){ - dd.guide_id=getApp().globalData.guide_id; - } - - //门店的扫描识别码 - if(getApp().globalData.store_number){ - dd.SunCode=encodeURIComponent(getApp().globalData.store_number.trim()); - } - - console.log("-----会员注册的信息-------"); + //--如果有邀请人的时候-- + if (th.data.first_leader) { + dd.first_leader = th.data.first_leader; + } + //-- 导购会员ID -- + if (getApp().globalData.guide_id) { + dd.guide_id = getApp().globalData.guide_id; + } + + //门店的扫描识别码 + if (getApp().globalData.store_number) { + dd.SunCode = encodeURIComponent(getApp().globalData.store_number.trim()); + } + + console.log("-----会员注册的信息-------"); console.log(dd); - var need_go=0; - //如果有需要完善的信息没有完善,就需要跳转 - if(th.data.name_need_go){ need_go=1;} - if(th.data.birth_need_go){ need_go=1;} - if(th.data.idcard_need_go){ need_go=1;} - if(th.data.address_need_go){ need_go=1;} - if(th.data.pick_need_go){ need_go=1;} - if(th.data.sex_need_go){ need_go=1;} - if(th.data.introducer_need_go){ need_go=1;} - - if(need_go){ - - var req_data={ - sessionKey: sessionKey, - encryptedData: e.encryptedData, - iv: e.iv, - store_id: getApp().globalData.setting.stoid, - } - //-- 获取一下手机 -- - getApp().request.promiseGet("/api/weshop/users/getmobile", {data:req_data}).then(res=>{ - if(res.data.code==0){ - dd.mobile=res.data.data; - getApp().globalData.zc_dd=dd; - wx.redirectTo({ - url:"/packageA/pages/profile/profile?is_back=1" - }) - } - }) - - }else{ - - this.setData({sub:1}); - wx.showLoading({ - title:'处理中.', - mask:true - }) - this.zu_ce(dd); //调用注册的函数 + var need_go = 0; + //如果有需要完善的信息没有完善,就需要跳转 + if (th.data.name_need_go) { need_go = 1; } + if (th.data.birth_need_go) { need_go = 1; } + if (th.data.idcard_need_go) { need_go = 1; } + if (th.data.address_need_go) { need_go = 1; } + if (th.data.pick_need_go) { need_go = 1; } + if (th.data.sex_need_go) { need_go = 1; } + if (th.data.introducer_need_go) { need_go = 1; } + + if (need_go) { + + var req_data = { + sessionKey: sessionKey, + encryptedData: e.encryptedData, + iv: e.iv, + store_id: getApp().globalData.setting.stoid, + } + //-- 获取一下手机 -- + getApp().request.promiseGet("/api/weshop/users/getmobile", { data: req_data }).then(res => { + if (res.data.code == 0) { + dd.mobile = res.data.data; + getApp().globalData.zc_dd = dd; + wx.redirectTo({ + url: "/packageA/pages/profile/profile?is_back=1" + }) + } + }) + + } else { + if (th.data.is_lable_set) { + var req_data = { + sessionKey: sessionKey, + encryptedData: e.encryptedData, + iv: e.iv, + store_id: getApp().globalData.setting.stoid, + } + //-- 获取一下手机 -- + getApp().request.promiseGet("/api/weshop/users/getmobile", { data: req_data }).then(res => { + if (res.data.code == 0) { + dd.mobile = res.data.data; + getApp().globalData.zc_dd = dd; + wx.redirectTo({ + url: "/pages/user/labels/labels?pageType=1" + }) + } + }) + } else { + this.setData({ sub: 1 }); + wx.showLoading({ + title: '处理中.', + mask: true + }) + this.zu_ce(dd); //调用注册的函数 + } + } + + }, + + zu_ce: function (dd) { + var th = this; + app.request.get("/api/weshop/users/thirdLogin", { + data: dd, + success: function (e) { + if (e.data.code == 0) { + app.globalData.user_id = e.data.data.user_id; + } else { + return app.showWarning("授权登入失败!" + e.data.msg); + } + getApp().globalData.login_back = 1; + wx.setStorageSync("userinfo", e.data.data); + wx.setStorageSync("isAuth", !0), app.globalData.userInfo = e.data.data, app.globalData.userInfo.head_pic = t.getFullUrl(app.globalData.userInfo.head_pic); + + //调用接口判断是不是会员 + app.promiseGet("/api/weshop/shoppingGuide/get/" + os.stoid + "/" + e.data.data.user_id, {}).then(res => { + if (res.data.code == 0) { + getApp().globalData.guide_id = res.data.data.id; + } + }) + + wx.navigateBack({ delta: 1 }) + + }, + failStatus: function (t) { + th.setData({ sub: 0 }); + return app.my_warnning("授权登入失败,请稍后再试!", 0, th); + }, + fail: function (t) { + th.setData({ sub: 0 }); + return i.clearAuth(), i.alertLoginErrorAndGoHome(), !1; } + }); + }, + + bind_bnerr: function (e) { + var _errImg = e.target.dataset.errorimg; + var _errObj = {}; + _errObj[_errImg] = this.data.imghots + "/miniapp/images/logo.png"; + this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ; }, - zu_ce:function (dd) { - var th=this; - app.request.get("/api/weshop/users/thirdLogin", { + //-- 会员授权 -- + bindUserInfo: function (ee) { + var that = this; + var user = ee.detail.userInfo; + //此处授权得到userInfo + getApp().globalData.getu = user; + + //--拿下code-- + wx.login({ + success: function (o) { + var dd = { + js_code: o.code, + store_id: os.stoid, + nickname: app.clear_word(app.globalData.getu.nickName), + head_pic: app.clear_word(app.globalData.getu.avatarUrl) + }; + //-- 导购会员ID -- + if (getApp().globalData.guide_id) { + dd.guide_id = getApp().globalData.guide_id; + } + + getApp().request.get("/api/weshop/users/openidandkey", { data: dd, success: function (e) { - if (e.data.code == 0) { - app.globalData.user_id = e.data.data.user_id; + if (e.data.code == 0) { + that.setData({ user: user }) + //如果有会员的话,没有sessionKey + if (!e.data.data.sessionKey) { + // getApp().showWarning("登录成功"); + wx.showToast({ + title: '登录成功', + icon: 'success', + duration: 2000 + }); + + getApp().globalData.userInfo = e.data.data; + getApp().globalData.user_id = e.data.data.user_id; + getApp().globalData.openid = e.data.data.weapp_openid; + //把会员的信息存在内存 + wx.setStorageSync("userinfo", e.data.data); + + //调用接口判断是不是会员 + app.promiseGet("/api/weshop/shoppingGuide/get/" + os.stoid + "/" + e.data.data.user_id, {}).then(res => { + if (res.data.code == 0) { + getApp().globalData.guide_id = res.data.data.id; + } + }) + + + setTimeout(function () { + getApp().globalData.login_back = 1; + wx.navigateBack({ delta: 1 }) //返回上一页 + }, 1000) } else { - return app.showWarning("授权登入失败!"+e.data.msg); + getApp().globalData.sessionKey = e.data.data.sessionKey; + getApp().globalData.openid = e.data.data.openid; + that.setData({ show_bind: 1 }); } - getApp().globalData.login_back=1; - wx.setStorageSync("userinfo",e.data.data); - wx.setStorageSync("isAuth", !0), app.globalData.userInfo = e.data.data, app.globalData.userInfo.head_pic = t.getFullUrl(app.globalData.userInfo.head_pic); - - //调用接口判断是不是会员 - app.promiseGet("/api/weshop/shoppingGuide/get/" + os.stoid + "/" + e.data.data.user_id, {}).then(res => { - if (res.data.code == 0) { - getApp().globalData.guide_id = res.data.data.id; - } - }) - - wx.navigateBack({ delta: 1}) - - }, - failStatus: function (t) { - th.setData({sub:0}); - return app.my_warnning("授权登入失败,请稍后再试!", 0, th); - }, - fail: function (t) { - th.setData({sub:0}); - return i.clearAuth(), i.alertLoginErrorAndGoHome(), !1; + } else { + getApp().confirmBox(e.data.msg); + } } - }); - }, + }); + } + }) - bind_bnerr:function(e){ - var _errImg = e.target.dataset.errorimg; - var _errObj = {}; - _errObj[_errImg] = this.data.imghots+"/miniapp/images/logo.png"; - this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ; }, - //-- 会员授权 -- - bindUserInfo: function(ee) { - var that = this; - var user=ee.detail.userInfo; - //此处授权得到userInfo - getApp().globalData.getu = user; - - //--拿下code-- - wx.login({ - success: function (o) { - var dd = { - js_code:o.code, - store_id: os.stoid, - nickname: app.clear_word(app.globalData.getu.nickName), - head_pic: app.clear_word(app.globalData.getu.avatarUrl) - }; - //-- 导购会员ID -- - if(getApp().globalData.guide_id){ - dd.guide_id=getApp().globalData.guide_id; - } - - getApp().request.get("/api/weshop/users/openidandkey", { - data: dd, - success: function (e) { - if(e.data.code==0){ - that.setData({user:user}) - //如果有会员的话,没有sessionKey - if(!e.data.data.sessionKey){ - // getApp().showWarning("登录成功"); - wx.showToast({ - title: '登录成功', - icon: 'success', - duration: 2000 - }); - - getApp().globalData.userInfo=e.data.data; - getApp().globalData.user_id=e.data.data.user_id; - getApp().globalData.openid = e.data.data.weapp_openid; - //把会员的信息存在内存 - wx.setStorageSync("userinfo",e.data.data); - - //调用接口判断是不是会员 - app.promiseGet("/api/weshop/shoppingGuide/get/" + os.stoid + "/" + e.data.data.user_id, {}).then(res => { - if (res.data.code == 0) { - getApp().globalData.guide_id = res.data.data.id; - } - }) - - - setTimeout(function () { - getApp().globalData.login_back=1; - wx.navigateBack({ delta: 1}) //返回上一页 - },1000) - }else{ - getApp().globalData.sessionKey=e.data.data.sessionKey; - getApp().globalData.openid=e.data.data.openid; - that.setData({show_bind:1}); - } - }else{ - getApp().confirmBox(e.data.msg); - } - } - }); - } - }) + close_pop_back: function () { + this.close_pop(); + wx.navigateBack({ delta: 1 }) + }, + + // 是否同意协议 + isAgree(e) { + let isAgree = null; + if (e.detail.value[0]) { + isAgree = true; + } else { + isAgree = false; + }; + // this.data.isAgree = isAgree; + this.setData({ + isAgree, + }); }, - close_pop_back:function(){ - this.close_pop(); - wx.navigateBack({ delta: 1}) + //通过路径跳转到其他页面 + goto: function (e) { + console.log('xxxx', e); + var url = e.currentTarget.dataset.url; + getApp().goto(url); }, + //订阅消息提醒 + sendsm: function (func) { + var template_id = this.data.template_id; + // //授权订阅 + wx.requestSubscribeMessage({ + tmplIds: [template_id], + success(res) { + func(); + }, + fail(res) { + func(); + } + }) - // 是否同意协议 - isAgree(e) { - let isAgree = null; - if(e.detail.value[0]) { - isAgree = true; - } else { - isAgree = false; - }; - // this.data.isAgree = isAgree; - this.setData({ - isAgree, - }); - }, - - - //通过路径跳转到其他页面 - goto: function(e) { - console.log('xxxx', e); - var url = e.currentTarget.dataset.url; - getApp().goto(url); - }, - - //订阅消息提醒 - sendsm:function(func) - { - var template_id = this.data.template_id; - // //授权订阅 - wx.requestSubscribeMessage({ - tmplIds: [template_id], - success(res) { - func(); - }, - fail(res) { - func(); - } - }) - - }, + }, }) diff --git a/packageE/pages/user/labels/labels.js b/packageE/pages/user/labels/labels.js index 5666231..637e2e4 100644 --- a/packageE/pages/user/labels/labels.js +++ b/packageE/pages/user/labels/labels.js @@ -1,7 +1,9 @@ +const app = getApp(); var e = getApp(), a = e.globalData.setting, os = a, t = e.request, + s = require("../../../utils/common.js"), d = e.globalData; Page({ @@ -18,6 +20,8 @@ Page({ is_modify: 0, //判断是第一次填写还是修改(0填写,1修改) isread: 0, //是否读取 is_check: 0, //是否重复提交 + pageType:'',//页面来源标识,1 是注册时跳转过来的 + label_required:'',//注册时标签是否必填 }, //点击选择兴趣标签把值放到已选中 click_label: function(e) { @@ -63,17 +67,23 @@ Page({ sms_conf = JSON.parse(sms_conf); var getuser_label_type = 1; var getuser_label_val = 0; + let label_required='' if (sms_conf.user_label_type != undefined) { getuser_label_type = parseInt(sms_conf.user_label_type) + 1; } if (sms_conf.user_label_val != undefined) { getuser_label_val = sms_conf.user_label_val; } + + if (sms_conf.label_required==1) { + label_required=1 + } th.setData({ user_label_val: getuser_label_val, - user_label_type: getuser_label_type + user_label_type: getuser_label_type, + label_required:label_required }) }) }, @@ -88,6 +98,15 @@ Page({ * 生命周期函数--监听页面加载 */ onLoad: function(options) { + console.log('标签页面对象-------'); + console.log(options); + let pageType = options.pageType //页面来源标识,1 是注册时跳转过来的 + if (pageType) { + this.setData({ + pageType + }) + // this.pageType=pageType + } var th = this; var pages = getCurrentPages(); var prevPage = pages[pages.length - 2]; //上一个页面 @@ -115,7 +134,9 @@ Page({ interest_lables: res.data.data.pageData, isread: 1 }) - th.query_checklabels(); + if(!th.data.pageType){ + th.query_checklabels(); + } } else { getApp().my_warnning("系统繁忙,请稍后再试", 0, th); th.setData({ @@ -189,102 +210,181 @@ Page({ getApp().my_warnning("请勿重复提交", 0, th); } if (is_check == 0) { - if (check_label.length < 1) { - getApp().my_warnning("完成兴趣标签才能" + remark + "哦~", 0, th); - th.setData({ - is_check: 0 - }) - } else { - th.setData({ - is_check: 1 - }) - - var url = "/api/weshop/marketing/holiday/vip/interest/label/update"; //更新标签接口地址 - var nav_url = "/pages/user/userinfo/userinfo"; //领取成功之后跳转页面 - var vipLabel = ""; //选择的标签名称 - var vipLabelId = ""; //选择的标签id - var arr = []; - for (var i = 0; i < check_label.length; i++) { - if (i < check_label.length - 1) { - vipLabelId += check_label[i].id + ","; - vipLabel += check_label[i].LabelName + ","; - arr.push(check_label[i].LabelName); - } else { - vipLabelId += check_label[i].id; - vipLabel += check_label[i].LabelName; - arr.push(check_label[i].LabelName); - } + if (th.data.pageType) { + if(th.data.label_required){ + if (check_label.length < 1) { + getApp().my_warnning("必须完成兴趣标签选择", 0, th); + return + } } - var my_confirm = th.selectComponent("#my_confirm"); //组件的id - remark = "兴趣标签赠送"; - if (is_modify) { + wx.showLoading({ + title: "处理中.", + mask: true + }) + + app.request.get("/api/weshop/users/thirdLogin", { + data: getApp().globalData.zc_dd, + success: function (e) { + wx.hideLoading(); + if (e.data.code == 0) { + app.globalData.user_id = e.data.data.user_id; + } else { + return app.showWarning("授权登入失败!" + e.data.msg); + } + getApp().globalData.login_back = 1; + wx.setStorageSync("userinfo", e.data.data); + wx.setStorageSync("isAuth", !0), app.globalData.userInfo = e.data.data, app.globalData.userInfo.head_pic = s.getFullUrl(app.globalData.userInfo.head_pic); + if (th.data.label_required && check_label.length>0) { + getApp().request.put("/api/weshop/marketing/holiday/vip/interest/label/update", { + data: { + "storeId": a.stoid, + "userId":e.data.data.user_id, + "vipLabel": vipLabel, + "vipLabelId": vipLabelId, + "type": user_label_type, + "remark": remark, + "value": user_label_val, + "fromType": "REWARD" + }, + success: function(res) { + if (res.data.code == 0) { + getApp().my_warnning("领取成功", 1, th); + setTimeout(function() { + // var pages = getCurrentPages(); + // var prevPage = pages[pages.length - 2]; + // prevPage.setData({ + // check_label: arr + // }) + // th.goto(); + wx.reLaunch({ + url: '/pages/user/index/index', + }) + }, 2000); + } else { + getApp().my_warnning("系统繁忙,请稍后再试", 0, th); + th.setData({ + is_check: 0 + }) + } + } + }) + }else{ + wx.reLaunch({ + url: '/pages/user/index/index', + }) + } - my_confirm.open_cancel(0); - getApp().request.put(url, { - data: { - "storeId": a.stoid, - "userId": d.user_id, - "vipLabel": vipLabel, - "vipLabelId": vipLabelId, - "type": user_label_type, - "remark": remark, - "value": user_label_val, - "fromType": "REWARD" }, - success: function(res) { - if (res.data.code == 0) { - getApp().my_warnning("修改成功", 1, th); - setTimeout(function() { - var pages = getCurrentPages(); - var prevPage = pages[pages.length - 2]; //上一个页面 - //直接调用上一个页面的setData()方法,把数据存到上一个页面中去 - prevPage.setData({ - check_label: arr - }) - th.goto(); - }, 2000); - } else { - getApp().my_warnning("系统繁忙,请稍后再试", 0, th); - th.setData({ - is_check: 0 - }) - } + failStatus: function (t) { + wx.hideLoading(); + th.setData({loading: 0}); + return app.my_warnning("授权登入失败,请稍后再试!", 0, that); + }, + fail: function (t) { + wx.hideLoading(); + th.setData({loading: 0}); + return i.clearAuth(), i.alertLoginErrorAndGoHome(), !1; } + }); + }else{ + if (check_label.length < 1) { + getApp().my_warnning("完成兴趣标签才能" + remark + "哦~", 0, th); + th.setData({ + is_check: 0 }) - } else { - - getApp().request.put(url, { - data: { - "storeId": a.stoid, - "userId": d.user_id, - "vipLabel": vipLabel, - "vipLabelId": vipLabelId, - "type": user_label_type, - "remark": remark, - "value": user_label_val, - "fromType": "REWARD" - }, - success: function(res) { - if (res.data.code == 0) { - getApp().my_warnning("领取成功", 1, th); - setTimeout(function() { - var pages = getCurrentPages(); - var prevPage = pages[pages.length - 2]; //上一个页面 - //直接调用上一个页面的setData()方法,把数据存到上一个页面中去 - prevPage.setData({ - check_label: arr - }) - th.goto(); - }, 2000); - } else { - getApp().my_warnning("系统繁忙,请稍后再试", 0, th); - th.setData({ - is_check: 0 - }) - } + th.setData({ + is_check: 1 + }) + + var url = "/api/weshop/marketing/holiday/vip/interest/label/update"; //更新标签接口地址 + var nav_url = "/pages/user/userinfo/userinfo"; //领取成功之后跳转页面 + var vipLabel = ""; //选择的标签名称 + var vipLabelId = ""; //选择的标签id + var arr = []; + for (var i = 0; i < check_label.length; i++) { + if (i < check_label.length - 1) { + vipLabelId += check_label[i].id + ","; + vipLabel += check_label[i].LabelName + ","; + arr.push(check_label[i].LabelName); + } else { + vipLabelId += check_label[i].id; + vipLabel += check_label[i].LabelName; + arr.push(check_label[i].LabelName); } - }) + } + var my_confirm = th.selectComponent("#my_confirm"); //组件的id + remark = "兴趣标签赠送"; + if (is_modify) { + + my_confirm.open_cancel(0); + getApp().request.put(url, { + data: { + "storeId": a.stoid, + "userId": d.user_id, + "vipLabel": vipLabel, + "vipLabelId": vipLabelId, + "type": user_label_type, + "remark": remark, + "value": user_label_val, + "fromType": "REWARD" + }, + success: function(res) { + if (res.data.code == 0) { + getApp().my_warnning("修改成功", 1, th); + setTimeout(function() { + var pages = getCurrentPages(); + var prevPage = pages[pages.length - 2]; //上一个页面 + //直接调用上一个页面的setData()方法,把数据存到上一个页面中去 + prevPage.setData({ + check_label: arr + }) + th.goto(); + }, 2000); + } else { + getApp().my_warnning("系统繁忙,请稍后再试", 0, th); + th.setData({ + is_check: 0 + }) + } + } + }) + + } else { + + getApp().request.put(url, { + data: { + "storeId": a.stoid, + "userId": d.user_id, + "vipLabel": vipLabel, + "vipLabelId": vipLabelId, + "type": user_label_type, + "remark": remark, + "value": user_label_val, + "fromType": "REWARD" + }, + success: function(res) { + if (res.data.code == 0) { + getApp().my_warnning("领取成功", 1, th); + setTimeout(function() { + var pages = getCurrentPages(); + var prevPage = pages[pages.length - 2]; //上一个页面 + //直接调用上一个页面的setData()方法,把数据存到上一个页面中去 + prevPage.setData({ + check_label: arr + }) + th.goto(); + }, 2000); + } else { + getApp().my_warnning("系统繁忙,请稍后再试", 0, th); + th.setData({ + is_check: 0 + }) + } + } + }) + } + } } } diff --git a/packageE/pages/user/labels/labels.wxml b/packageE/pages/user/labels/labels.wxml index 6d46152..123a319 100644 --- a/packageE/pages/user/labels/labels.wxml +++ b/packageE/pages/user/labels/labels.wxml @@ -35,14 +35,25 @@ - - 确定选择 + + 保存 - + + + + + + 选择后,领取{{user_label_val}}积分 + + + 选择后,领取{{user_label_val}}成长值 diff --git a/packageE/pages/user/labels/labels.wxss b/packageE/pages/user/labels/labels.wxss index fcfa1c4..c7ef9c8 100644 --- a/packageE/pages/user/labels/labels.wxss +++ b/packageE/pages/user/labels/labels.wxss @@ -72,7 +72,7 @@ page{ } .receive{ position: fixed; - bottom:60rpx; + bottom:80rpx; left: 65rpx; width: 620rpx; height: 70rpx; @@ -95,4 +95,14 @@ page{ } .backcolor{ background-color: rgb(204, 204, 204); +} +.check_info{ + position: fixed; + bottom: 10rpx; + left: 65rpx; + width: 620rpx; + height: 70rpx; + line-height: 70rpx; + text-align: center; + font-size: 26rpx; } \ No newline at end of file diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js index 2955387..16dd2b4 100644 --- a/pages/cart/cart/cart.js +++ b/pages/cart/cart/cart.js @@ -1316,7 +1316,18 @@ Page({ }); }, - + 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) { @@ -2990,7 +3001,7 @@ Page({ }); 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) { @@ -3022,15 +3033,23 @@ Page({ 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].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, @@ -3107,185 +3126,392 @@ Page({ } } } + + 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; + } - //排除失效商品结算 - 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; + 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); } - 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) { + 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 (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]) { + if (val.prom_type == 1 || val.prom_type == 6) { + if (num > val.store_count) { isok = 0; gname = val.goods_name; - throw "商品价格已经变化"; + throw "超出库存"; + return false; } - } else { - if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price && val.prom_price > 0) { + } + + if (th.data.sales_rules == 1) { + if (num > val.store_count) { isok = 0; gname = val.goods_name; - throw "商品价格已经变化"; + 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 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; + 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; } - 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 "商品价格已经变化"; + } + } 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: "/pages/cart/cart2/cart2" + }); } - } catch (e) { - err = e; } - if (isok == 0) { - t.confirmBox(gname + ":" + err); - wx.hideLoading(); - return false; - } - wx.hideLoading(); - wx.navigateTo({ - url: "/pages/cart/cart2/cart2" - }); + }); + } else if (res.cancel) { + wx.hideLoading(); + console.log('用户点击取消') + } + } + }) + }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; + } + + 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 + }; + + //-- 如果有线下取价的时候 -- + 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: "/pages/cart/cart2/cart2" + }); + } + } + }); + } } else { //-- 开始服务卡的购物车购买 -- diff --git a/pages/cart/cart2/cart2.js b/pages/cart/cart2/cart2.js index 199a212..d498e08 100644 --- a/pages/cart/cart2/cart2.js +++ b/pages/cart/cart2/cart2.js @@ -1,5925 +1,6087 @@ var t = getApp(), app = t, a = t.request, e = require("../../../utils/common.js"), - s = require("../../../utils/util.js"), ut = s, o = require("../../../utils/md5.js"), to = getApp(); + s = require("../../../utils/util.js"), ut = s, o = require("../../../utils/md5.js"), to = getApp(); var oo = t.globalData.setting, os = oo; var regeneratorRuntime = require('../../../utils/runtime.js'); var util_pay = require("../../../utils/pay.js"); var zh_calc = require("zh_calculate.js"); var ladder_calc = require("ladder_calculate.js"); -// 防抖函数用定时器 +// 防抖函数用定时器 let timer; Page({ - data: { - - url: t.globalData.setting.url, - resourceUrl: t.globalData.setting.resourceUrl, - imgUrl: t.globalData.setting.imghost, - goods: null, - order: null, - orderPrices: null, - coupons: null, - coupon: null, - invoiceToggle: !0, - payWithUserMoney: !0, - payWithPoints: !0, - maxWord: 0, - enterAddressPage: !1, - firstEnter: !0, - //页面获取的参数 - param: null, - //提交订单的格式 - formData: { - order_amount: 0,//支付金额 - total_amount: 0,//总价 - all_price: 0,//商品卖的总价 - pay_points: 0,//使用积分 - user_money: 0,//使用余额 - couponCode: "",//使用优惠券(多单就用逗号隔开) - shipping_price: 0,//物流费用 - }, - - /*-----------当是购物车结算的时候-------------*/ - cartlist: null, - old_cartlist: null, - cartlist_y: null, //购物车原始列表 - js_use_money: 0, //是否使用余额 - is_all_zt: 1, //是否全部都是自提 - - /*----------------立即购买---------------------*/ - is_b_now: 0, //0是购物车结算 1立即购买 - bn_goods: null, //立即购买时候的调用商品 - bn_use_money: 0,//是否使用余额 - bn_exp_type: 1, //0是物流 1自提 - bn_pick: 0, //选择的门店 - bn_pickname: "", //选择的门店名称 - bn_t_exp_t: 0, //判断商品和门店一起决定的物流自提的方式0 都可以 1自提 2物流 - - bn_plus_cut_price: 0, //显示等级卡会优惠多少钱 - /*------------------------*/ - user_addr: null,//物流 - userinfo: null, //获取会员 - /*----------物流选择--------*/ - wu_arr: null, - index: 0, - w_sele_index: 0, - - //判断页面是返回回来的还是 首次进入的 - isclose: 1, - //申请提现的金额 - txmon: 0, - yuer: 0, - //提交中,不重复提交 - is_summit_ing: 0, - //--更优惠券抵用有关,立即购买的,如果是购物车,就要把相应的值,写入cartlist数组中-- - ckeck_quan_price: 0, - check_quan_price_list: '', - check_quan_ware_list: '', - - // 设计一个数组来存放已经选择了的券编号,coupon_no是券号,money是面值,coupon_price是真正优惠的价格,数组的下标是pickid - //using_quan[11]={coupon_no:"1212121",money:"20",coupon_price:"45"} - using_quan: {}, - open_quan: 0, - //选择的券列表 - selected_quan_list: null, - //选择的券的门店 - selected_quan_pick: null, - is_close_quan: 0, - disabled: 0, - open_express: 0,//控制选择物流名列表 的属性 - - is_express: 0, //选中物流的属性 - expres_name: "", //点击选定 - isopen: 0, //券的说明 - is_coupon: 1, //选择券的控制属性 - is_shipping_code: "",//插入用户默认地址 - wu_arr_txt: "", //要更新的物流的字段 - sales_rules: 1, //默认是显示线上库存 - isget_by_quan: {}, //是否调用了接口获取包邮券 - get_by_quan_list: null, //立即购买的 - get_by_quan_list_cart: {}, //购物车的 - by_quan_list_cart: null, //点击选择的包邮列表 - //如果是全场包邮了,或者是全场不包邮了,就不要选包邮券 - is_no_by: {}, - is_by: {}, - is_quan_by: {}, - //--购买赠送的商品-- - buy_now_gift_goods: null, - //--订单优惠-- - order_prom: {}, - //-- 购物车优惠活动 -- - prom_goods_map: {}, - //-- order_prom_list -- - order_prom_list_cart: null, - - ispt_goods: 0, //是否平摊至单品,0要平摊 1不平摊 - - rank_switch: 0, //是不是开同等级卡 - show_card: null, //显示的等级卡 - card_name: '', //显示的卡的名称 - card_cut_price: null,//减价多少钱 - - show_submit: 0, //提交按钮变正常显示 - is_get_offline: 1, - - tabs: ['门店自提', '快递邮寄'], - currentTabIndex: 1, - - in_zhact_gdmap: {}, //不同门店参与同一活动的限购 - hid_inp: 1, - user_note: "", - zhhe_act_map: {}, //组合活动的map表 - zuhe_map_good: {}, //组合购的map表 - ladder_map: {}, //阶梯促销的map表 - is_no_past: 1, - state: 0, //阶梯促销的的立即购买也走购物车流程state=1 - show_duo_gift: 0, - send_gf: {}, //多赠品的计算 - send_lb: {}, - dis_config:null, - bn_use_commission:0, //是不是使用佣金 - cart_use_commission:0, - cart_commission:0, - - //订单所有搭配购的 - all_collocation_list:[], - appoint_pick_keyid:'' - + data: { + + url: t.globalData.setting.url, + resourceUrl: t.globalData.setting.resourceUrl, + imgUrl: t.globalData.setting.imghost, + goods: null, + order: null, + orderPrices: null, + coupons: null, + coupon: null, + invoiceToggle: !0, + payWithUserMoney: !0, + payWithPoints: !0, + maxWord: 0, + enterAddressPage: !1, + firstEnter: !0, + //页面获取的参数 + param: null, + //提交订单的格式 + formData: { + order_amount: 0,//支付金额 + total_amount: 0,//总价 + all_price: 0,//商品卖的总价 + pay_points: 0,//使用积分 + user_money: 0,//使用余额 + couponCode: "",//使用优惠券(多单就用逗号隔开) + shipping_price: 0,//物流费用 }, - onLoad: function (t) { - wx.setNavigationBarTitle({ title: "填写订单", }) - var th = this; - this.setData({ is_b_now: t.is_bnow == undefined ? 0 : t.is_bnow, }); - th.data.param = t; - //清理一下,确保最新的系统配置 - getApp().globalData.config2 = null; - //清空is_pick_up - getApp().request.put("/api/weshop/useraddress/updatePickUp", { - data: { user_id: getApp().globalData.user_id, is_pickup: 0 }, - success: function (s) { - } - }); - //阶梯购 或者 组合购的立即购买 - if (t.state) { - th.data.state = 1; - } - getApp().promiseGet("/api/wx/weappSendlist/page", { - data: { - store_id: os.stoid, - typeid: "1001" - } - }).then(res => { - if (res.data.code == 0 && res.data.data.pageData.length > 0) { - var template_id = res.data.data.pageData[0].template_id; - th.setData({ template_id: template_id }); + /*-----------当是购物车结算的时候-------------*/ + cartlist: null, + old_cartlist: null, + cartlist_y: null, //购物车原始列表 + js_use_money: 0, //是否使用余额 + is_all_zt: 1, //是否全部都是自提 + + /*----------------立即购买---------------------*/ + is_b_now: 0, //0是购物车结算 1立即购买 + bn_goods: null, //立即购买时候的调用商品 + bn_use_money: 0,//是否使用余额 + bn_exp_type: 1, //0是物流 1自提 + bn_pick: 0, //选择的门店 + bn_pickname: "", //选择的门店名称 + bn_t_exp_t: 0, //判断商品和门店一起决定的物流自提的方式0 都可以 1自提 2物流 + + bn_plus_cut_price: 0, //显示等级卡会优惠多少钱 + /*------------------------*/ + user_addr: null,//物流 + userinfo: null, //获取会员 + /*----------物流选择--------*/ + wu_arr: null, + index: 0, + w_sele_index: 0, + + //判断页面是返回回来的还是 首次进入的 + isclose: 1, + //申请提现的金额 + txmon: 0, + yuer: 0, + //提交中,不重复提交 + is_summit_ing: 0, + //--更优惠券抵用有关,立即购买的,如果是购物车,就要把相应的值,写入cartlist数组中-- + ckeck_quan_price: 0, + check_quan_price_list: '', + check_quan_ware_list: '', + + // 设计一个数组来存放已经选择了的券编号,coupon_no是券号,money是面值,coupon_price是真正优惠的价格,数组的下标是pickid + //using_quan[11]={coupon_no:"1212121",money:"20",coupon_price:"45"} + using_quan: {}, + open_quan: 0, + //选择的券列表 + selected_quan_list: null, + //选择的券的门店 + selected_quan_pick: null, + is_close_quan: 0, + disabled: 0, + open_express: 0,//控制选择物流名列表 的属性 + + is_express: 0, //选中物流的属性 + expres_name: "", //点击选定 + isopen: 0, //券的说明 + is_coupon: 1, //选择券的控制属性 + is_shipping_code: "",//插入用户默认地址 + wu_arr_txt: "", //要更新的物流的字段 + sales_rules: 1, //默认是显示线上库存 + isget_by_quan: {}, //是否调用了接口获取包邮券 + get_by_quan_list: null, //立即购买的 + get_by_quan_list_cart: {}, //购物车的 + by_quan_list_cart: null, //点击选择的包邮列表 + //如果是全场包邮了,或者是全场不包邮了,就不要选包邮券 + is_no_by: {}, + is_by: {}, + is_quan_by: {}, + //--购买赠送的商品-- + buy_now_gift_goods: null, + //--订单优惠-- + order_prom: {}, + //-- 购物车优惠活动 -- + prom_goods_map: {}, + //-- order_prom_list -- + order_prom_list_cart: null, + + ispt_goods: 0, //是否平摊至单品,0要平摊 1不平摊 + + rank_switch: 0, //是不是开同等级卡 + show_card: null, //显示的等级卡 + card_name: '', //显示的卡的名称 + card_cut_price: null,//减价多少钱 + + show_submit: 0, //提交按钮变正常显示 + is_get_offline: 1, + + tabs: ['门店自提', '快递邮寄'], + currentTabIndex: 1, + + in_zhact_gdmap: {}, //不同门店参与同一活动的限购 + hid_inp: 1, + user_note: "", + zhhe_act_map: {}, //组合活动的map表 + zuhe_map_good: {}, //组合购的map表 + ladder_map: {}, //阶梯促销的map表 + is_no_past: 1, + state: 0, //阶梯促销的的立即购买也走购物车流程state=1 + show_duo_gift: 0, + send_gf: {}, //多赠品的计算 + send_lb: {}, + dis_config: null, + bn_use_commission: 0, //是不是使用佣金 + cart_use_commission: 0, + cart_commission: 0, + + //订单所有搭配购的 + all_collocation_list: [], + appoint_pick_keyid:'' + }, + onLoad: function (t) { + wx.setNavigationBarTitle({ title: "填写订单", }) + var th = this; + this.setData({ is_b_now: t.is_bnow == undefined ? 0 : t.is_bnow, }); + th.data.param = t; + //清理一下,确保最新的系统配置 + getApp().globalData.config2 = null; + //清空is_pick_up + getApp().request.put("/api/weshop/useraddress/updatePickUp", { + data: { user_id: getApp().globalData.user_id, is_pickup: 0 }, + success: function (s) { + } + }); + + //阶梯购 或者 组合购的立即购买 + if (t.state) { + th.data.state = 1; + } + getApp().promiseGet("/api/wx/weappSendlist/page", { + data: { + store_id: os.stoid, + typeid: "1001" + } + }).then(res => { + if (res.data.code == 0 && res.data.data.pageData.length > 0) { + var template_id = res.data.data.pageData[0].template_id; + th.setData({ template_id: template_id }); + } + }) + + //判断是不是佣金抵扣 + getApp().is_distribut(this); + + }, + onUnload: function () { + this.setData({ isclose: 1 }) + }, + onHide: function () { + this.setData({ + isget_by_quan: {}, + is_no_by: {}, + is_by: {}, + send_gf: {}, + send_lb: {}, + }) + }, + + //----------子页返回父页触发---------- + onShow: function () { + var th = this; + th.data.g_cart_q_time = null; + + if (th.data.isclose == 0) { + wx.navigateTo({ + url: "/pages/index/index/index" + }) + + } else { + this.getuser_addr(function (ie) { + console.log("getuser_addr") + console.log(ie) + //地址切换要把包邮券清空 + if (!th.data.user_addr || !ie || th.data.user_addr.address_id != ie.address_id) { + var using_quan = th.data.using_quan; + for (var i in using_quan) { + var item = using_quan[i]; + if (item.isby == 1) { + var ob = {}, txt = "using_quan[" + i + "]"; + ob[txt] = {}; + th.setData(ob); } - }) - - //判断是不是佣金抵扣 - getApp().is_distribut(this); - - }, - onUnload: function () { - this.setData({ isclose: 1 }) - }, - onHide: function () { - this.setData({ - isget_by_quan: {}, - is_no_by: {}, - is_by: {}, - send_gf: {}, - send_lb: {}, - }) - }, - - //----------子页返回父页触发---------- - onShow: function () { - var th = this; - th.data.g_cart_q_time = null; + } + th.data.isget_by_quan = {}; + } - if (th.data.isclose == 0) { - wx.navigateTo({ - url: "/pages/index/index/index" - }) + //th.data.prom_goods_map = {}; + th.data.is_summit_ing = 0; + //更换地址回来要重新调用计算价钱的接口 + if (!th.data.user_addr || th.data.user_addr.address_id != ie.address_id) { + th.setData({ user_addr: ie }); + if (th.data.is_b_now == 1) { + if (th.data.bn_goods) { + th.setData({ add_back: 1 }); + //th.calculatePrice2(); + } + } else { + if (th.data.cartlist) { + th.setData({ add_back: 1 }); + //th.calculatePrice(); + } + } } else { - this.getuser_addr(function (ie) { - console.log("getuser_addr") - console.log(ie) - //地址切换要把包邮券清空 - if (!th.data.user_addr || !ie || th.data.user_addr.address_id != ie.address_id) { - var using_quan = th.data.using_quan; - for (var i in using_quan) { - var item = using_quan[i]; - if (item.isby == 1) { - var ob = {}, txt = "using_quan[" + i + "]"; - ob[txt] = {}; - th.setData(ob); - } - } - th.data.isget_by_quan = {}; - } - + th.setData({ user_addr: ie }); + } + }); + var is_card_back = getApp().globalData.is_card_back; + //--更新默认地址--,看一下是不是跳到地址页面,同时也不是购买等级卡返回的,这里很重要,否则会重新更新收货物流公司 + if (!getApp().globalData.is_cart_old && !is_card_back && !getApp().globalData.plus_buy_back) { + this.update_code(); + } else { + getApp().globalData.is_cart_old = 0; + getApp().globalData.plus_buy_back = 0; + } + } - //th.data.prom_goods_map = {}; - th.data.is_summit_ing = 0; - //更换地址回来要重新调用计算价钱的接口 - if (!th.data.user_addr || th.data.user_addr.address_id != ie.address_id) { - th.setData({ user_addr: ie }); - if (th.data.is_b_now == 1) { - if (th.data.bn_goods) { - th.setData({ add_back: 1 }); - //th.calculatePrice2(); - } - } else { - if (th.data.cartlist) { - th.setData({ add_back: 1 }); - //th.calculatePrice(); - } - } + //先获取是否有关闭使用优惠券 + getApp().getConfig2(function (ee) { + var json_d = JSON.parse(ee.switch_list); + th.data.json_d = json_d; + th.data.ispt_goods = json_d.ispt_goods; //是不是平摊到单品的控制参数赋值 + var is_default_logistics = json_d.is_default_logistics; + var is_same_city = json_d.is_same_city; + + th.setData({ + is_close_quan: json_d.is_close_quan, + sales_rules: ee.sales_rules, + rank_switch: json_d.rank_switch, + is_default_logistics: is_default_logistics, + is_same_city: is_same_city, + appoint_pick_keyid: json_d.appoint_pick_keyid + }); + + var rank_switch = json_d.rank_switch; + var max_price = -1; + var show_card = null; + var name = ""; + //如果有开等级卡的时候, + //因为都是调接口,要返回在计算 + if (rank_switch == 2) { + //-- 获取所有的等级卡, -- + getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?storeId=" + os.stoid, + {}).then(res => { + if (res.data.code == 0) { + var plusCard = res.data.data; + //-- 循环判断,拿到最贵的那张卡 -- + for (var ih in plusCard) { + if (plusCard[ih].IsStopBuy == true) { + continue; + } + if (max_price < 0) { + max_price = plusCard[ih].CardFee; + name = 'card' + plusCard[ih]['CorrPrice']; + show_card = plusCard[ih]; } else { - th.setData({ user_addr: ie }); + if (max_price < plusCard[ih].CardFee) { + max_price = plusCard[ih].CardFee; + name = 'card' + plusCard[ih]['CorrPrice']; + show_card = plusCard[ih]; + } } - }); - var is_card_back = getApp().globalData.is_card_back; - //--更新默认地址--,看一下是不是跳到地址页面,同时也不是购买等级卡返回的,这里很重要,否则会重新更新收货物流公司 - if (!getApp().globalData.is_cart_old && !is_card_back && !getApp().globalData.plus_buy_back) { - this.update_code(); - } else { - getApp().globalData.is_cart_old = 0; - getApp().globalData.plus_buy_back = 0; + } + + if (show_card) { + name = name.toLowerCase(); + th.setData({ card_name: name, show_card: show_card }) + } } + //-----先获取物流,再获取用户信息,再展示页面----- + th.get_wuliu(th.get_info(th.show_page)); + }) + } else { + //-----先获取物流,再获取用户信息,再展示页面----- + th.get_wuliu(th.get_info(th.show_page)); + } + + }, 1); + //值在这里换 + getApp().globalData.plus_buy_back = 0; + }, + + + + + //-------------------获取物流--------------- + get_wuliu(func) { + var th = this; + to.getwuliu(function (e) { + //系统是是否开启了默认的物流 + if (th.data.is_default_logistics) { + //如果第一个不是开启默认,说明要让用户自己选 + if (!e[0].is_default) { + th.setData({ is_default_logistics: 0 }); } - - //先获取是否有关闭使用优惠券 - getApp().getConfig2(function (ee) { - var json_d = JSON.parse(ee.switch_list); - th.data.json_d = json_d; - th.data.ispt_goods = json_d.ispt_goods; //是不是平摊到单品的控制参数赋值 - var is_default_logistics = json_d.is_default_logistics; - var is_same_city = json_d.is_same_city; - - th.setData({ - is_close_quan: json_d.is_close_quan, - sales_rules: ee.sales_rules, - rank_switch: json_d.rank_switch, - is_default_logistics: is_default_logistics, - is_same_city: is_same_city, - appoint_pick_keyid:json_d.appoint_pick_keyid - }); - - var rank_switch = json_d.rank_switch; - var max_price = -1; - var show_card = null; - var name = ""; - //如果有开等级卡的时候, - //因为都是调接口,要返回在计算 - if (rank_switch == 2) { - //-- 获取所有的等级卡, -- - getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?storeId=" + os.stoid, - {}).then(res => { - if (res.data.code == 0) { - var plusCard = res.data.data; - //-- 循环判断,拿到最贵的那张卡 -- - for (var ih in plusCard) { - if (plusCard[ih].IsStopBuy == true) { - continue; - } - if (max_price < 0) { - max_price = plusCard[ih].CardFee; - name = 'card' + plusCard[ih]['CorrPrice']; - show_card = plusCard[ih]; - } else { - if (max_price < plusCard[ih].CardFee) { - max_price = plusCard[ih].CardFee; - name = 'card' + plusCard[ih]['CorrPrice']; - show_card = plusCard[ih]; - } - } - } - - if (show_card) { - name = name.toLowerCase(); - th.setData({ card_name: name, show_card: show_card }) - } - } - //-----先获取物流,再获取用户信息,再展示页面----- - th.get_wuliu(th.get_info(th.show_page)); - }) - } else { - //-----先获取物流,再获取用户信息,再展示页面----- - th.get_wuliu(th.get_info(th.show_page)); + } + th.setData({ wu_arr: e }) + typeof func == "function" && func(); + }) + }, + //------获取会员信息-----先获取用户信息,在进行下一步--- + get_info: function (func) { + var user_id = t.globalData.user_id; + to.auth.get_u(func); + }, + + //------获取会员收货地址----- + getuser_addr: function (func) { + var th = this; + a.get("/api/weshop/useraddress/page", { + data: { user_id: to.globalData.user_id, store_id: oo.stoid, pageSize: 600, t: Math.random() }, + success: function (su) { + + var item = null; + if (su.data.code == 0 && su.data.data && su.data.data.pageData) { + var user_addr = su.data.data.pageData; + var def_item = null; + for (var i = 0; i < user_addr.length; i++) { + if (user_addr[i]['is_default'] == 1) { + def_item = user_addr[i]; } - - }, 1); - //值在这里换 - getApp().globalData.plus_buy_back = 0; - }, - - //-------------------获取物流--------------- - get_wuliu(func) { - var th = this; - to.getwuliu(function (e) { - //系统是是否开启了默认的物流 - if (th.data.is_default_logistics) { - //如果第一个不是开启默认,说明要让用户自己选 - if (!e[0].is_default) { - th.setData({ is_default_logistics: 0 }); - } + if (user_addr[i]['is_pickup'] == 1) { + item = user_addr[i]; } - th.setData({ wu_arr: e }) - typeof func == "function" && func(); - }) - }, - //------获取会员信息-----先获取用户信息,在进行下一步--- - get_info: function (func) { - var user_id = t.globalData.user_id; - to.auth.get_u(func); - }, - - //------获取会员收货地址----- - getuser_addr: function (func) { - var th = this; - a.get("/api/weshop/useraddress/page", { - data: { user_id: to.globalData.user_id, store_id: oo.stoid, pageSize: 600, t: Math.random() }, - success: function (su) { - - var item = null; - if (su.data.code == 0 && su.data.data && su.data.data.pageData) { - var user_addr = su.data.data.pageData; - var def_item = null; - for (var i = 0; i < user_addr.length; i++) { - if (user_addr[i]['is_default'] == 1) { - def_item = user_addr[i]; - } - if (user_addr[i]['is_pickup'] == 1) { - item = user_addr[i]; - } - } - - if (item == null) item = def_item; - if (item == null) item = user_addr[0]; - } + } - if (item == undefined) item = null; - if (!item) th.setData({ user_addr: null }); //地址为空的时候,要清空,因为返回的时候,有缓存 + if (item == null) item = def_item; + if (item == null) item = user_addr[0]; + } - func(item); + if (item == undefined) item = null; + if (!item) th.setData({ user_addr: null }); //地址为空的时候,要清空,因为返回的时候,有缓存 + + func(item); + } + }); + }, + + //----------------展示页面,是再获取用户信息之后-------------- + show_page: function () { + var th = this, ta = this.data.param; + + //会员的信息,要获取最新 + var user = getApp().globalData.userInfo; + getApp().request.get("/api/weshop/users/get/" + oo.stoid + "/" + user.user_id, { + data: { r: Math.random() }, + success: function (e) { + getApp().globalData.userInfo = e.data.data; + th.setData({ userinfo: e.data.data }); + + //选获取地址 + th.getuser_addr(function (addr) { + th.setData({ user_addr: addr }); + //--------------------------立即购买------------------ + if (ta.is_bnow == 1) { + //读取门店 + //to.get_allsto(function (e) { + //th.setData({ allsto: e }); + //获取立即购买的商品信息 + th.get_buy_goods(ta.goods_id); + //}); + } else { + //------------------------购物车结算---------------------- + //读取门店 + //to.get_allsto(function (e) { + //th.setData({ allsto: e }); + //-------获取购物车已经选择的商品-------- + if (!th.data.old_cartlist) { + th.data.prom_goods_map = {}; + th.get_cart(); + } + else { + th.calculatePrice(); } + //}) + } }); - }, - - //----------------展示页面,是再获取用户信息之后-------------- - show_page: function () { - var th = this, ta = this.data.param; - - //会员的信息,要获取最新 - var user = getApp().globalData.userInfo; - getApp().request.get("/api/weshop/users/get/" + oo.stoid + "/" + user.user_id, { - data: { r: Math.random() }, - success: function (e) { - getApp().globalData.userInfo = e.data.data; - th.setData({ userinfo: e.data.data }); - - //选获取地址 - th.getuser_addr(function (addr) { - th.setData({ user_addr: addr }); - //--------------------------立即购买------------------ - if (ta.is_bnow == 1) { - //读取门店 - //to.get_allsto(function (e) { - //th.setData({ allsto: e }); - //获取立即购买的商品信息 - th.get_buy_goods(ta.goods_id); - //}); - } else { - //------------------------购物车结算---------------------- - //读取门店 - //to.get_allsto(function (e) { - //th.setData({ allsto: e }); - //-------获取购物车已经选择的商品-------- - if(!th.data.old_cartlist){ - th.data.prom_goods_map = {}; - th.get_cart(); - } - else{ - th.calculatePrice(); - } - //}) - } - }); - - //获取提现金额 - getApp().request.get("/api/weshop/withdrawals/summoney", { - data: { user_id: to.globalData.user_id, store_id: oo.stoid, status: 0 }, - success: function (su) { - if (su.data.code == 0) { - var yuer = parseFloat(th.data.userinfo.user_money - - (th.data.userinfo.frozen_money > 0 ? th.data.userinfo.frozen_money : 0) - su.data.data.summoney).toFixed(2); - th.setData({ txmon: su.data.data.summoney, yuer: yuer }); - } - } - }); - }, + //获取提现金额 + getApp().request.get("/api/weshop/withdrawals/summoney", { + data: { user_id: to.globalData.user_id, store_id: oo.stoid, status: 0 }, + success: function (su) { + if (su.data.code == 0) { + var yuer = parseFloat(th.data.userinfo.user_money - + (th.data.userinfo.frozen_money > 0 ? th.data.userinfo.frozen_money : 0) - su.data.data.summoney).toFixed(2); + th.setData({ txmon: su.data.data.summoney, yuer: yuer }); + } + } }); - }, - - //-- 获取搭配购商品 -- - async set_collection(gd,arr,index){ - var th=this; - var user_id=getApp().globalData.user_id; - var collocation_list=[]; - var pick=null; - var distr_t=0; - - //如果是购物车的时候, - if(arr) { - var idx = th.data.allsto.findIndex(function (e) { - return e.pickup_id == arr[index].pick_id - }) - pick = th.data.allsto[idx]; - var get_gd=null; - await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + gd.goods_id,{ - - }).then(res1 => { - if(res1.data.code==0){ - get_gd=res1.data.data; - } - }) - distr_t=pick.distr_type || get_gd.distr_type; - - }else{ - var gg=to.get_b_now(); - //---获取门店--- - await getApp().request.promiseGet("/api/weshop/pickup/get/" + oo.stoid + "/" + gg.pick_id, {}) - .then(res => { - pick = res.data.data; - }); - distr_t=gd.distr_type || pick.distr_type; + }, + }); + + }, + + //-- 获取搭配购商品 -- + async set_collection(gd, arr, index) { + var th = this; + var user_id = getApp().globalData.user_id; + var collocation_list = []; + var pick = null; + var distr_t = 0; + + //如果是购物车的时候, + if (arr) { + var idx = th.data.allsto.findIndex(function (e) { + return e.pickup_id == arr[index].pick_id + }) + pick = th.data.allsto[idx]; + var get_gd = null; + await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + gd.goods_id, { + + }).then(res1 => { + if (res1.data.code == 0) { + get_gd = res1.data.data; } + }) + distr_t = pick.distr_type || get_gd.distr_type; + + } else { + var gg = to.get_b_now(); + //---获取门店--- + await getApp().request.promiseGet("/api/weshop/pickup/get/" + oo.stoid + "/" + gg.pick_id, {}) + .then(res => { + pick = res.data.data; + }); + distr_t = gd.distr_type || pick.distr_type; + } - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" - + os.stoid + "/" + gd.goods_id + "/0/"+user_id, { - }).then(res => { - if(res.data.code==0 && res.data.data){ - var r_data = res.data.data; - if (r_data.collocationList) { - collocation_list=r_data.collocationList; - } - } - }) - - if(!collocation_list) return null; - - var new_arr=[]; - for (let i = 0; i { + if (res.data.code == 0 && res.data.data) { + var r_data = res.data.data; + if (r_data.collocationList) { + collocation_list = r_data.collocationList; } + } + }) + + if (!collocation_list) return null; + + var new_arr = []; + for (let i = 0; i < collocation_list.length; i++) { + var item0 = collocation_list[i]; + //判断物流配送一样的 + if (item0.distr_type == 0 || item0.distr_type == distr_t) { + new_arr.push(item0); + } + } - if(!new_arr.length) return null; - if(arr) { - arr[index].collocationList=new_arr; + if (!new_arr.length) return null; + if (arr) { + arr[index].collocationList = new_arr; + } + else th.setData({ + all_collocation_list: new_arr + }) + + }, + + //-----真的获取购物车,入口-------- + get_cart: function () { + var th = this, app = getApp(); + var state = 0; + if (th.data.state) state = 1; + a.get("/api/weshop/cart/list", { + data: { + user_id: to.globalData.user_id, selected: 1, state: state, + store_id: oo.stoid, pageSize: 600 + }, + success: async function (su) { + //按门店分类的数组 + var arr = new Array(); + var carr = su.data.data.pageData; + + th.setData({ is_all_zt: 1 }); + + //-- 找出所有的门店 -- + var pick_id_arr = []; var len = carr.length; + for (var i = 0; i < len; i++) { + if (pick_id_arr.length == 0 || pick_id_arr.indexOf(carr[i].pick_id) == -1) + pick_id_arr.push(carr[i].pick_id); + } + var req_d = { + store_id: os.stoid, ids: pick_id_arr.join(',') } - else th.setData({ - all_collocation_list:new_arr + //-- 获取门店的列表 -- + await getApp().request.promiseGet("/api/weshop/pickup/list", { data: req_d }).then(res => { + if (ut.ajax_ok(res)) { + th.data.allsto = res.data.data.pageData; + } }) - }, + th.data.cartlist_y = carr; //存储原始购物车列表 + th.data.in_zhact_gdmap = {}; - //-----真的获取购物车,入口-------- - get_cart: function () { - var th = this, app = getApp(); - var state = 0; - if (th.data.state) state = 1; - a.get("/api/weshop/cart/list", { + //---是不是购买等级卡成功的返回---等级卡显示的判断--- + var is_card_back = getApp().globalData.is_card_back; + + for (var i = 0; i < carr.length; i++) { + var item1 = carr[i]; + //把已经购买了多少见的内容填入 + + var goodsbuynum = 0, promgoodsbuynum = 0; + //--要获得商品,该用户买了多少件,同步应用-- + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { data: { - user_id: to.globalData.user_id, selected: 1, state: state, - store_id: oo.stoid, pageSize: 600 + store_id: os.stoid, + user_id: getApp().globalData.user_id, + goods_id: item1.goods_id, + prom_type: item1.prom_type, + prom_id: item1.prom_id }, - success: async function (su) { - //按门店分类的数组 - var arr = new Array(); - var carr = su.data.data.pageData; - - th.setData({ is_all_zt: 1 }); - - //-- 找出所有的门店 -- - var pick_id_arr=[]; var len=carr.length; - for(var i=0;i{ - if(ut.ajax_ok(res)){ - th.data.allsto=res.data.data.pageData; + }).then(res => { + var buy_num_data = res.data.data; + if (buy_num_data.promgoodsbuynum) { + promgoodsbuynum = buy_num_data.promgoodsbuynum; + } + goodsbuynum = buy_num_data.goodsbuynum; + }) + //如果有购买活动 + item1.promgoodsbuynum = promgoodsbuynum; + + //要把优惠活动加入,prom_goods_map中,赠品不要运算,代发商品不算优惠 + if (item1.prom_type == 3 && item1.is_gift != 1 && !item1.whsle_id) { + // th.check_is_youhui(item1.goods_id, item1.pick_id); + await th.add_prom_goods_map(item1); + } + + //要把组合购的东西拿出来算一下 + if (item1.prom_type == 7) { + if (!th.data.zuhe_map_good[item1.prom_id]) { + var isok = 1; + var is_flag = 1; + //如果有组合购 + var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + item1.prom_id + '/' + getApp().globalData.userInfo.user_id; + await getApp().request.promiseGet(url, {}).then(res => { + if (res.data.code == 0 && res.data.data) { + //如果活动已经结束 + if (res.data.data.is_end == 1) { + isok = 0; } - }) - - th.data.cartlist_y = carr; //存储原始购物车列表 - th.data.in_zhact_gdmap = {}; - - //---是不是购买等级卡成功的返回---等级卡显示的判断--- - var is_card_back = getApp().globalData.is_card_back; - - for (var i = 0; i < carr.length; i++) { - var item1 = carr[i]; - //把已经购买了多少见的内容填入 - - var goodsbuynum = 0, promgoodsbuynum = 0; - //--要获得商品,该用户买了多少件,同步应用-- - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { - data: { - store_id: os.stoid, - user_id: getApp().globalData.user_id, - goods_id: item1.goods_id, - prom_type: item1.prom_type, - prom_id: item1.prom_id - }, - }).then(res => { - var buy_num_data = res.data.data; - if (buy_num_data.promgoodsbuynum) { - promgoodsbuynum = buy_num_data.promgoodsbuynum; - } - goodsbuynum = buy_num_data.goodsbuynum; - }) - //如果有购买活动 - item1.promgoodsbuynum = promgoodsbuynum; - - //要把优惠活动加入,prom_goods_map中,赠品不要运算,代发商品不算优惠 - if (item1.prom_type == 3 && item1.is_gift != 1 && !item1.whsle_id) { - // th.check_is_youhui(item1.goods_id, item1.pick_id); - await th.add_prom_goods_map(item1); - } - - //要把组合购的东西拿出来算一下 - if (item1.prom_type == 7) { - if (!th.data.zuhe_map_good[item1.prom_id]) { - var isok = 1; - var is_flag = 1; - //如果有组合购 - var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + item1.prom_id + '/' + getApp().globalData.userInfo.user_id; - await getApp().request.promiseGet(url, {}).then(res => { - if (res.data.code == 0 && res.data.data) { - //如果活动已经结束 - if (res.data.data.is_end == 1) { - isok = 0; - } - if (ut.gettimestamp() > res.data.data.end_time) { - isok = 0; - } - item1.act = res.data.data; - th.data.zhhe_act_map[item1.prom_id] = res.data.data; - } else { - //未找到商品的活动 - is_flag = 0; - } - }) - if (!isok) { - getApp().my_warnning("组合购的活动已经过期", 0, th); - return false; - } - var url1 = "/api/weshop/prom/zhbuyGoods/page"; - var req_data = { - page: 1, - pageSize: 2000, - store_id: os.stoid, - zh_id: item1.prom_id, - } - await getApp().request.promiseGet(url1, { - data: req_data - }).then(res => { - if (ut.ajax_ok(res)) { - var gdlist = res.data.data.pageData; - gdlist.forEach(i => { - if (item1.goods_id == i.goods_id && !is_flag) { - item1.prom_type = 0; - item1.prom_type1 = 0; - item1.prom_id = 0; - item1.prom_id1 = 0 - } - }) - th.data.zuhe_map_good[item1.prom_id] = gdlist; - } - }) - } - else { - item1.act = th.data.zhhe_act_map[item1.prom_id]; - } - } - if (item1.prom_type == 10) { - if (!th.data.ladder_map[item1.prom_id]) { - //如果有预售 - var isok = 1; - var is_flag = 1; - var act = null; - var url = "/api/weshop/prom/ladderForm/get/" + os.stoid + "/" + item1.prom_id; - await getApp().request.promiseGet(url, {}).then(res => { - console.log(res, 1000); - if (res.data.code == 0 && res.data.data) { - if (res.data.data.isuse != 1) { - isok = 0; - } - //如果活动已经结束 - if (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.data.ladder_map[item1.prom_id] = -1; - continue; - } - th.data.ladder_map[item1.prom_id] = act; - - //-- 获取阶梯规则 -- - var url1 = "/api/weshop/prom/ladderList/list"; - var req_data = { - store_id: os.stoid, - form_id: item1.prom_id, - } - await getApp().request.promiseGet(url1, { - data: req_data - }).then(rs1 => { - if (rs1.data.code == 0 && rs1.data.data) { - var gdlist = rs1.data.data; - th.data.ladder_map[item1.prom_id].ladder_list = gdlist; - } - }) - } - } - //-- 判断一下,获取搭配购的消息 -- - if((item1.prom_type==0 || item1.prom_type==5) && (!carr[i].collocationList || !carr[i].collocationList.length)) { - - await th.set_collection(item1,carr,i); - } + if (ut.gettimestamp() > res.data.data.end_time) { + isok = 0; + } + item1.act = res.data.data; + th.data.zhhe_act_map[item1.prom_id] = res.data.data; + } else { + //未找到商品的活动 + is_flag = 0; } - - //在分组的时候,就不要再调用接口,await - for (var i = 0; i < carr.length; i++) { - var item = carr[i]; - //-- 如果是等级会员注册返回 -- - if (is_card_back) { - th.data.card_name = th.data.userinfo.card_field; - //如果是秒杀的返回,就要把活动弄回0 - if (item['prom_type'] == 1) { - item['prom_type'] = 0; - item['prom_id'] = 0; - } - // 拼团,搭配购不计算,赠品也不计算 - if (item['prom_type'] != 5 && item['prom_type'] != 6 && !item.is_gift && !item['is_collocation'] && item.goods_price > item[th.data.card_name]) { - item.goods_price = item[th.data.card_name]; - carr[i].goods_price = item[th.data.card_name]; - - } - } else { - // 拼团,搭配购不计算,赠品也不计算,同时会员还未购买等级会员 - if (item[th.data.card_name] > 0 && item['prom_type'] != 5 && item['prom_type'] != 6 && !th.data.userinfo.card_field - && !item.is_gift && !item['is_collocation'] && item.goods_price > item[th.data.card_name]) { - item.cut_price1 = item.goods_price - item[th.data.card_name]; - carr[i].cut_price1 = (item.goods_price - item[th.data.card_name]) * item.goods_num; - } - + }) + if (!isok) { + getApp().my_warnning("组合购的活动已经过期", 0, th); + return false; + } + var url1 = "/api/weshop/prom/zhbuyGoods/page"; + var req_data = { + page: 1, + pageSize: 2000, + store_id: os.stoid, + zh_id: item1.prom_id, + } + await getApp().request.promiseGet(url1, { + data: req_data + }).then(res => { + if (ut.ajax_ok(res)) { + var gdlist = res.data.data.pageData; + gdlist.forEach(i => { + if (item1.goods_id == i.goods_id && !is_flag) { + item1.prom_type = 0; + item1.prom_type1 = 0; + item1.prom_id = 0; + item1.prom_id1 = 0 } + }) + th.data.zuhe_map_good[item1.prom_id] = gdlist; + } + }) + } + else { + item1.act = th.data.zhhe_act_map[item1.prom_id]; + } + } + if (item1.prom_type == 10) { + if (!th.data.ladder_map[item1.prom_id]) { + //如果有预售 + var isok = 1; + var is_flag = 1; + var act = null; + var url = "/api/weshop/prom/ladderForm/get/" + os.stoid + "/" + item1.prom_id; + await getApp().request.promiseGet(url, {}).then(res => { + console.log(res, 1000); + if (res.data.code == 0 && res.data.data) { + if (res.data.data.isuse != 1) { + isok = 0; + } + //如果活动已经结束 + if (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; - item.original_img = oo.imghost + item.original_img; - - var car_item = item; - /*----接口要弄出来的,先顶着-----*/ - var pcid = car_item.pick_id; - var find = 0; - //----如果有就加进去,没有就新增一个---- - //-----------循环查找门店------------- - if (arr.length > 0) { - for (var j = 0; j < arr.length; j++) { - if (arr[j].pickup_id == pcid) { - if (item.is_gift != 1) { - //确定配送方式 - if (arr[j].distr_t == 0) { - arr[j].distr_t = car_item.distr_type; - } - var e_t = 0 - switch (arr[j].distr_t) { - case 0: - e_t = 1; - if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) e_t = 0; - break; - case 1: - e_t = 1; - break; - case 2: - e_t = 0; - break; - } - arr[j].exp_type = e_t; - if (e_t == 0) th.setData({ is_all_zt: 0 }); - //else if (e_t == 1) th.setData({ is_all_zt: 1 }); - } - - //-- 把等级卡会优惠多少钱装进去 -- - if (car_item.cut_price1) arr[j].card_cut_price += car_item.cut_price1; - - arr[j].goods.push(car_item); - if(car_item.collocationList){ - - if(!arr[j].collocationList) arr[j].collocationList=cart_item.collocationList; - else{ - var arr_new=[...arr[j].collocationList,...cart_item.collocationList]; - arr[j].collocationList=arr_new; - } - } - - - - find = 1; - break; - } - } - } - //------如果没有找到----- - if (find == 0) { - var pikname = '', sto = null; - //----找到门店名称----- - for (var k = 0; k < th.data.allsto.length; k++) { - if (pcid == th.data.allsto[k].pickup_id) { - pikname = th.data.allsto[k].pickup_name; - sto = th.data.allsto[k]; - break; - } - } - var e_t = 0, dis_t = 0;//物流方式,配送方式 - if (item.distr_type == 0) { - dis_t = sto.distr_type; - } else { - dis_t = item.distr_type; - } - switch (dis_t) { - case 0: - e_t = 1; - //-- 系统后台有设置要默认的 -- - if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) e_t = 0; - break; - case 1: - e_t = 1; - break; - case 2: - e_t = 0; - break; - } - //如果是物流的话,全部自提的控制要弄成0 - if (e_t == 0) th.setData({ is_all_zt: 0 }); - //else th.setData({ is_all_zt: 1 }); - - var narr = new Array(); - narr.push(car_item); - - //-----------拼装购物车结算的数组,如果有默认物流时要用默认物流编号,计算默认的物流,不管是不是自提都算一下----------------- - var m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code; - if (def_exp_code) { - for (var k = 0; k < th.data.wu_arr.length; k++) { - var item = th.data.wu_arr[k]; - if (def_exp_code == item.code) { - m_wind = k; - } - } - } - - - var ie = { - pickup_id: pcid, - pname: pikname, - goods: narr, - wind: m_wind, - distr_t: dis_t, - card_cut_price: 0, - exp_type: e_t, - goods_price: 0, - shipping_price: 0, - user_money: 0, - total_amount: 0, - order_amount: 0, - user_note: "", - sto:sto - }; - - //-- 把等级卡会优惠多少钱装进去 -- - if (car_item.cut_price1) ie.card_cut_price += car_item.cut_price1; - - if(car_item.collocationList) { - - ie.collocationList = car_item.collocationList; - } - - - arr.push(ie); - } + } else { + //未找到商品的活动 + is_flag = 0; } - //-- 如果是回退回来的情况 -- - if (th.data.cartlist && th.data.cartlist.length > 0) { - for (var kj in th.data.cartlist) { - for (var ih in arr) { - var ie = arr[ih]; - if (ie.pickup_id == th.data.cartlist[kj].pickup_id) { - ie.exp_type = parseInt(th.data.cartlist[kj].exp_type); - ie.wind = parseInt(th.data.cartlist[kj].wind); - - //-- 是不是全部自提清空 -- - if (ie.exp_type == 0 || ie.exp_type == 2) th.setData({ is_all_zt: 0 }); - break; - } - } - } + }) + if (!isok) { + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; + getApp().request.delete(url, {}); + th.data.ladder_map[item1.prom_id] = -1; + continue; + } + th.data.ladder_map[item1.prom_id] = act; + + //-- 获取阶梯规则 -- + var url1 = "/api/weshop/prom/ladderList/list"; + var req_data = { + store_id: os.stoid, + form_id: item1.prom_id, + } + await getApp().request.promiseGet(url1, { + data: req_data + }).then(rs1 => { + if (rs1.data.code == 0 && rs1.data.data) { + var gdlist = rs1.data.data; + th.data.ladder_map[item1.prom_id].ladder_list = gdlist; } + }) + } + } + //-- 判断一下,获取搭配购的消息 -- + if ((item1.prom_type == 0 || item1.prom_type == 5) && (!carr[i].collocationList || !carr[i].collocationList.length)) { - var cart_commission=0; - //-- 循环计算一下线下取价 -- - for (var k = 0; k < arr.length; k++) { - var c_item = arr[k]; - var item = arr[k].goods; - var offline_price = 0; - var offline_num = 0; - //计算佣金的商品 - var commission_gds=[]; - for (var c = 0; c < item.length; c++) { - - if(!item[c].is_gift){ - var hr={ - goods_id:item[c].goods_id, - goods_num:item[c].goods_num, - prom_type:item[c].prom_type, - prom_id:item[c].prom_id, - } - commission_gds.push(hr); - } - if (th.data.sales_rules != 2) { - item[c].offline_price = 0; - } - //-- 如果这个商品是线下取价的时候 -- - if (item[c].offline_price > 0 && item[c].prom_type != 7) { - offline_price += (item[c].goods_price - item[c].offline_price) * item[c].goods_num; - offline_num += item[c].goods_num; - } - } - if (offline_price > 0) { - c_item.offline_price = offline_price; - c_item.offline_num = offline_num; - c_item.is_offline = 1; - } + await th.set_collection(item1, carr, i); + } + } - //获取购物车的佣金,此处要优化调用接口,获取佣金 - var req_d = { - user_id:getApp().globalData.user_id,goods_ids:commission_gds,store_id: os.stoid - } - var back_data=null; - await getApp().request.promisePost("/api/weshop/order/getrebateSum", { - is_json: 1, data: req_d - }).then(rs => { - if (rs.data.code == 0) back_data =rs.data.data; - }); + //在分组的时候,就不要再调用接口,await + for (var i = 0; i < carr.length; i++) { + var item = carr[i]; + //-- 如果是等级会员注册返回 -- + if (is_card_back) { + th.data.card_name = th.data.userinfo.card_field; + //如果是秒杀的返回,就要把活动弄回0 + if (item['prom_type'] == 1) { + item['prom_type'] = 0; + item['prom_id'] = 0; + } + // 拼团,搭配购不计算,赠品也不计算 + if (item['prom_type'] != 5 && item['prom_type'] != 6 && !item.is_gift && !item['is_collocation'] && item.goods_price > item[th.data.card_name]) { + item.goods_price = item[th.data.card_name]; + carr[i].goods_price = item[th.data.card_name]; - if(back_data && parseFloat(back_data)) { - c_item.can_usecommise = parseFloat(back_data); - cart_commission += c_item.can_usecommise; - } + } + } else { + // 拼团,搭配购不计算,赠品也不计算,同时会员还未购买等级会员 + if (item[th.data.card_name] > 0 && item['prom_type'] != 5 && item['prom_type'] != 6 && !th.data.userinfo.card_field + && !item.is_gift && !item['is_collocation'] && item.goods_price > item[th.data.card_name]) { + item.cut_price1 = item.goods_price - item[th.data.card_name]; + carr[i].cut_price1 = (item.goods_price - item[th.data.card_name]) * item.goods_num; + } + } + + item.original_img = oo.imghost + item.original_img; + + var car_item = item; + /*----接口要弄出来的,先顶着-----*/ + var pcid = car_item.pick_id; + var find = 0; + //----如果有就加进去,没有就新增一个---- + //-----------循环查找门店------------- + if (arr.length > 0) { + for (var j = 0; j < arr.length; j++) { + if (arr[j].pickup_id == pcid) { + if (item.is_gift != 1) { + //确定配送方式 + if (arr[j].distr_t == 0) { + arr[j].distr_t = car_item.distr_type; + } + var e_t = 0 + switch (arr[j].distr_t) { + case 0: + e_t = 1; + if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) e_t = 0; + break; + case 1: + e_t = 1; + break; + case 2: + e_t = 0; + break; + } + arr[j].exp_type = e_t; + if (e_t == 0) th.setData({ is_all_zt: 0 }); + //else if (e_t == 1) th.setData({ is_all_zt: 1 }); } - if(cart_commission){ - th.setData({cart_commission}); - } + //-- 把等级卡会优惠多少钱装进去 -- + if (car_item.cut_price1) arr[j].card_cut_price += car_item.cut_price1; - //每一个门店内的组合购要进行拆分, - //还得把组合商品的多余商品的线下价格算一算 - for (let var1 in arr) { - var u_item = arr[var1]; - //把组合购进行分组 - var obj = zh_calc.find_split(u_item); - if (!obj) continue; - //存储不同活动的商品列表 - u_item.zh_prom_goods = {}; - for (let var1 in obj) { - var h_item = obj[var1]; - var gdlist = th.data.zuhe_map_good[h_item.prom_id]; - //获取活动需要的商品列表 - u_item.zh_prom_goods[h_item.prom_id] = { gdlist: gdlist, act: h_item.act }; - } - zh_calc.fir_set_arr(u_item, th); - } + arr[j].goods.push(car_item); + if (car_item.collocationList) { - //每一个门店内的阶梯促销要进行拆分, - //还得把阶梯促销商品的多余商品的线下价格算一算 - for (let var1 in arr) { - //把阶梯促销进行分组 - var obj = ladder_calc.find_split(u_item); - if (!obj) continue; - //存储不同阶梯促销活动的商品列表 - u_item.ladder_map = {}; - for (let var1 in obj) { - var h_item = obj[var1]; - var act = th.data.ladder_map[h_item.prom_id]; - //获取活动需要的商品列表 - u_item.ladder_map[h_item.prom_id] = act; - } - ladder_calc.fir_set_arr(u_item, th); + if (!arr[j].collocationList) arr[j].collocationList = cart_item.collocationList; + else { + var arr_new = [...arr[j].collocationList, ...cart_item.collocationList]; + arr[j].collocationList = arr_new; + } } - //----- 判断每一个商品的配送方式,和门店的配送方式 ------- - for(var ik=0;ik0 - }) - if(!fd || fd.length==0){ - arr[ik].show_same_city=1; - } + find = 1; + break; + } + } + } + //------如果没有找到----- + if (find == 0) { + var pikname = '', sto = null; + //----找到门店名称----- + for (var k = 0; k < th.data.allsto.length; k++) { + if (pcid == th.data.allsto[k].pickup_id) { + pikname = th.data.allsto[k].pickup_name; + sto = th.data.allsto[k]; + break; + } + } + var e_t = 0, dis_t = 0;//物流方式,配送方式 + if (item.distr_type == 0) { + dis_t = sto.distr_type; + } else { + dis_t = item.distr_type; + } + switch (dis_t) { + case 0: + e_t = 1; + //-- 系统后台有设置要默认的 -- + if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) e_t = 0; + break; + case 1: + e_t = 1; + break; + case 2: + e_t = 0; + break; + } + //如果是物流的话,全部自提的控制要弄成0 + if (e_t == 0) th.setData({ is_all_zt: 0 }); + //else th.setData({ is_all_zt: 1 }); + + var narr = new Array(); + narr.push(car_item); + + //-----------拼装购物车结算的数组,如果有默认物流时要用默认物流编号,计算默认的物流,不管是不是自提都算一下----------------- + var m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code; + if (def_exp_code) { + for (var k = 0; k < th.data.wu_arr.length; k++) { + var item = th.data.wu_arr[k]; + if (def_exp_code == item.code) { + m_wind = k; } + } + } - //深拷贝 - th.data.old_cartlist = JSON.parse(JSON.stringify(arr)); - th.setData({ - cartlist: arr, - }); - //--- 获取一下看有没有优惠券 ---- - setTimeout(function () { - var frozenQuan = null; - var url0 = "/api/weshop/users/frozenQuan/listFrozenQuan/" + app.globalData.user_id; - app.request.promiseGet(url0, { 1: 1 }).then(res => { - if (res.data.code == 0) { - frozenQuan = res.data.data; - th.data.frozenQuan = frozenQuan; - } - th.calculatePrice(); - th.get_cart_quan(); - }) + var ie = { + pickup_id: pcid, + pname: pikname, + goods: narr, + wind: m_wind, + distr_t: dis_t, + card_cut_price: 0, + exp_type: e_t, + goods_price: 0, + shipping_price: 0, + user_money: 0, + total_amount: 0, + order_amount: 0, + user_note: "", + sto: sto + }; + + //-- 把等级卡会优惠多少钱装进去 -- + if (car_item.cut_price1) ie.card_cut_price += car_item.cut_price1; - }, 500) + if (car_item.collocationList) { + ie.collocationList = car_item.collocationList; } - }); - }, - //-----获取立即购买的商品信息,入口---- - get_buy_goods: function (e) { - var th = this; - var gg = to.get_b_now(); - //--------如果goods_id一样,就是要立即购买----- - if (e == gg.goods_id) { - a.get("/api/weshop/goods/get/" + oo.stoid + "/" + e, { - success: async function (t) { - var gd = t.data.data; - if (!gd) return false; - - //-- 如果商品有同城配送的参数的时候,一件代发商品不能显示同城配送按钮 -- - if(gd.is_same_city && th.data.is_same_city && gd.whsle_id<=0){ - - await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+gg.pick_id, {}).then(res=>{ - if(res.data.code==0){ - var pk=res.data.data; - if(pk && pk.is_same_city){ - th.setData({show_same_city:1}) - } - } - - }) - } + arr.push(ie); + } + } + //-- 如果是回退回来的情况 -- + if (th.data.cartlist && th.data.cartlist.length > 0) { + for (var kj in th.data.cartlist) { + for (var ih in arr) { + var ie = arr[ih]; + if (ie.pickup_id == th.data.cartlist[kj].pickup_id) { + ie.exp_type = parseInt(th.data.cartlist[kj].exp_type); + ie.wind = parseInt(th.data.cartlist[kj].wind); + + //-- 是不是全部自提清空 -- + if (ie.exp_type == 0 || ie.exp_type == 2) th.setData({ is_all_zt: 0 }); + break; + } + } + } + } - t.data.data.original_img = oo.imghost + t.data.data.original_img; - t.data.data['buynum'] = gg.goods_num; - var distr_t = 0, et = 0 + var cart_commission = 0; + //-- 循环计算一下线下取价 -- + for (var k = 0; k < arr.length; k++) { + var c_item = arr[k]; + var item = arr[k].goods; + var offline_price = 0; + var offline_num = 0; + //计算佣金的商品 + var commission_gds = []; + for (var c = 0; c < item.length; c++) { + + if (!item[c].is_gift) { + var hr = { + goods_id: item[c].goods_id, + goods_num: item[c].goods_num, + prom_type: item[c].prom_type, + prom_id: item[c].prom_id, + } + commission_gds.push(hr); + } + if (th.data.sales_rules != 2) { + item[c].offline_price = 0; + } + //-- 如果这个商品是线下取价的时候 -- + if (item[c].offline_price > 0 && item[c].prom_type != 7) { + offline_price += (item[c].goods_price - item[c].offline_price) * item[c].goods_num; + offline_num += item[c].goods_num; + } + } + if (offline_price > 0) { + c_item.offline_price = offline_price; + c_item.offline_num = offline_num; + c_item.is_offline = 1; + } + + //获取购物车的佣金,此处要优化调用接口,获取佣金 + var req_d = { + user_id: getApp().globalData.user_id, goods_ids: commission_gds, store_id: os.stoid + } + var back_data = null; + await getApp().request.promisePost("/api/weshop/order/getrebateSum", { + is_json: 1, data: req_d + }).then(rs => { + if (rs.data.code == 0) back_data = rs.data.data; + }); - if(t.data.data.is_minishop==1 && getApp().is_sp_hao()){ + if (back_data && parseFloat(back_data)) { + c_item.can_usecommise = parseFloat(back_data); + cart_commission += c_item.can_usecommise; + } - if(t.data.data.distr_type==1 || gg.pick_dis==1) { - wx.showToast({ - title: "视频号仅支持物流", - icon: 'none', - duration: 2000 - }) + } - setTimeout(function(){ - wx.navigateBack({delta: 1}) - },1000) + if (cart_commission) { + th.setData({ cart_commission }); + } - return false - } + //每一个门店内的组合购要进行拆分, + //还得把组合商品的多余商品的线下价格算一算 + for (let var1 in arr) { + var u_item = arr[var1]; + //把组合购进行分组 + var obj = zh_calc.find_split(u_item); + if (!obj) continue; + //存储不同活动的商品列表 + u_item.zh_prom_goods = {}; + for (let var1 in obj) { + var h_item = obj[var1]; + var gdlist = th.data.zuhe_map_good[h_item.prom_id]; + //获取活动需要的商品列表 + u_item.zh_prom_goods[h_item.prom_id] = { gdlist: gdlist, act: h_item.act }; + } + zh_calc.fir_set_arr(u_item, th); + } - t.data.data.distr_type=2; - th.setData({show_same_city:0}) + //每一个门店内的阶梯促销要进行拆分, + //还得把阶梯促销商品的多余商品的线下价格算一算 + for (let var1 in arr) { + //把阶梯促销进行分组 + var obj = ladder_calc.find_split(u_item); + if (!obj) continue; + //存储不同阶梯促销活动的商品列表 + u_item.ladder_map = {}; + for (let var1 in obj) { + var h_item = obj[var1]; + var act = th.data.ladder_map[h_item.prom_id]; + //获取活动需要的商品列表 + u_item.ladder_map[h_item.prom_id] = act; + } + ladder_calc.fir_set_arr(u_item, th); + } - } - if (t.data.data.distr_type == 0) { - distr_t = gg.pick_dis; - } else { - distr_t = t.data.data.distr_type; - } + //----- 判断每一个商品的配送方式,和门店的配送方式 ------- + for (var ik = 0; ik < arr.length; ik++) { + if (!arr[ik].sto.is_same_city) continue; + var fd = arr[ik].goods.filter(function (e) { + return e.is_same_city != 1 || e.whsle_id > 0 + }) + if (!fd || fd.length == 0) { + arr[ik].show_same_city = 1; + } + } - switch (distr_t) { - case 0: - et = 1; - //-- 系统后台有设置要默认的 -- - if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) et = 0; - break; - case 1: - et = 1; - break; - case 2: - et = 0; - break; - } + //深拷贝 + th.data.old_cartlist = JSON.parse(JSON.stringify(arr)); + th.setData({ + cartlist: arr, + }); + //--- 获取一下看有没有优惠券 ---- + setTimeout(function () { + var frozenQuan = null; + var url0 = "/api/weshop/users/frozenQuan/listFrozenQuan/" + app.globalData.user_id; + app.request.promiseGet(url0, { 1: 1 }).then(res => { + if (res.data.code == 0) { + frozenQuan = res.data.data; + th.data.frozenQuan = frozenQuan; + } + th.calculatePrice(); + th.get_cart_quan(); + }) + + }, 500) + + } + }); + }, + + //-----获取立即购买的商品信息,入口---- + get_buy_goods: function (e) { + var th = this; + var gg = to.get_b_now(); + //--------如果goods_id一样,就是要立即购买----- + if (e == gg.goods_id) { + a.get("/api/weshop/goods/get/" + oo.stoid + "/" + e, { + success: async function (t) { + var gd = t.data.data; + if (!gd) return false; + + //-- 如果商品有同城配送的参数的时候,一件代发商品不能显示同城配送按钮 -- + if (gd.is_same_city && th.data.is_same_city && gd.whsle_id <= 0) { + + await getApp().request.promiseGet("/api/weshop/pickup/get/" + os.stoid + "/" + gg.pick_id, {}).then(res => { + if (res.data.code == 0) { + var pk = res.data.data; + if (pk && pk.is_same_city) { + th.setData({ show_same_city: 1 }) + } + } - var m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code; - if (et == 0 && def_exp_code) { - for (var k = 0; k < th.data.wu_arr.length; k++) { - var item = th.data.wu_arr[k]; - if (def_exp_code == item.code) { - m_wind = k; - } - } - } + }) - if (th.data.bn_goods) { - et = th.data.bn_exp_type; - m_wind = th.data.index; - } - th.data.m_wind = m_wind; - - //---是不是购买等级卡成功的返回---等级卡显示的判断--- - var is_card_back = getApp().globalData.is_card_back; - if (is_card_back) { - th.data.card_name = th.data.userinfo.card_field; - gg.goods_price = gd[th.data.card_name]; - getApp().globalData.is_card_back = 0; - th.setData({ card_cut_price: 0 }); - //如果是秒杀的返回 - if (gd.prom_type == 1) gd.prom_type = 0; - } else { - //--- 商家等级卡开通的情况下, 会员不是等级会员的情况, 商品有设置等级卡价格,同时等级卡价格小于商品的价格 - //-- 搭配购的商品也可以单独购买,所以此时搭配购的商品要进行计算优惠 -- - if (!gg.collocation_goods && gd['prom_type'] != 6 && th.data.card_name && gd[th.data.card_name] > 0 && gg.goods_price > gd[th.data.card_name] && !th.data.userinfo.card_field) { - var cut_p = (gg.goods_price - gd[th.data.card_name]) * gg.goods_num; - th.setData({ card_cut_price: cut_p }); - } - } + } - //-- 判断是不是可以收藏 -- - if(gd.prom_type ==5 && !th.data.all_collocation_list.length){ - await th.set_collection(gd); - } + t.data.data.original_img = oo.imghost + t.data.data.original_img; + t.data.data['buynum'] = gg.goods_num; + var distr_t = 0, et = 0 - //-- 当是搭配购的时候 -- - gd.prom_type = gg.prom_type ? gg.prom_type : 0; - gd.prom_id = gg.prom_id ? gg.prom_id : 0; + if (t.data.data.is_minishop == 1 && getApp().is_sp_hao()) { + if (t.data.data.distr_type == 1 || gg.pick_dis == 1) { + wx.showToast({ + title: "视频号仅支持物流", + icon: 'none', + duration: 2000 + }) - if(gd.whsle_id>0){ - gd.prom_type =gg.prom_type=0; - gd.prom_id =gg.prom_id=0; - } + setTimeout(function () { + wx.navigateBack({ delta: 1 }) + }, 1000) + return false + } - switch (gd.prom_type) { - case 0: - case 3: - case 4: - case 5: - case 6: - case 7: - //--此时开始计算商品的使用券相关,如果有等级价还要计算和等级价相关的, - // 如果有优惠促销,还要把促销的部分计算在内,因为促销还有不能使用优惠券-- - t.data.data.shop_price = gg.goods_price; - t.data.data.goods_price = gg.goods_price; - t.data.data.goods_num = gg.goods_num; - th.data.ckeck_quan_price = t.data.data.shop_price * gg.goods_num; - th.data.check_quan_price_list = t.data.data.shop_price * gg.goods_num + ""; - th.data.check_quan_ware_list = t.data.data.erpwareid + ""; - - //-- 如果有线下取价的时候 -- - if (gg.offline_price) { - t.data.data.offline_price = gg.offline_price; - t.data.data.pricing_type = gg.pricing_type; - t.data.data.is_offline = 1; - - th.data.ckeck_quan_price = t.data.data.offline_price * gg.goods_num; - th.data.check_quan_price_list = t.data.data.offline_price * gg.goods_num + ""; - th.data.check_quan_ware_list = t.data.data.erpwareid + ""; - } - t.data.data.prom_id = 0; - t.data.data.prom_type = 0; - - - //如果有开启佣金抵扣,同时会员是分销商的时候 - if(!gg.collocation_goods && getApp().globalData.userInfo.is_distribut - && th.data.dis_config && th.data.dis_config.is_yongjin_dk){ - var fir_num=0; - var sec_num=0; - var thi_num=0; - if(th.data.dis_config.pattern==1){ - fir_num=(t.data.data.fir_rate || 0)*gg.goods_num; - sec_num=(t.data.data.sec_rate || 0)*gg.goods_num; - thi_num=(t.data.data.thi_rate || 0)*gg.goods_num; - }else{ - fir_num=parseFloat((t.data.data.commission || 0) *gg.goods_num*(th.data.dis_config.firstRate || 0)/100).toFixed(2); - sec_num=parseFloat((t.data.data.commission || 0)*gg.goods_num*(th.data.dis_config.secondRate || 0)/100).toFixed(2); - thi_num=parseFloat((t.data.data.commission || 0)*gg.goods_num*(th.data.dis_config.thirdRate || 0)/100).toFixed(2); - } - var c_num=getApp().get_commission(fir_num,sec_num,thi_num,th); - - gd.use_commission=c_num; - t.data.data.use_commission=c_num; - - } - - - //如果立即购买那边过来,就要读取接口,查看活动的优惠内容 - if (gg.prom_type == 3) { - t.data.data.prom_id = gg.prom_id; - t.data.data.prom_type = 3; - //如果是优惠活动,就要调用活动,计算价格 - // th.check_is_youhui(gg.goods_id, gg.pick_id); - th.buy_now_prom_goods(gg.prom_id, t.data.data, function (data) { - //判断一下购买商品的数量是不是超过 - if (data.gift_goods_id && (!data.zp_mode || parseInt(data.zp_mode) == 0)) { - var num = data.zp_num ? data.zp_num : 1; - if (data.is_bz == 1) { - num = num * data.bs; - if (num > data.gift_limit_num) num = 0; - } - //如果赠品数量超出礼品库存,就取消 - if (num > data['gift_storecount']) num = 0; - if (num > 0) { - var ob = {}; - ob.is_gift = 1; - ob.prom_id = data.prom_id; - ob.goods_id = data.gift_goods_id; - ob.goods_name = data.gift_goods_name; - ob.goods_sn = data.gift_goods_sn; - ob.goods_color = data.gift_goods_color; - ob.goods_spec = data.gift_goods_spec; - ob.original_img = os.imghost + data.gift_original_img; - ob.market_price = data.gift_market_price; - ob.gift_id = data.gift_id; - ob.shop_price = 0; - ob.buynum = num; - ob.weight = data.gift_weight; //商品的重量 - ob.exp_sum_type = data.gift_exp_sum_type; //商品的物流计算方式 - ob.uniform_exp_sum = data.gift_uniform_exp_sum //统一运费的金额 - - var arr_gf = []; - arr_gf.push(ob); - th.setData({ buy_now_gift_goods: arr_gf }); - } - } - - th.setData({ - bn_goods: data, bn_pickname: gg.pick_name, index: m_wind, - bn_pick: gg.pick_id, bn_t_exp_t: distr_t, bn_exp_type: et - }); - - - //计算价格 - th.calculatePrice2(); - //获取优惠券 - th.get_buy_now_quan(); - - }) - } else { - - - //--看是不是搭配促销-- - if (gg.prom_type == 5) { - t.data.data.prom_id = gg.prom_id; - t.data.data.prom_type = 5; - th.is_coupon = gg.is_coupon; - th.setData({ - is_coupon: gg.is_coupon - }); - if (gg.room_id) { - t.data.data.room_id = gg.room_id; - } - //--主商品要有导购id和导购类型-- - if (gg.guide_id) { - t.data.data.guide_id = gg.guide_id; - t.data.data.guide_type = gg.guide_type; - } - th.setData({ collocation_goods: gg.collocation_goods }); - - if(th.data.all_collocation_list){ - for(var i = 0; i { - if (res.data.code == 0) { - frozenQuan = res.data.data; - th.data.frozenQuan = frozenQuan; - } - //计算价格 - th.calculatePrice2(); - th.get_cart_quan(); - }); - - } else { - //计算价格 - th.calculatePrice2(); - //获取优惠券, - th.get_buy_now_quan(); - } - } - - break; - case 1: //---秒杀----- - var quanlist = null; - getApp().request.get("/api/weshop/activitylist/getSJGoodsPriceNew/" + gd.store_id - + "/" + gd.goods_id + "/1/" + gd.prom_id + "/" + app.globalData.user_id, { - success: async function (tt) { - if (tt.data.code == 0) { - //t.data.data.shop_price = tt.data.data.prom_price; - t.data.data.shop_price = tt.data.data.prom_user_price; - th.data.ckeck_quan_price = 0; - gd.is_xz_yh = 1; - - t.data.data.fir_rate=tt.data.data.fir_rate; - t.data.data.sec_rate=tt.data.data.sec_rate; - t.data.data.thi_rate=tt.data.data.thi_rate; - t.data.data.commission=tt.data.data.commission; - - - } else { - t.data.data.prom_id = 0; - t.data.data.prom_type = 0; - th.data.ckeck_quan_price = t.data.data.shop_price * gg.goods_num; - th.data.check_quan_price_list = t.data.data.shop_price * gg.goods_num + ""; - th.data.check_quan_ware_list = t.data.data.erpwareid + ""; - } - - //-- 计算获得佣金的金额 -- - if( getApp().globalData.userInfo.is_distribut - && th.data.dis_config && th.data.dis_config.is_yongjin_dk){ - - var c_num=getApp().get_commission(th.data.dis_config,t.data.data,gg.goods_num); - - gd.use_commission=c_num; - t.data.data.use_commission=c_num; - - } - - - th.setData({ - bn_goods: gd, - bn_pickname: gg.pick_name, - bn_exp_type: et, - index: m_wind, - bn_pick: gg.pick_id, - bn_t_exp_t: distr_t, - bn_exp_type: et - }); - - //计算价格 - th.calculatePrice2(); - //获取优惠券,如果有券的钱,就调用 - if (th.data.ckeck_quan_price > 0) th.get_buy_now_quan(); - } - }); - - break; - - case 2: //--- 团购 --- - var quanlist = null; - getApp().request.get("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + gd.goods_id + "/" + gd.prom_id, { - success: async function (tt) { - if (tt.data.code == 0) { - //t.data.data.shop_price = tt.data.data.prom_price; - t.data.data.shop_price = tt.data.data.price; - - t.data.data.fir_rate=tt.data.data.fir_rate; - t.data.data.sec_rate=tt.data.data.sec_rate; - t.data.data.thi_rate=tt.data.data.thi_rate; - t.data.data.commission=tt.data.data.commission; - - } else { - t.data.data.prom_id = 0; - t.data.data.prom_type = 0; - } - - //-- 计算获得佣金的金额 -- - if( getApp().globalData.userInfo.is_distribut - && th.data.dis_config && th.data.dis_config.is_yongjin_dk){ - - var c_num=getApp().get_commission(th.data.dis_config,t.data.data,gg.goods_num); - - gd.use_commission=c_num; - t.data.data.use_commission=c_num; - - } - - - if (tt.data.data.isQuan) { - th.data.ckeck_quan_price = t.data.data.shop_price * gg.goods_num; - th.data.check_quan_price_list = t.data.data.shop_price * gg.goods_num + ""; - th.data.check_quan_ware_list = t.data.data.erpwareid + ""; - } else { - gd.is_xz_yh = 1; - } - - th.setData({ - bn_goods: gd, - bn_pickname: gg.pick_name, - bn_exp_type: et, - index: m_wind, - bn_pick: gg.pick_id, - bn_t_exp_t: distr_t, - bn_exp_type: et - }); - - //-- 计算价格 -- - th.calculatePrice2(); - //获取优惠券,如果有券的钱,就调用 - if (th.data.ckeck_quan_price > 0) th.get_buy_now_quan(); - } - }); - - break; + t.data.data.distr_type = 2; + th.setData({ show_same_city: 0 }) + + } + + + if (t.data.data.distr_type == 0) { + distr_t = gg.pick_dis; + } else { + distr_t = t.data.data.distr_type; + } + + switch (distr_t) { + case 0: + et = 1; + //-- 系统后台有设置要默认的 -- + if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) et = 0; + break; + case 1: + et = 1; + break; + case 2: + et = 0; + break; + } + + + var m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code; + if (et == 0 && def_exp_code) { + for (var k = 0; k < th.data.wu_arr.length; k++) { + var item = th.data.wu_arr[k]; + if (def_exp_code == item.code) { + m_wind = k; + } + } + } + + if (th.data.bn_goods) { + et = th.data.bn_exp_type; + m_wind = th.data.index; + } + th.data.m_wind = m_wind; + + //---是不是购买等级卡成功的返回---等级卡显示的判断--- + var is_card_back = getApp().globalData.is_card_back; + if (is_card_back) { + th.data.card_name = th.data.userinfo.card_field; + gg.goods_price = gd[th.data.card_name]; + getApp().globalData.is_card_back = 0; + th.setData({ card_cut_price: 0 }); + //如果是秒杀的返回 + if (gd.prom_type == 1) gd.prom_type = 0; + } else { + //--- 商家等级卡开通的情况下, 会员不是等级会员的情况, 商品有设置等级卡价格,同时等级卡价格小于商品的价格 + //-- 搭配购的商品也可以单独购买,所以此时搭配购的商品要进行计算优惠 -- + if (!gg.collocation_goods && gd['prom_type'] != 6 && th.data.card_name && gd[th.data.card_name] > 0 && gg.goods_price > gd[th.data.card_name] && !th.data.userinfo.card_field) { + var cut_p = (gg.goods_price - gd[th.data.card_name]) * gg.goods_num; + th.setData({ card_cut_price: cut_p }); + } + } + + //-- 判断是不是可以收藏 -- + if (gd.prom_type == 5 && !th.data.all_collocation_list.length) { + await th.set_collection(gd); + } + + //-- 当是搭配购的时候 -- + gd.prom_type = gg.prom_type ? gg.prom_type : 0; + gd.prom_id = gg.prom_id ? gg.prom_id : 0; + + + if (gd.whsle_id > 0) { + gd.prom_type = gg.prom_type = 0; + gd.prom_id = gg.prom_id = 0; + } + + + switch (gd.prom_type) { + case 0: + case 3: + case 4: + case 5: + case 6: + case 7: + //--此时开始计算商品的使用券相关,如果有等级价还要计算和等级价相关的, + // 如果有优惠促销,还要把促销的部分计算在内,因为促销还有不能使用优惠券-- + t.data.data.shop_price = gg.goods_price; + t.data.data.goods_price = gg.goods_price; + t.data.data.goods_num = gg.goods_num; + th.data.ckeck_quan_price = t.data.data.shop_price * gg.goods_num; + th.data.check_quan_price_list = t.data.data.shop_price * gg.goods_num + ""; + th.data.check_quan_ware_list = t.data.data.erpwareid + ""; + + //-- 如果有线下取价的时候 -- + if (gg.offline_price) { + t.data.data.offline_price = gg.offline_price; + t.data.data.pricing_type = gg.pricing_type; + t.data.data.is_offline = 1; + + th.data.ckeck_quan_price = t.data.data.offline_price * gg.goods_num; + th.data.check_quan_price_list = t.data.data.offline_price * gg.goods_num + ""; + th.data.check_quan_ware_list = t.data.data.erpwareid + ""; + } + t.data.data.prom_id = 0; + t.data.data.prom_type = 0; + + + //如果有开启佣金抵扣,同时会员是分销商的时候 + if (!gg.collocation_goods && getApp().globalData.userInfo.is_distribut + && th.data.dis_config && th.data.dis_config.is_yongjin_dk) { + var fir_num = 0; + var sec_num = 0; + var thi_num = 0; + if (th.data.dis_config.pattern == 1) { + fir_num = (t.data.data.fir_rate || 0) * gg.goods_num; + sec_num = (t.data.data.sec_rate || 0) * gg.goods_num; + thi_num = (t.data.data.thi_rate || 0) * gg.goods_num; + } else { + fir_num = parseFloat((t.data.data.commission || 0) * gg.goods_num * (th.data.dis_config.firstRate || 0) / 100).toFixed(2); + sec_num = parseFloat((t.data.data.commission || 0) * gg.goods_num * (th.data.dis_config.secondRate || 0) / 100).toFixed(2); + thi_num = parseFloat((t.data.data.commission || 0) * gg.goods_num * (th.data.dis_config.thirdRate || 0) / 100).toFixed(2); + } + var c_num = getApp().get_commission(fir_num, sec_num, thi_num, th); + + gd.use_commission = c_num; + t.data.data.use_commission = c_num; + + } + + + //如果立即购买那边过来,就要读取接口,查看活动的优惠内容 + if (gg.prom_type == 3) { + t.data.data.prom_id = gg.prom_id; + t.data.data.prom_type = 3; + //如果是优惠活动,就要调用活动,计算价格 + // th.check_is_youhui(gg.goods_id, gg.pick_id); + th.buy_now_prom_goods(gg.prom_id, t.data.data, function (data) { + //判断一下购买商品的数量是不是超过 + if (data.gift_goods_id && (!data.zp_mode || parseInt(data.zp_mode) == 0)) { + var num = data.zp_num ? data.zp_num : 1; + if (data.is_bz == 1) { + num = num * data.bs; + if (num > data.gift_limit_num) num = 0; } - }, - }); - } - }, + //如果赠品数量超出礼品库存,就取消 + if (num > data['gift_storecount']) num = 0; + if (num > 0) { + var ob = {}; + ob.is_gift = 1; + ob.prom_id = data.prom_id; + ob.goods_id = data.gift_goods_id; + ob.goods_name = data.gift_goods_name; + ob.goods_sn = data.gift_goods_sn; + ob.goods_color = data.gift_goods_color; + ob.goods_spec = data.gift_goods_spec; + ob.original_img = os.imghost + data.gift_original_img; + ob.market_price = data.gift_market_price; + ob.gift_id = data.gift_id; + ob.shop_price = 0; + ob.buynum = num; + ob.weight = data.gift_weight; //商品的重量 + ob.exp_sum_type = data.gift_exp_sum_type; //商品的物流计算方式 + ob.uniform_exp_sum = data.gift_uniform_exp_sum //统一运费的金额 + + var arr_gf = []; + arr_gf.push(ob); + th.setData({ buy_now_gift_goods: arr_gf }); + } + } - //---------------检查是否有收货地址------------------- - checkAddressList: function () { - var t = this; - return !(!this.data.order || null == this.data.order.userAddress) || (wx.showModal({ - title: "请先填写或选择收货地址~", - success: function (a) { - a.confirm ? t.enterAddressPage() : wx.navigateBack(); - }, - fail: function () { - wx.navigateBack(); - } - }), !1); - }, - showInvoice: function () { - this.setData({ - invoiceToggle: !this.data.invoiceToggle - }); - }, - keyUpChangePay1: function (t) { - this.setData({ - payWithUserMoney: !(t.detail.value.length > 0) - }); - }, - keyUpChangePay2: function (t) { - this.setData({ - payWithPoints: !(t.detail.value.length > 0) - }); - }, - keyUpChangeNum: function (t) { - var index = t.currentTarget.dataset.index; - var txt = "user_note." + index; - this.setData({ - maxWord: t.detail.value.length, - [txt]: t.detail.value - }); - }, + th.setData({ + bn_goods: data, bn_pickname: gg.pick_name, index: m_wind, + bn_pick: gg.pick_id, bn_t_exp_t: distr_t, bn_exp_type: et + }); - calc_per: async function (c_arr) { - var send_gf = {}; - var duo_zp_num_arr = {}; - var th = this; - //-- 循环处理 -- - for (var i in c_arr) { - var cart_item = c_arr[i]; //就是每一单的意思 - var pickid = cart_item.pickup_id; - var ord_goods = c_arr[i].goods; //就是每一单的从表的意思 - var o_price = 0, q_conditin = 0; - //--------循环计算总价----------- - for (var j = 0; j < ord_goods.length; j++) { - - if(ord_goods[j].whsle_id) continue; - o_price += ord_goods[j].goods_price * ord_goods[j].goods_num; - } - //---如果该门店的相关活动,就要算一下减价-- - if (th.data.prom_goods_map[pickid]) { - var ob = th.data.prom_goods_map[pickid]; - for (var ii in ob) { - var item_map = ob[ii]; - if (item_map.bs == undefined || item_map.bs == null) { - //等待,获取一下优惠活动的信息 - await getApp().request.promiseGet("/api/weshop/goods/getDiscount", { - data: { - price: parseFloat(item_map.price).toFixed(2), prom_id: item_map.prom_id, - goods_num: item_map.goods_num, user_id: getApp().globalData.user_id, - is_bz: item_map.is_bz - } - }).then(res => { - if (res.data.code == 0 && res.data.data.condition) { - var get_data = res.data.data; - item_map.is_bz = get_data.is_bz; //是不是倍增 - item_map.bs = get_data.bs; //是不是倍数 - item_map.is_past = get_data.is_past; //是不是包邮 - item_map.prom_price = get_data.price >= 0 ? get_data.price : item_map.price; - item_map.s_intValue = get_data.intValue; - item_map.s_coupon_id = get_data.coupon_id; - item_map.s_coupon_num = get_data.coupon_num; - item_map.lbtitle = get_data.lbtitle; - item_map.zxlbtitle = get_data.zxlbtitle; - - if (get_data.gift_id && parseInt(get_data.zp_mode) != 1 - && get_data.zp_num * item_map.bs <= get_data.limit_num - && get_data.zp_num * item_map.bs <= get_data.gift_storecount - ) { - - item_map.gift_id = get_data.gift_id; - item_map.gift_goods_id = get_data.goods_id; - item_map.gift_goods_name = get_data.goods_name; - item_map.gift_goods_color = get_data.goodsinfo.goods_color ? get_data.goodsinfo.goods_color : ''; - item_map.gift_goods_spec = get_data.goodsinfo.goods_spec ? get_data.goodsinfo.goods_spec : ''; - item_map.gift_original_img = get_data.goodsinfo.original_img; - item_map.gift_limit_num = get_data.limit_num; - item_map.gift_storecount = get_data.gift_storecount; - item_map.gift_weight = get_data.goodsinfo.weight; - item_map.gift_exp_sum_type = get_data.goodsinfo.exp_sum_type; - item_map.uniform_exp_sum = get_data.goodsinfo.uniform_exp_sum; - item_map.whsle_id = get_data.goodsinfo.whsle_id; - - } - item_map.s_libao = get_data.libao; - item_map.s_lb_num = get_data.lb_num; - - //专享礼包 - item_map.zx_libao = get_data.zxlibao; - item_map.zx_lb_num = get_data.zxlb_num; - - if (parseInt(get_data.zp_mode) == 1) { - if (!send_gf[pickid]) send_gf[pickid] = []; - - var can_zp_num = 0; - for (let iy in get_data.giftsinfo) { - let item = get_data.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(get_data.zp_num) * parseInt(get_data.bs); - if (duo_zp_num_arr[item_map.prom_id]) { - t_zp_num += duo_zp_num_arr[item_map.prom_id]; - } - - if (can_zp_num >= t_zp_num) { - send_gf[pickid].push({ - pickup_id: pickid, - giftsinfo: get_data.giftsinfo, - zp_num: get_data.zp_num * get_data.bs, - gf_pr_name: item_map.name, - prom_id: item_map.prom_id - }); - - duo_zp_num_arr[item_map.prom_id] = t_zp_num; - } - } - } - }) - } + //计算价格 + th.calculatePrice2(); + //获取优惠券 + th.get_buy_now_quan(); - //有活动,且优惠活动并没有限制使用优惠券,且有减价 - //--看有没有减价-- - //if(item_map.prom_price>=0 && item_map.price-item_map.prom_price){ - if (item_map.price - item_map.prom_price && item_map.prom_price !== null) { - if (cart_item.prom_pt_json) { - cart_item.prom_pt_json.push({ - "prom_id": item_map.prom_id, - "dis": (item_map.price - item_map.prom_price).toFixed(2), - "ispt": 0 - }) - } else { - cart_item.prom_pt_json = [{ - "prom_id": item_map.prom_id, - "dis": (item_map.price - item_map.prom_price).toFixed(2), - "ispt": 0 - }]; - } - - //-- 如果系统要平摊到单品 -- - - var pt_data = { - 'prom_id': item_map.prom_id, - 'dis': parseFloat((item_map.price - item_map.prom_price).toFixed(2)), - 'goods': item_map.goods - } - - var pt_res = null; - await getApp().request.promisePost("/api/weshop/order/getGoodsSplit", { - is_json: 1, - data: pt_data - }).then(res => { - if (res.data.code == 0) { - pt_res = res.data.data; - } - }) - if (pt_res) { - for (var io in item_map.goods) { - //平摊赋值 - item_map.goods[io].account_fir = th.arr_get_goods(item_map.goods[io].goods_id, pt_res).fisrt_account; - item_map.goods[io].account_yu_fir = th.arr_get_goods(item_map.goods[io].goods_id, pt_res).fisrt_account_yu; - if (!th.data.ispt_goods) { - item_map.goods[io].account = item_map.goods[io].account_fir; - item_map.goods[io].account_yu = item_map.goods[io].account_yu_fir; - } - } - } - - o_price -= (item_map.price - item_map.prom_price); - //如果有限制使用优惠券,就要减掉参与的活动商品的钱 - if (!item_map.is_xz_yh) q_conditin = o_price; - } - - //--------循环计算商品是不是包邮,是不是使用优惠券,此时循环是商品从表----------- - for (var j = 0; j < ord_goods.length; j++) { - if (ord_goods[j].is_gift) continue; - if (ord_goods[j].whsle_id) continue; - if (ord_goods[j].prom_type == 3 && ord_goods[j].prom_id == item_map.prom_id) { - ord_goods[j].is_xz_yh = ord_goods[j].is_xz_yh ? ord_goods[j].is_xz_yh : item_map.is_xz_yh; - ord_goods[j].is_past = item_map.is_past; - ord_goods[j].account_fir = th.item_map_get_goods(ord_goods[j].goods_id, item_map).account_fir; - ord_goods[j].account_yu_fir = th.item_map_get_goods(ord_goods[j].goods_id, item_map).account_yu_fir; - ord_goods[j].account = th.item_map_get_goods(ord_goods[j].goods_id, item_map).account; - ord_goods[j].account_yu = th.item_map_get_goods(ord_goods[j].goods_id, item_map).account_yu; - } + }) + } else { + + + //--看是不是搭配促销-- + if (gg.prom_type == 5) { + t.data.data.prom_id = gg.prom_id; + t.data.data.prom_type = 5; + th.is_coupon = gg.is_coupon; + th.setData({ + is_coupon: gg.is_coupon + }); + if (gg.room_id) { + t.data.data.room_id = gg.room_id; + } + //--主商品要有导购id和导购类型-- + if (gg.guide_id) { + t.data.data.guide_id = gg.guide_id; + t.data.data.guide_type = gg.guide_type; + } + th.setData({ collocation_goods: gg.collocation_goods }); + + if (th.data.all_collocation_list) { + for (var i = 0; i < th.data.all_collocation_list.length; i++) { + var item0 = th.data.all_collocation_list[i]; + var idx = gg.collocation_goods.findIndex(function (e) { + return e.goods_id == item0.goods_id && e.prom_id == item0.prom_id; + }) + if (idx != -1) { + var txt = 'all_collocation_list[' + i + '].selected'; + th.setData({ [txt]: 1 }); + } } + } - //--优惠多少钱-- - if (!cart_item.cut_price) cart_item.cut_price = 0; - //-- -- - if (item_map.price != undefined && item_map.price != null - && item_map.prom_price != undefined && item_map.prom_price != null) - cart_item.cut_price += (item_map.price - item_map.prom_price); - //---如果有送积分--- - if (item_map.s_intValue) { - if (!cart_item.s_intValue) cart_item.s_intValue = 0; - cart_item.s_intValue += item_map.s_intValue; - } - //-- 如果有送优惠券的情况 -- - if (item_map.s_coupon_id) { - if (!cart_item.s_coupon_id) { - cart_item.s_coupon_id = item_map.s_coupon_id + ""; - cart_item.g_coupon_num = [{ 'c_id': item_map.s_coupon_id, "num": item_map.s_coupon_num }]; - } - else { - cart_item.s_coupon_id += "," + item_map.s_coupon_id; - cart_item.g_coupon_num.push({ 'c_id': item_map.s_coupon_id, "num": item_map.s_coupon_num }) - } - } - //-- 如果有送礼包的情况 -- - if (item_map.s_libao) { - if (!cart_item.s_libao) { - cart_item.s_libao = item_map.s_libao + ""; - cart_item.g_lb_num = [{ 'l_id': item_map.s_libao, "num": item_map.s_lb_num, 'lbtitle': item_map.lbtitle }]; - } - else { - cart_item.s_libao += "," + item_map.s_libao; - cart_item.g_lb_num.push({ 'l_id': item_map.s_libao, "num": item_map.s_lb_num, 'lbtitle': item_map.lbtitle }) - } - } + //var narr=gg.collocation_goods; + //修改成深拷贝,确保返回是数据正确 + var narr = JSON.parse(JSON.stringify(gg.collocation_goods)); + narr.push(t.data.data); + await th.get_collocation_list(narr); + } + th.setData({ + bn_goods: gd, bn_pickname: gg.pick_name, index: m_wind, + bn_pick: gg.pick_id, bn_t_exp_t: distr_t, bn_exp_type: et + }); + - if (item_map.zx_libao) { - if (!cart_item.zx_libao) { - cart_item.zx_libao = item_map.zx_libao + ""; - cart_item.g_zxlb_num = [{ 'l_id': item_map.zx_libao, "num": item_map.zx_lb_num, 'zxlbtitle': item_map.zxlbtitle }]; - } - else { - cart_item.zx_libao += "," + item_map.zx_libao; - cart_item.g_zxlb_num.push({ 'l_id': item_map.zx_libao, "num": item_map.zx_lb_num, 'zxlbtitle': item_map.zxlbtitle }) - } + //--搭配促销也是按照购物车的方式来计算优惠券-- + if (gg.prom_type == 5) { + var frozenQuan = null; + var url0 = "/api/weshop/users/frozenQuan/listFrozenQuan/" + app.globalData.user_id; + app.request.promiseGet(url0, { 1: 1 }).then(res => { + if (res.data.code == 0) { + frozenQuan = res.data.data; + th.data.frozenQuan = frozenQuan; } + //计算价格 + th.calculatePrice2(); + th.get_cart_quan(); + }); + + } else { + //计算价格 + th.calculatePrice2(); + //获取优惠券, + th.get_buy_now_quan(); } - } - } + } + + break; + case 1: //---秒杀----- + var quanlist = null; + getApp().request.get("/api/weshop/activitylist/getSJGoodsPriceNew/" + gd.store_id + + "/" + gd.goods_id + "/1/" + gd.prom_id + "/" + app.globalData.user_id, { + success: async function (tt) { + if (tt.data.code == 0) { + //t.data.data.shop_price = tt.data.data.prom_price; + t.data.data.shop_price = tt.data.data.prom_user_price; + th.data.ckeck_quan_price = 0; + gd.is_xz_yh = 1; + + t.data.data.fir_rate = tt.data.data.fir_rate; + t.data.data.sec_rate = tt.data.data.sec_rate; + t.data.data.thi_rate = tt.data.data.thi_rate; + t.data.data.commission = tt.data.data.commission; + + + } else { + t.data.data.prom_id = 0; + t.data.data.prom_type = 0; + th.data.ckeck_quan_price = t.data.data.shop_price * gg.goods_num; + th.data.check_quan_price_list = t.data.data.shop_price * gg.goods_num + ""; + th.data.check_quan_ware_list = t.data.data.erpwareid + ""; + } + //-- 计算获得佣金的金额 -- + if (getApp().globalData.userInfo.is_distribut + && th.data.dis_config && th.data.dis_config.is_yongjin_dk) { - var arr = Object.keys(send_gf); - var arr2 = Object.keys(th.data.send_gf); - if (arr2.length > 0) return false; - th.calclate_lbNum(c_arr); - if (arr.length > 0) { - th.setData({ send_gf: send_gf }) - } else { - th.setData({ send_gf: {} }) - } + var c_num = getApp().get_commission(th.data.dis_config, t.data.data, gg.goods_num); - }, + gd.use_commission = c_num; + t.data.data.use_commission = c_num; + } - calclate_lbNum(r_data) { - let send_lb = this.data.send_lb; - //g_lb_num我的礼包 g_zxlb_num专享礼包 - r_data.forEach(r_d => { - let arr = []; - if (r_d.g_zxlb_num) { - let g_lb = r_d.g_zxlb_num; - for (let i = 0; i < g_lb.length; i++) { - let item = g_lb[i]; - let new_lb = g_lb.filter(lb => { - return item.l_id === lb.l_id; - }); - if (new_lb.length == 1) { - arr.push(item); - } else { - item.num = new_lb.reduce((pre, next) => { - return pre + next.num; - }, 0); - arr.push(item); - g_lb = g_lb.filter(ii => { - return ii.l_id !== item.l_id; - }); - } - send_lb[r_d.pickup_id] = arr; - } - } - if (r_d.g_lb_num) { - let zx_lb = r_d.g_lb_num; - for (let i = 0; i < zx_lb.length; i++) { - let item = zx_lb[i]; - item.flag = 1; - let new_lb = zx_lb.filter(lb => { - return item.l_id === lb.l_id; - }); - if (new_lb.length == 1) { - arr.push(item); - } else { - item.num = new_lb.reduce((pre, next) => { - return pre + next.num; - }, 0); - arr.push(item); - zx_lb = zx_lb.filter(ii => { - return ii.l_id !== item.l_id; - }); - } - send_lb[r_d.pickup_id] = arr; + th.setData({ + bn_goods: gd, + bn_pickname: gg.pick_name, + bn_exp_type: et, + index: m_wind, + bn_pick: gg.pick_id, + bn_t_exp_t: distr_t, + bn_exp_type: et + }); + + //计算价格 + th.calculatePrice2(); + //获取优惠券,如果有券的钱,就调用 + if (th.data.ckeck_quan_price > 0) th.get_buy_now_quan(); } - } - }) - this.setData({ - send_lb, - }) + }); + + break; + + case 2: //--- 团购 --- + var quanlist = null; + getApp().request.get("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + gd.goods_id + "/" + gd.prom_id, { + success: async function (tt) { + if (tt.data.code == 0) { + //t.data.data.shop_price = tt.data.data.prom_price; + t.data.data.shop_price = tt.data.data.price; + + t.data.data.fir_rate = tt.data.data.fir_rate; + t.data.data.sec_rate = tt.data.data.sec_rate; + t.data.data.thi_rate = tt.data.data.thi_rate; + t.data.data.commission = tt.data.data.commission; + + } else { + t.data.data.prom_id = 0; + t.data.data.prom_type = 0; + } - }, + //-- 计算获得佣金的金额 -- + if (getApp().globalData.userInfo.is_distribut + && th.data.dis_config && th.data.dis_config.is_yongjin_dk) { - //-------------------计算订单价格------------------- - calculatePrice:async function (qfunc) { - var th = this; - th.setData({submit:1}); + var c_num = getApp().get_commission(th.data.dis_config, t.data.data, gg.goods_num); - wx.showLoading({ - title: "处理中.", - mask:true - }) - //-- to.getwuliuprice(async function (rs) { -- - - //是不是区域包邮 - th.data.is_area_by = 0; - //当不是区域不包邮的时候,没有不包邮商品的时候 - th.data.free1 = 0; - th.data.cut_o_shipping_price = 0; - th.data.cut_goods_piece = 0; - th.data.cut_goods_weight = 0; - - var all_price = 0; //所有的商品总价 - var all_shipping_m = 0; //所有的物流总价 - var all_total_m = 0; //所有的订单应付总价 - var all_order_m = 0; //所有的订单应付总价 - var all_user_m = 0; //所有的订单用户使用金额 - var all_coupon_price_m = 0; //所有的订单用户使用优惠券价格 - var all_cutprice = 0; //所有的优惠减 - var all_zh_cutprice = 0; //所有的组合优惠减 - var all_ladder_cutprice = 0; //所有的阶梯促销优惠减 - var all_order_prom = 0; //所有的订单优惠 - - var umoney = th.data.userinfo.user_money - th.data.txmon - (th.data.userinfo.frozen_money ? th.data.userinfo.frozen_money : 0); - var out_of_weight = 0; //超出多少重量 - var c_arr = JSON.parse(JSON.stringify(th.data.old_cartlist)); - - if (th.data.cartlist && th.data.cartlist.length > 0) { - for (var i = 0; i < c_arr.length; i++) { - c_arr[i].exp_type = th.data.cartlist[i].exp_type; - c_arr[i].wind = th.data.cartlist[i].wind; - } - } + gd.use_commission = c_num; + t.data.data.use_commission = c_num; - //调用函数计算每件商品的单价 - await th.calc_per(c_arr); - - //调用函数计算每件组合购商品的单价, - await zh_calc.calc_zh_split_price(c_arr, th); - - //调用函数计算每件阶梯促销商品的单价, - await ladder_calc.calc_split_price(c_arr, th); - //调用函数计算,优惠券优惠什么商品价格,优惠券优惠什么商品 - - await th.get_cart_quan(c_arr); - - - //-- 经纬度不循环调用接口 -- - var lon=0; var lat=0; - //---循环购物车--- - for (var i in c_arr) { - //因为搭配购买也是再这里计算,搭配购的is_b_now==1 - if (th.data.is_b_now == 0) { - //此时物流的选择方式要用th.data.cartlist; - c_arr[i].exp_type = th.data.cartlist[i].exp_type; - c_arr[i].wind = th.data.cartlist[i].wind; - if (th.data.cartlist[i].check_quan_price_list) c_arr[i].check_quan_price_list = th.data.cartlist[i].check_quan_price_list; //优惠券优惠什么商品价格 - if (th.data.cartlist[i].check_quan_ware_list) c_arr[i].check_quan_ware_list = th.data.cartlist[i].check_quan_ware_list; //优惠券优惠什么商品 - } else { - c_arr[i].exp_type = th.data.bn_exp_type; //配送方式 - c_arr[i].wind = th.data.index; //立即购买选择的物流 - //c_arr[i].=th.data. //立即购买的使用余额 - if (th.data.cartlist) c_arr[i].check_quan_price_list = th.data.cartlist[i].check_quan_price_list; //优惠券优惠什么商品价格 - if (th.data.cartlist) c_arr[i].check_quan_ware_list = th.data.cartlist[i].check_quan_ware_list; //优惠券优惠什么商品 - } + } - var cart_item = c_arr[i]; //就是每一单的意思 - var pickid = cart_item.pickup_id; - var o_price = 0; - var o_price_no_zh = 0; //参与订单优惠叠加--组合购的金额汇总 - var o_shipping_price = 0, goods_weight = -1, goods_piece = -1; - var item = c_arr[i].goods; //就是每一单的从表的意思 - - //---如果有选择优惠券的情况下--- - var quan_price = 0; - var coupon_price = 0; - var quan_no = null; - var is_has_zh = c_arr[i].is_has_zh; - var is_has_ladder = c_arr[i].is_has_ladder; - - var zh_prom_goods = c_arr[i].zh_prom_goods; //组合购计算的原始数据存储空间 - var ladder_prom_goods = c_arr[i].ladder_prom_goods; //组合购计算的原始数据存储空间 - - if (th.data.using_quan[pickid] != null && th.data.using_quan[pickid] != undefined) - quan_no = th.data.using_quan[pickid].coupon_no; - - //普通券的时候 - if (quan_no && th.data.using_quan[pickid].isby != 1) { - //---获取优惠券优惠--- - await getApp().request.promiseGet("/api/weshop/couponList/getUseCouponPrice", { - data: { - storeId: oo.stoid, - CashRepNo: quan_no, - WaresSum: cart_item.check_quan_price_list, - WareIds: cart_item.check_quan_ware_list - } - }).then(res => { - if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { - var q_data = res.data.data; - //--存储商品优惠的内容-- - cart_item.quan_youhui_list = q_data; - for (var k in q_data) - quan_price += q_data[k].WareCashSum; - } - }) - } + if (tt.data.data.isQuan) { + th.data.ckeck_quan_price = t.data.data.shop_price * gg.goods_num; + th.data.check_quan_price_list = t.data.data.shop_price * gg.goods_num + ""; + th.data.check_quan_ware_list = t.data.data.erpwareid + ""; + } else { + gd.is_xz_yh = 1; + } + th.setData({ + bn_goods: gd, + bn_pickname: gg.pick_name, + bn_exp_type: et, + index: m_wind, + bn_pick: gg.pick_id, + bn_t_exp_t: distr_t, + bn_exp_type: et + }); + + //-- 计算价格 -- + th.calculatePrice2(); + //获取优惠券,如果有券的钱,就调用 + if (th.data.ckeck_quan_price > 0) th.get_buy_now_quan(); + } + }); - var whsle_goods_price=0; - //--------循环计算总价----------- - for (var j = 0; j < item.length; j++) { + break; + } + }, + }); + } + }, + + //---------------检查是否有收货地址------------------- + checkAddressList: function () { + var t = this; + return !(!this.data.order || null == this.data.order.userAddress) || (wx.showModal({ + title: "请先填写或选择收货地址~", + success: function (a) { + a.confirm ? t.enterAddressPage() : wx.navigateBack(); + }, + fail: function () { + wx.navigateBack(); + } + }), !1); + }, + showInvoice: function () { + this.setData({ + invoiceToggle: !this.data.invoiceToggle + }); + }, + keyUpChangePay1: function (t) { + this.setData({ + payWithUserMoney: !(t.detail.value.length > 0) + }); + }, + keyUpChangePay2: function (t) { + this.setData({ + payWithPoints: !(t.detail.value.length > 0) + }); + }, + keyUpChangeNum: function (t) { + var index = t.currentTarget.dataset.index; + var txt = "user_note." + index; + this.setData({ + maxWord: t.detail.value.length, + [txt]: t.detail.value + }); + }, + + calc_per: async function (c_arr) { + var send_gf = {}; + var duo_zp_num_arr = {}; + var th = this; + //-- 循环处理 -- + for (var i in c_arr) { + var cart_item = c_arr[i]; //就是每一单的意思 + var pickid = cart_item.pickup_id; + var ord_goods = c_arr[i].goods; //就是每一单的从表的意思 + var o_price = 0, q_conditin = 0; + //--------循环计算总价----------- + for (var j = 0; j < ord_goods.length; j++) { + + if (ord_goods[j].whsle_id) continue; + o_price += ord_goods[j].goods_price * ord_goods[j].goods_num; + } + + //---如果该门店的相关活动,就要算一下减价-- + if (th.data.prom_goods_map[pickid]) { + var ob = th.data.prom_goods_map[pickid]; + for (var ii in ob) { + var item_map = ob[ii]; + if (item_map.bs == undefined || item_map.bs == null) { + //等待,获取一下优惠活动的信息 + await getApp().request.promiseGet("/api/weshop/goods/getDiscount", { + data: { + price: parseFloat(item_map.price).toFixed(2), prom_id: item_map.prom_id, + goods_num: item_map.goods_num, user_id: getApp().globalData.user_id, + is_bz: item_map.is_bz + } + }).then(res => { + if (res.data.code == 0 && res.data.data.condition) { + var get_data = res.data.data; + item_map.is_bz = get_data.is_bz; //是不是倍增 + item_map.bs = get_data.bs; //是不是倍数 + item_map.is_past = get_data.is_past; //是不是包邮 + item_map.prom_price = get_data.price >= 0 ? get_data.price : item_map.price; + item_map.s_intValue = get_data.intValue; + item_map.s_coupon_id = get_data.coupon_id; + item_map.s_coupon_num = get_data.coupon_num; + item_map.lbtitle = get_data.lbtitle; + item_map.zxlbtitle = get_data.zxlbtitle; - if(item[j].whsle_id>0){ - whsle_goods_price+=item[j].goods_price*item[j].goods_num; - } + if (get_data.gift_id && parseInt(get_data.zp_mode) != 1 + && get_data.zp_num * item_map.bs <= get_data.limit_num + && get_data.zp_num * item_map.bs <= get_data.gift_storecount + ) { - var is_no_zh = 0; - if (item[j].prom_type != 7 && item[j].prom_type != 10) is_no_zh = 1; + item_map.gift_id = get_data.gift_id; + item_map.gift_goods_id = get_data.goods_id; + item_map.gift_goods_name = get_data.goods_name; + item_map.gift_goods_color = get_data.goodsinfo.goods_color ? get_data.goodsinfo.goods_color : ''; + item_map.gift_goods_spec = get_data.goodsinfo.goods_spec ? get_data.goodsinfo.goods_spec : ''; + item_map.gift_original_img = get_data.goodsinfo.original_img; + item_map.gift_limit_num = get_data.limit_num; + item_map.gift_storecount = get_data.gift_storecount; + item_map.gift_weight = get_data.goodsinfo.weight; + item_map.gift_exp_sum_type = get_data.goodsinfo.exp_sum_type; + item_map.uniform_exp_sum = get_data.goodsinfo.uniform_exp_sum; + item_map.whsle_id = get_data.goodsinfo.whsle_id; - //组合购的商品,且有订单优惠的叠加,is_orderyh就是优惠叠加 - if (item[j].prom_type == 7 && th.data.zhhe_act_map && th.data.zhhe_act_map[item[j].prom_id] - && th.data.zhhe_act_map[item[j].prom_id].is_orderyh) { - is_no_zh = 1; - } - //阶梯购的商品,且有订单优惠的叠加,is_orderyh就是优惠叠加 - if (item[j].prom_type == 10 && ladder_prom_goods && ladder_prom_goods[item[j].prom_id] - && th.data.ladder_map[item[j].prom_id].is_useorderyh) { - is_no_zh = 1; - } - - if (is_no_zh) { - o_price_no_zh += item[j].goods_price * item[j].goods_num; - } - o_price += item[j].goods_price * item[j].goods_num; - - } - //判断是不是有组合购的金额 - var f_o_price = o_price; - //如果又优惠的钱,就要减价 - if (c_arr[i].cut_price > 0) { - o_price -= c_arr[i].cut_price; - o_price_no_zh -= c_arr[i].cut_price; - } - //如果有组合购优惠的钱,就要减价 - if (c_arr[i].zh_cut_price > 0 || c_arr[i].zh_cut_price < 0) { - o_price -= c_arr[i].zh_cut_price; - if (o_price_no_zh > 0) { - //找到那些可以订单优惠叠加的 - for (let ij in zh_prom_goods) { - let kitem = zh_prom_goods[ij]; - if (kitem.act.is_orderyh) - o_price_no_zh -= kitem.cut_price; - } - } - } - - //如果有组合购优惠的钱,就要减价 - if (c_arr[i].ladder_cut_price > 0 || c_arr[i].ladder_cut_price < 0) { - o_price -= c_arr[i].ladder_cut_price; - if (o_price_no_zh > 0) { - //找到那些可以订单优惠叠加的 - for (let ij in ladder_prom_goods) { - let kitem = ladder_prom_goods[ij]; - if (th.data.ladder_map[ij].is_useorderyh) - o_price_no_zh -= kitem.cut_price; - } - } - } - - //-- 计算线下取价的功能 -- - if (cart_item.is_offline == 1) { - o_price = o_price - cart_item.offline_price; - o_price_no_zh -= c_arr[i].offline_price; - } - //判断包邮券的钱,组合购的商品不使用优惠券 - var q_conditin = 0; - q_conditin = o_price - quan_price; - if (is_has_zh) { - q_conditin = o_price_no_zh - quan_price; - } - cart_item.goods_price = f_o_price.toFixed(2); //商品总费用,用f_o_price来计算 - //计算物流费用 - cart_item.shipping_price = 0; - - th.data.is_no_past = 1; //不包邮标识符 - - var back_data = null; - var quan_no_goods_arr=null; - //--如果是物流,且选择了地址,就要开始显示包邮券,且包邮券也已经优惠了优惠活动的金额-- - if (cart_item.exp_type == 0 && th.data.user_addr != null && !cart_item.is_xz_yh) { - //看是不是有调用过包邮券 - if (!th.data.isget_by_quan[pickid]) { - //--判断要不要显示包邮券,调用接口,因为有for循环--- - await getApp().request.promiseGet("/api/weshop/userfeemail/pageAndArea", { - data: { - store_id: os.stoid, - isuse: 0, - //condition: q_conditin, - condition: cart_item.ckeck_quan_price, - user_id: getApp().globalData.user_id, - pageSize: 2000 - } - }).then(res => { - if (res.data.code == 0 && res.data.data.total > 0) { - //此时要循环判断包邮的地区,不包邮商品是不是符合 - var arr = [], quanlist = res.data.data.pageData; - quanlist = th.check_is_frozenQuan(quanlist, th.data.frozenQuan, 1); - for (var i in quanlist) { - var item = quanlist[i]; - var goods = cart_item.goods; - var g_arr = []; - for (var ii in goods) { - g_arr.push(goods[ii].goods_id); - } - if (item.region_list && th.check_by_area(item.region_list)) continue; //如果是不包邮区域 - if (item.goods_list) { - var no_goods_arr = item.goods_list.split(","); - if (ut.isContained(no_goods_arr, g_arr)) continue; //如果是不包邮商品 - } - arr.push(item); - } - if (arr) { - th.data.get_by_quan_list_cart[pickid] = arr; - th.setData({ get_by_quan_list_cart: th.data.get_by_quan_list_cart }); - //if (th.data.is_b_now) { - // th.setData({get_by_quan_list: arr}); - //} - } - th.data.isget_by_quan[pickid] = 1; - } - }) - } - - var user_addr=th.data.user_addr; - var req_d = { - province: user_addr.province, city: user_addr.city, district: user_addr.district, - wuliu:parseFloat(o_price - quan_price-whsle_goods_price).toFixed(2),store_id: os.stoid - } - await getApp().request.promisePost("/api/weshop/order/areaFreight", { - is_json: 1, data: req_d - }).then(rs => { - if (rs.data.code == 0) back_data =rs.data.data; - }); - - } - - - //如果是包邮券的时候,要看看券的情况 - if (quan_no && th.data.using_quan[pickid].isby == 1) { - var quan = th.data.using_quan[pickid]; - if (!quan.goods_list) { - th.data.is_quan_by[pickid] = 1; //专门给券的判断用的 - } else { - th.data.is_quan_by[pickid] = 0; - quan_no_goods_arr = quan.goods_list.split(","); - - } - } else { - th.data.is_quan_by[pickid] = 0; //专门给券的判断用的 - } - - var cut_good_weight=0; - //计算物流价格 - if (cart_item.exp_type == 0 && th.data.user_addr && !th.data.is_quan_by[pickid]) { - - //如果有包邮券的不包邮商品的时候 - if(quan_no_goods_arr) { - if (back_data && back_data.no_free_goods) { - back_data['is_by_all']=1; - var arr3 = back_data.no_free_goods.filter(item => { - return quan_no_goods_arr.includes(item) - }) - back_data.no_free_goods = null; - if (arr3.length) { - back_data.no_free_goods = arr3; - } - } - if (!back_data || !back_data.no_free_goods) { - if (!back_data) back_data={}; - back_data['is_by_all']=1; - back_data['no_free_goods']=quan_no_goods_arr; - } - } - - //--------循环计算总价----------- - for (var j = 0; j < item.length; j++) { - - //如果是一件代发商品,不计算运费 - if(item[j].whsle_id) continue; - //如果商品本身是包邮了 - if(item[j].is_free_shipping == 1) continue; - //如果是优惠活动是包邮,就不用计算包邮的费用了 - if (item[j].is_past) continue; - //--如果是包邮券使用的情况下,如果商品是包邮的,那么就不进行计算-- - if (th.data.using_quan[pickid] && th.data.using_quan[pickid].isby == 1 && th.data.is_quan_by[pickid]) { - continue; - } - - if (back_data && back_data['is_by_all'] && (!back_data.no_free_goods || back_data.no_free_goods.indexOf(item[j].goods_id) == -1)) { - - if (item[j]['exp_sum_type'] == 2 && back_data.weight_free>0) { - if (goods_weight < 0) goods_weight = 0; - cut_good_weight += item[j]['weight'] * item[j]['goods_num']; - goods_weight += item[j]['weight'] * item[j]['goods_num']; - } - if (back_data.weight_free > 0) { - out_of_weight = (back_data.weight_free * 1000) - cut_good_weight; - } - continue; - - } - - switch (item[j]['exp_sum_type']) { - case 1: - //统一运费 - o_shipping_price += item[j]['uniform_exp_sum']; - break; - case 2: - if (goods_weight < 0) goods_weight = 0; - //累积商品重量 每种商品的重量 * 数量 - goods_weight += item[j]['weight'] * item[j]['goods_num']; - - if (back_data && back_data.is_by_all && !back_data.no_free_goods) { - cut_good_weight += item[j]['weight'] * item[j]['goods_num']; - if (back_data.weight_free > 0) { - out_of_weight = (back_data.weight_free * 1000) - cut_good_weight; - } - } - break; - case 3: - if (goods_piece < 0) goods_piece = 0; - //累积商品数量 - goods_piece += item[j]['goods_num']; - break; - } - - } - - //如果是正值的时候 - if (out_of_weight >= 0) out_of_weight = -cut_good_weight; - else out_of_weight = -back_data.weight_free * 1000; - - var code = ""; - if (th.data.wu_arr && th.data.wu_arr[cart_item.wind]) - code = th.data.wu_arr[cart_item.wind].code; - - // cart_item.shipping_price = - // ut.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight,goods_piece, th.data.user_addr, back_data, rs); - - var w_data={ - store_id:os.stoid, code:code, - o_shipping_price:o_shipping_price, - goods_weight:goods_weight, - out_of_weight:out_of_weight,goods_piece:goods_piece, - user_addr_province:th.data.user_addr.province, - user_addr_city:th.data.user_addr.city, - user_addr_district:th.data.user_addr.district, - is_by_all:back_data && back_data.is_by_all?1:0, - no_free_goods:back_data && back_data.no_free_goods && back_data.no_free_goods.length>0?1:0, - } - - var is_ok=1; - await getApp().request.promisePost('/api/weshop/order/getOrderWuLiPrice', {data:w_data,is_json:1}).then(res=>{ - if(res.data.code==0){ - cart_item.shipping_price=res.data.data; - }else{ - is_ok=0; - } - }) - - if(!is_ok){ - wx.hideLoading(); - wx.showToast({ - title: "计算物流错误", icon: 'none',duration: 2000 - }) - //th.setData({ show_submit:0, }); - - return false; - } - - if (!th.data.using_quan[pickid] || th.data.using_quan[pickid].isby != 1) { - if (cart_item.shipping_price == 0) th.data.is_by[pickid] = 1; //已经全场包邮,就不要选择券了 - } - } else if(cart_item.exp_type==1) { - cart_item.shipping_price = 0; - } - - cart_item.shipping_price = cart_item.shipping_price.toFixed(2); - //总价计算,总价不包含运费 - cart_item.order_amount = (o_price - quan_price).toFixed(2); - cart_item.total_amount = f_o_price.toFixed(2); - - var order_prom_amount = 0; - var order_prom_id = 0; - var o_condition = cart_item.order_amount; - var t_o_condition=cart_item.order_amount; - - - //看一下是不是不用组合购的订单优惠的叠加 - if (is_has_zh) { - o_condition = o_price_no_zh - quan_price; - } - //看一下是不是不用组合购的订单优惠的叠加 - if (is_has_ladder) { - o_condition = o_price_no_zh - quan_price; - } - - if(whsle_goods_price>0){ - o_condition=o_condition-whsle_goods_price; - t_o_condition=t_o_condition-whsle_goods_price; - } - - - - var order_m = 0; - //---判断是不是有订单优惠--- - await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { - data: { store_id: os.stoid, orderAmount: o_condition, user_id: getApp().globalData.user_id } - }).then(res => { - if (res.data.code == 0) { - var ord_prom = res.data.data; - //么有使用券,或者活动没有限制使用优惠券 - if (quan_price <= 0 || !ord_prom.is_xz_yh) { - order_prom_id = ord_prom['id']; - switch (ord_prom['type']) { - case 0: - order_m = Math.round(o_condition * ord_prom['expression']) / 100;//满额打折 - order_prom_amount = (o_condition - order_m).toFixed(2); - break; - case 1: - //order_m = o_condition - ord_prom['expression'];//满额优惠金额 - var bs=1; - if(ord_prom.is_bz){ - bs=Math.floor(o_condition/ord_prom.money); - } - order_prom_amount = ord_prom['expression']; - break; - } - } - } - }) - - cart_item.order_prom_amount = 0; - //--订单优惠的显示-- - if (order_prom_id > 0) { - cart_item.order_amount = (o_price - quan_price - order_prom_amount).toFixed(2); - cart_item.order_prom_id = order_prom_id; - cart_item.order_prom_amount = order_prom_amount; - } - coupon_price = quan_price; - if (cart_item.order_amount < 0) { - cart_item.order_amount = 0; - coupon_price = o_price; - } - - - //-- 在选择到同城配送的时候 -- - if(c_arr[i].exp_type==2 && th.data.user_addr){ - - var gd_w=0; - for (let ib in c_arr[i].goods) { - let item_bb = c_arr[i].goods[ib]; - gd_w += item_bb['weight'] * item_bb['goods_num']; - } - - if(!lon) { - //-- 获取距离 -- - await getApp().request.promisePost("/api/weshop/order/sameCityExp/getGeocoder", { - is_json: 1, data: {address: th.data.user_addr.more_address + th.data.user_addr.address} - }).then(res => { - if (res.data.code == 0) { - var data = JSON.parse(res.data.data); - if (data.status == 0) { - lon = data.result.location.lng; - lat = data.result.location.lat; - } - } - }) - } - - - var req_data={ - store_id:os.stoid, order_amount: parseFloat(cart_item.order_amount), - lon:lon,lat:lat, pickup_id:c_arr[i].pickup_id, goods_weight:gd_w - } - var is_next=1; - - //获取同城配送参数 - await getApp().request.promisePost("/api/weshop/order/sameCityExp/getMoney", {is_json:1,data:req_data}).then(res=>{ - if(res.data.code==0){ - cart_item.shipping_price = res.data.data; - }else{ - is_next=0; - - if(qfunc) qfunc(); - else{ - wx.showToast({ - title: res.data.msg, - icon: 'none', - duration: 2000 - }) - } - } - }) - if(!is_next) return false - } + } + item_map.s_libao = get_data.libao; + item_map.s_lb_num = get_data.lb_num; + //专享礼包 + item_map.zx_libao = get_data.zxlibao; + item_map.zx_lb_num = get_data.zxlb_num; + if (parseInt(get_data.zp_mode) == 1) { + if (!send_gf[pickid]) send_gf[pickid] = []; + var can_zp_num = 0; + for (let iy in get_data.giftsinfo) { + let item = get_data.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(get_data.zp_num) * parseInt(get_data.bs); + if (duo_zp_num_arr[item_map.prom_id]) { + t_zp_num += duo_zp_num_arr[item_map.prom_id]; + } - cart_item.total_amount = parseFloat(cart_item.total_amount) + parseFloat(cart_item.shipping_price); //总金额 - cart_item.order_amount = parseFloat(cart_item.order_amount) + parseFloat(cart_item.shipping_price); //总金额 - cart_item.total_amount = cart_item.total_amount.toFixed(2); - cart_item.order_amount = cart_item.order_amount.toFixed(2); + if (can_zp_num >= t_zp_num) { + send_gf[pickid].push({ + pickup_id: pickid, + giftsinfo: get_data.giftsinfo, + zp_num: get_data.zp_num * get_data.bs, + gf_pr_name: item_map.name, + prom_id: item_map.prom_id + }); - //-- 最后的金额小于佣金 -- - if(cart_item.order_amount=0 && item_map.price-item_map.prom_price){ + if (item_map.price - item_map.prom_price && item_map.prom_price !== null) { + if (cart_item.prom_pt_json) { + cart_item.prom_pt_json.push({ + "prom_id": item_map.prom_id, + "dis": (item_map.price - item_map.prom_price).toFixed(2), + "ispt": 0 + }) + } else { + cart_item.prom_pt_json = [{ + "prom_id": item_map.prom_id, + "dis": (item_map.price - item_map.prom_price).toFixed(2), + "ispt": 0 + }]; + } - if(th.data.cart_use_commission){ - wx.showToast({ - title: '应付金额小于本单佣金,不可使用!', - icon: 'none', - duration: 2000 - }) - } + //-- 如果系统要平摊到单品 -- - th.setData({ - cart_use_commission:0 - }); + var pt_data = { + 'prom_id': item_map.prom_id, + 'dis': parseFloat((item_map.price - item_map.prom_price).toFixed(2)), + 'goods': item_map.goods + } + var pt_res = null; + await getApp().request.promisePost("/api/weshop/order/getGoodsSplit", { + is_json: 1, + data: pt_data + }).then(res => { + if (res.data.code == 0) { + pt_res = res.data.data; + } + }) + if (pt_res) { + for (var io in item_map.goods) { + //平摊赋值 + item_map.goods[io].account_fir = th.arr_get_goods(item_map.goods[io].goods_id, pt_res).fisrt_account; + item_map.goods[io].account_yu_fir = th.arr_get_goods(item_map.goods[io].goods_id, pt_res).fisrt_account_yu; + if (!th.data.ispt_goods) { + item_map.goods[io].account = item_map.goods[io].account_fir; + item_map.goods[io].account_yu = item_map.goods[io].account_yu_fir; + } + } + } - } + o_price -= (item_map.price - item_map.prom_price); + //如果有限制使用优惠券,就要减掉参与的活动商品的钱 + if (!item_map.is_xz_yh) q_conditin = o_price; + } + + //--------循环计算商品是不是包邮,是不是使用优惠券,此时循环是商品从表----------- + for (var j = 0; j < ord_goods.length; j++) { + if (ord_goods[j].is_gift) continue; + if (ord_goods[j].whsle_id) continue; + if (ord_goods[j].prom_type == 3 && ord_goods[j].prom_id == item_map.prom_id) { + ord_goods[j].is_xz_yh = ord_goods[j].is_xz_yh ? ord_goods[j].is_xz_yh : item_map.is_xz_yh; + ord_goods[j].is_past = item_map.is_past; + ord_goods[j].account_fir = th.item_map_get_goods(ord_goods[j].goods_id, item_map).account_fir; + ord_goods[j].account_yu_fir = th.item_map_get_goods(ord_goods[j].goods_id, item_map).account_yu_fir; + ord_goods[j].account = th.item_map_get_goods(ord_goods[j].goods_id, item_map).account; + ord_goods[j].account_yu = th.item_map_get_goods(ord_goods[j].goods_id, item_map).account_yu; + } + } + + + //--优惠多少钱-- + if (!cart_item.cut_price) cart_item.cut_price = 0; + //-- -- + if (item_map.price != undefined && item_map.price != null + && item_map.prom_price != undefined && item_map.prom_price != null) + cart_item.cut_price += (item_map.price - item_map.prom_price); + //---如果有送积分--- + if (item_map.s_intValue) { + if (!cart_item.s_intValue) cart_item.s_intValue = 0; + cart_item.s_intValue += item_map.s_intValue; + } + //-- 如果有送优惠券的情况 -- + if (item_map.s_coupon_id) { + if (!cart_item.s_coupon_id) { + cart_item.s_coupon_id = item_map.s_coupon_id + ""; + cart_item.g_coupon_num = [{ 'c_id': item_map.s_coupon_id, "num": item_map.s_coupon_num }]; + } + else { + cart_item.s_coupon_id += "," + item_map.s_coupon_id; + cart_item.g_coupon_num.push({ 'c_id': item_map.s_coupon_id, "num": item_map.s_coupon_num }) + } + } + //-- 如果有送礼包的情况 -- + if (item_map.s_libao) { + if (!cart_item.s_libao) { + cart_item.s_libao = item_map.s_libao + ""; + cart_item.g_lb_num = [{ 'l_id': item_map.s_libao, "num": item_map.s_lb_num, 'lbtitle': item_map.lbtitle }]; + } + else { + cart_item.s_libao += "," + item_map.s_libao; + cart_item.g_lb_num.push({ 'l_id': item_map.s_libao, "num": item_map.s_lb_num, 'lbtitle': item_map.lbtitle }) + } + } - if(th.data.cart_use_commission){ - cart_item.order_amount-=cart_item.can_usecommise; - } + if (item_map.zx_libao) { + if (!cart_item.zx_libao) { + cart_item.zx_libao = item_map.zx_libao + ""; + cart_item.g_zxlb_num = [{ 'l_id': item_map.zx_libao, "num": item_map.zx_lb_num, 'zxlbtitle': item_map.zxlbtitle }]; + } + else { + cart_item.zx_libao += "," + item_map.zx_libao; + cart_item.g_zxlb_num.push({ 'l_id': item_map.zx_libao, "num": item_map.zx_lb_num, 'zxlbtitle': item_map.zxlbtitle }) + } + } + } + } + } - //搭配购在使用余额 - if (th.data.bn_use_money == 1 && th.data.is_b_now == 1) { - - if (umoney > cart_item.order_amount) { - cart_item.user_money = cart_item.order_amount; - umoney = umoney - cart_item.order_amount; - } else { - cart_item.user_money = umoney; - umoney = 0; - } - - } else { - //--------------如果使用余额,购物车购买--------------------- - if (th.data.js_use_money == 1) { - if (umoney > cart_item.order_amount) { - cart_item.user_money = cart_item.order_amount; - umoney = umoney - cart_item.order_amount; - } else { - cart_item.user_money = umoney; - umoney = 0; - } - } else { - cart_item.user_money = 0; - } - } - cart_item.user_money = parseFloat(cart_item.user_money).toFixed(2); - if (coupon_price > 0) cart_item.coupon_price = coupon_price.toFixed(2); - else cart_item.coupon_price = coupon_price - if (quan_no) cart_item.quan_no = quan_no; + var arr = Object.keys(send_gf); + var arr2 = Object.keys(th.data.send_gf); + if (arr2.length > 0) return false; + th.calclate_lbNum(c_arr); + if (arr.length > 0) { + th.setData({ send_gf: send_gf }) + } else { + th.setData({ send_gf: {} }) + } + }, + + + + calclate_lbNum(r_data) { + let send_lb = this.data.send_lb; + //g_lb_num我的礼包 g_zxlb_num专享礼包 + r_data.forEach(r_d => { + let arr = []; + if (r_d.g_zxlb_num) { + let g_lb = r_d.g_zxlb_num; + for (let i = 0; i < g_lb.length; i++) { + let item = g_lb[i]; + let new_lb = g_lb.filter(lb => { + return item.l_id === lb.l_id; + }); + if (new_lb.length == 1) { + arr.push(item); + } else { + item.num = new_lb.reduce((pre, next) => { + return pre + next.num; + }, 0); + arr.push(item); + g_lb = g_lb.filter(ii => { + return ii.l_id !== item.l_id; + }); + } + send_lb[r_d.pickup_id] = arr; + } + } + if (r_d.g_lb_num) { + let zx_lb = r_d.g_lb_num; + for (let i = 0; i < zx_lb.length; i++) { + let item = zx_lb[i]; + item.flag = 1; + let new_lb = zx_lb.filter(lb => { + return item.l_id === lb.l_id; + }); + if (new_lb.length == 1) { + arr.push(item); + } else { + item.num = new_lb.reduce((pre, next) => { + return pre + next.num; + }, 0); + arr.push(item); + zx_lb = zx_lb.filter(ii => { + return ii.l_id !== item.l_id; + }); + } + send_lb[r_d.pickup_id] = arr; + } + } + }) + this.setData({ + send_lb, + }) + + }, + + //-------------------计算订单价格------------------- + calculatePrice: async function (qfunc) { + var th = this; + th.setData({ submit: 1 }); + + wx.showLoading({ + title: "处理中.", + mask: true + }) + //-- to.getwuliuprice(async function (rs) { -- + + //是不是区域包邮 + th.data.is_area_by = 0; + //当不是区域不包邮的时候,没有不包邮商品的时候 + th.data.free1 = 0; + th.data.cut_o_shipping_price = 0; + th.data.cut_goods_piece = 0; + th.data.cut_goods_weight = 0; + + var all_price = 0; //所有的商品总价 + var all_shipping_m = 0; //所有的物流总价 + var all_total_m = 0; //所有的订单应付总价 + var all_order_m = 0; //所有的订单应付总价 + var all_user_m = 0; //所有的订单用户使用金额 + var all_coupon_price_m = 0; //所有的订单用户使用优惠券价格 + var all_cutprice = 0; //所有的优惠减 + var all_zh_cutprice = 0; //所有的组合优惠减 + var all_ladder_cutprice = 0; //所有的阶梯促销优惠减 + var all_order_prom = 0; //所有的订单优惠 + + var umoney = th.data.userinfo.user_money - th.data.txmon - (th.data.userinfo.frozen_money ? th.data.userinfo.frozen_money : 0); + var out_of_weight = 0; //超出多少重量 + var c_arr = JSON.parse(JSON.stringify(th.data.old_cartlist)); + + if (th.data.cartlist && th.data.cartlist.length > 0) { + for (var i = 0; i < c_arr.length; i++) { + c_arr[i].exp_type = th.data.cartlist[i].exp_type; + c_arr[i].wind = th.data.cartlist[i].wind; + } + } - //cart_item.goods_price = o_price.toFixed(2); - cart_item.order_amount = cart_item.order_amount - cart_item.user_money; //会员使用余额 + //调用函数计算每件商品的单价 + await th.calc_per(c_arr); + + //调用函数计算每件组合购商品的单价, + await zh_calc.calc_zh_split_price(c_arr, th); + + //调用函数计算每件阶梯促销商品的单价, + await ladder_calc.calc_split_price(c_arr, th); + //调用函数计算,优惠券优惠什么商品价格,优惠券优惠什么商品 + + await th.get_cart_quan(c_arr); + + + //-- 经纬度不循环调用接口 -- + var lon = 0; var lat = 0; + //---循环购物车--- + for (var i in c_arr) { + //因为搭配购买也是再这里计算,搭配购的is_b_now==1 + if (th.data.is_b_now == 0) { + //此时物流的选择方式要用th.data.cartlist; + c_arr[i].exp_type = th.data.cartlist[i].exp_type; + c_arr[i].wind = th.data.cartlist[i].wind; + if (th.data.cartlist[i].check_quan_price_list) c_arr[i].check_quan_price_list = th.data.cartlist[i].check_quan_price_list; //优惠券优惠什么商品价格 + if (th.data.cartlist[i].check_quan_ware_list) c_arr[i].check_quan_ware_list = th.data.cartlist[i].check_quan_ware_list; //优惠券优惠什么商品 + } else { + c_arr[i].exp_type = th.data.bn_exp_type; //配送方式 + c_arr[i].wind = th.data.index; //立即购买选择的物流 + //c_arr[i].=th.data. //立即购买的使用余额 + if (th.data.cartlist) c_arr[i].check_quan_price_list = th.data.cartlist[i].check_quan_price_list; //优惠券优惠什么商品价格 + if (th.data.cartlist) c_arr[i].check_quan_ware_list = th.data.cartlist[i].check_quan_ware_list; //优惠券优惠什么商品 + } + + + var cart_item = c_arr[i]; //就是每一单的意思 + var pickid = cart_item.pickup_id; + var o_price = 0; + var o_price_no_zh = 0; //参与订单优惠叠加--组合购的金额汇总 + var o_shipping_price = 0, goods_weight = -1, goods_piece = -1; + var item = c_arr[i].goods; //就是每一单的从表的意思 + + //---如果有选择优惠券的情况下--- + var quan_price = 0; + var coupon_price = 0; + var quan_no = null; + var is_has_zh = c_arr[i].is_has_zh; + var is_has_ladder = c_arr[i].is_has_ladder; + + var zh_prom_goods = c_arr[i].zh_prom_goods; //组合购计算的原始数据存储空间 + var ladder_prom_goods = c_arr[i].ladder_prom_goods; //组合购计算的原始数据存储空间 + + if (th.data.using_quan[pickid] != null && th.data.using_quan[pickid] != undefined) + quan_no = th.data.using_quan[pickid].coupon_no; + + //普通券的时候 + if (quan_no && th.data.using_quan[pickid].isby != 1) { + //---获取优惠券优惠--- + await getApp().request.promiseGet("/api/weshop/couponList/getUseCouponPrice", { + data: { + storeId: oo.stoid, + CashRepNo: quan_no, + WaresSum: cart_item.check_quan_price_list, + WareIds: cart_item.check_quan_ware_list + } + }).then(res => { + if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { + var q_data = res.data.data; + //--存储商品优惠的内容-- + cart_item.quan_youhui_list = q_data; + for (var k in q_data) + quan_price += q_data[k].WareCashSum; + } + }) + } - all_price += parseFloat(f_o_price); - all_total_m += parseFloat(cart_item.total_amount); - all_shipping_m += parseFloat(cart_item.shipping_price); - all_order_m += parseFloat(cart_item.order_amount); - all_user_m += parseFloat(cart_item.user_money); - all_coupon_price_m += parseFloat(cart_item.coupon_price); - all_cutprice += parseFloat(cart_item.cut_price); - all_zh_cutprice += parseFloat(cart_item.zh_cut_price); - all_ladder_cutprice += parseFloat(cart_item.ladder_cut_price); - all_order_prom += parseFloat(cart_item.order_prom_amount); - } + var whsle_goods_price = 0; + //--------循环计算总价----------- + for (var j = 0; j < item.length; j++) { - all_shipping_m = parseFloat(all_shipping_m).toFixed(2); - all_total_m = parseFloat(all_total_m).toFixed(2); - all_order_m = parseFloat(all_order_m).toFixed(2); - all_price = parseFloat(all_price).toFixed(2); - all_user_m = parseFloat(all_user_m).toFixed(2); - all_total_m = parseFloat(all_total_m).toFixed(2); - all_coupon_price_m = parseFloat(all_coupon_price_m).toFixed(2); - all_cutprice = all_cutprice.toFixed(2); - all_order_prom = all_order_prom.toFixed(2); - all_zh_cutprice = parseFloat(all_zh_cutprice).toFixed(2); - all_ladder_cutprice = parseFloat(all_ladder_cutprice).toFixed(2); - - var atxt = "formData.total_amount"; - var atxt1 = "formData.order_amount"; - var atxt2 = "formData.all_price"; - var atxt3 = "formData.user_money"; - var atxt4 = "formData.shipping_price"; - var atxt5 = "formData.coupon_price"; - var atxt6 = "formData.cut_price"; - var atxt7 = "formData.order_prom_amount"; - var atxt8 = "formData.zh_cut_price"; - var atxt9 = "formData.ladder_cut_price"; + if (item[j].whsle_id > 0) { + whsle_goods_price += item[j].goods_price * item[j].goods_num; + } - th.setData({ - [atxt]: all_total_m, [atxt1]: all_order_m, - [atxt2]: all_price, [atxt3]: all_user_m, [atxt4]: all_shipping_m, - [atxt5]: all_coupon_price_m, [atxt6]: all_cutprice, - [atxt7]: all_order_prom, show_submit: 1, [atxt8]: all_zh_cutprice, [atxt9]: all_ladder_cutprice,submit:0 - }) - th.data.order_prom_list_cart = c_arr; - th.set_can_num(); - wx.hideLoading(); + var is_no_zh = 0; + if (item[j].prom_type != 7 && item[j].prom_type != 10) is_no_zh = 1; - //}); - }, + //组合购的商品,且有订单优惠的叠加,is_orderyh就是优惠叠加 + if (item[j].prom_type == 7 && th.data.zhhe_act_map && th.data.zhhe_act_map[item[j].prom_id] + && th.data.zhhe_act_map[item[j].prom_id].is_orderyh) { + is_no_zh = 1; + } + //阶梯购的商品,且有订单优惠的叠加,is_orderyh就是优惠叠加 + if (item[j].prom_type == 10 && ladder_prom_goods && ladder_prom_goods[item[j].prom_id] + && th.data.ladder_map[item[j].prom_id].is_useorderyh) { + is_no_zh = 1; + } - set_can_num: function () { - var th = this; - //-- 这个地方,循环计算几张优惠券可用-- - for (var iter in th.data.cartlist) { - var num = 0; - var c_item = th.data.cartlist[iter]; - var pkid = c_item.pickup_id; - //-- 普通券 -- - if (c_item.quan_list) { - for (var iter1 in c_item.quan_list) { - //判断是不是其他订单有选用 - var is_other_is_use = th.check_other_use(c_item.quan_list[iter1], pkid); - if (!is_other_is_use) num++; - } + if (is_no_zh) { + o_price_no_zh += item[j].goods_price * item[j].goods_num; + } + o_price += item[j].goods_price * item[j].goods_num; + + } + //判断是不是有组合购的金额 + var f_o_price = o_price; + //如果又优惠的钱,就要减价 + if (c_arr[i].cut_price > 0) { + o_price -= c_arr[i].cut_price; + o_price_no_zh -= c_arr[i].cut_price; + } + //如果有组合购优惠的钱,就要减价 + if (c_arr[i].zh_cut_price > 0 || c_arr[i].zh_cut_price < 0) { + o_price -= c_arr[i].zh_cut_price; + if (o_price_no_zh > 0) { + //找到那些可以订单优惠叠加的 + for (let ij in zh_prom_goods) { + let kitem = zh_prom_goods[ij]; + if (kitem.act.is_orderyh) + o_price_no_zh -= kitem.cut_price; + } + } + } + + //如果有组合购优惠的钱,就要减价 + if (c_arr[i].ladder_cut_price > 0 || c_arr[i].ladder_cut_price < 0) { + o_price -= c_arr[i].ladder_cut_price; + if (o_price_no_zh > 0) { + //找到那些可以订单优惠叠加的 + for (let ij in ladder_prom_goods) { + let kitem = ladder_prom_goods[ij]; + if (th.data.ladder_map[ij].is_useorderyh) + o_price_no_zh -= kitem.cut_price; + } + } + } + + //-- 计算线下取价的功能 -- + if (cart_item.is_offline == 1) { + o_price = o_price - cart_item.offline_price; + o_price_no_zh -= c_arr[i].offline_price; + } + //判断包邮券的钱,组合购的商品不使用优惠券 + var q_conditin = 0; + q_conditin = o_price - quan_price; + if (is_has_zh) { + q_conditin = o_price_no_zh - quan_price; + } + cart_item.goods_price = f_o_price.toFixed(2); //商品总费用,用f_o_price来计算 + //计算物流费用 + cart_item.shipping_price = 0; + + th.data.is_no_past = 1; //不包邮标识符 + + var back_data = null; + var quan_no_goods_arr = null; + //--如果是物流,且选择了地址,就要开始显示包邮券,且包邮券也已经优惠了优惠活动的金额-- + if (cart_item.exp_type == 0 && th.data.user_addr != null && !cart_item.is_xz_yh) { + //看是不是有调用过包邮券 + if (!th.data.isget_by_quan[pickid]) { + //--判断要不要显示包邮券,调用接口,因为有for循环--- + await getApp().request.promiseGet("/api/weshop/userfeemail/pageAndArea", { + data: { + store_id: os.stoid, + isuse: 0, + //condition: q_conditin, + condition: cart_item.ckeck_quan_price, + user_id: getApp().globalData.user_id, + pageSize: 2000 } - //-- 包邮券 -- - var by_quan = th.data.get_by_quan_list_cart[pkid]; - if (by_quan && c_item.exp_type==0) { - for (var iter2 in by_quan) { - //判断是不是其他订单有选用 - var is_other_is_use = th.check_other_use_by(by_quan[iter2], pkid); - if (!is_other_is_use) num++; + }).then(res => { + if (res.data.code == 0 && res.data.data.total > 0) { + //此时要循环判断包邮的地区,不包邮商品是不是符合 + var arr = [], quanlist = res.data.data.pageData; + quanlist = th.check_is_frozenQuan(quanlist, th.data.frozenQuan, 1); + for (var i in quanlist) { + var item = quanlist[i]; + var goods = cart_item.goods; + var g_arr = []; + for (var ii in goods) { + g_arr.push(goods[ii].goods_id); + } + if (item.region_list && th.check_by_area(item.region_list)) continue; //如果是不包邮区域 + if (item.goods_list) { + var no_goods_arr = item.goods_list.split(","); + if (ut.isContained(no_goods_arr, g_arr)) continue; //如果是不包邮商品 } + arr.push(item); + } + if (arr) { + th.data.get_by_quan_list_cart[pickid] = arr; + th.setData({ get_by_quan_list_cart: th.data.get_by_quan_list_cart }); + //if (th.data.is_b_now) { + // th.setData({get_by_quan_list: arr}); + //} + } + th.data.isget_by_quan[pickid] = 1; } - var set_txt = "cartlist[" + iter + "].can_num"; - th.setData({ [set_txt]: num }); + }) } - }, - - //---------计算立即购买---------- - calculatePrice2: async function (qfunc) { - var th = this, good = this.data.bn_goods; - - if (!good) return false; - - //搭配的计算要用购物的车计算方法 - if (good.prom_type == 5) { - th.calculatePrice(); - return false; + var user_addr = th.data.user_addr; + var req_d = { + province: user_addr.province, city: user_addr.city, district: user_addr.district, + wuliu: parseFloat(o_price - quan_price - whsle_goods_price).toFixed(2), store_id: os.stoid } + await getApp().request.promisePost("/api/weshop/order/areaFreight", { + is_json: 1, data: req_d + }).then(rs => { + if (rs.data.code == 0) back_data = rs.data.data; + }); - th.setData({submit:1}); - wx.showLoading({ - title: "处理中.", - mask:true - }) + } - //-----------计算商品总价-------------- - var allpice = good.shop_price * good.buynum; - var cut_price = 0; - var allpice1 = allpice; + //如果是包邮券的时候,要看看券的情况 + if (quan_no && th.data.using_quan[pickid].isby == 1) { + var quan = th.data.using_quan[pickid]; + if (!quan.goods_list) { + th.data.is_quan_by[pickid] = 1; //专门给券的判断用的 + } else { + th.data.is_quan_by[pickid] = 0; + quan_no_goods_arr = quan.goods_list.split(","); - if (good.prom_type == 3 && good.prom_price !== null) { - cut_price = allpice - good.prom_price; + } + } else { + th.data.is_quan_by[pickid] = 0; //专门给券的判断用的 + } + + var cut_good_weight = 0; + //计算物流价格 + if (cart_item.exp_type == 0 && th.data.user_addr && !th.data.is_quan_by[pickid]) { + + //如果有包邮券的不包邮商品的时候 + if (quan_no_goods_arr) { + if (back_data && back_data.no_free_goods) { + back_data['is_by_all'] = 1; + var arr3 = back_data.no_free_goods.filter(item => { + return quan_no_goods_arr.includes(item) + }) + back_data.no_free_goods = null; + if (arr3.length) { + back_data.no_free_goods = arr3; + } + } + if (!back_data || !back_data.no_free_goods) { + if (!back_data) back_data = {}; + back_data['is_by_all'] = 1; + back_data['no_free_goods'] = quan_no_goods_arr; + } } - allpice = parseFloat(allpice).toFixed(2); - var txt = "formData.all_price"; - th.setData({ [txt]: allpice, }); - if (cut_price) { - var c_txt = "formData.cut_price"; - th.setData({ [c_txt]: cut_price, }); + //--------循环计算总价----------- + for (var j = 0; j < item.length; j++) { + + //如果是一件代发商品,不计算运费 + if (item[j].whsle_id) continue; + //如果商品本身是包邮了 + if (item[j].is_free_shipping == 1) continue; + //如果是优惠活动是包邮,就不用计算包邮的费用了 + if (item[j].is_past) continue; + //--如果是包邮券使用的情况下,如果商品是包邮的,那么就不进行计算-- + if (th.data.using_quan[pickid] && th.data.using_quan[pickid].isby == 1 && th.data.is_quan_by[pickid]) { + continue; + } + + if (back_data && back_data['is_by_all'] && (!back_data.no_free_goods || back_data.no_free_goods.indexOf(item[j].goods_id) == -1)) { + + if (item[j]['exp_sum_type'] == 2 && back_data.weight_free > 0) { + if (goods_weight < 0) goods_weight = 0; + cut_good_weight += item[j]['weight'] * item[j]['goods_num']; + goods_weight += item[j]['weight'] * item[j]['goods_num']; + } + if (back_data.weight_free > 0) { + out_of_weight = (back_data.weight_free * 1000) - cut_good_weight; + } + continue; + + } + + switch (item[j]['exp_sum_type']) { + case 1: + //统一运费 + o_shipping_price += item[j]['uniform_exp_sum']; + break; + case 2: + if (goods_weight < 0) goods_weight = 0; + //累积商品重量 每种商品的重量 * 数量 + goods_weight += item[j]['weight'] * item[j]['goods_num']; + + if (back_data && back_data.is_by_all && !back_data.no_free_goods) { + cut_good_weight += item[j]['weight'] * item[j]['goods_num']; + if (back_data.weight_free > 0) { + out_of_weight = (back_data.weight_free * 1000) - cut_good_weight; + } + } + break; + case 3: + if (goods_piece < 0) goods_piece = 0; + //累积商品数量 + goods_piece += item[j]['goods_num']; + break; + } } - //如果有线下取价的时候 - if (good.is_offline) { - allpice = good.offline_price * good.buynum; + //如果是正值的时候 + if (out_of_weight >= 0) out_of_weight = -cut_good_weight; + else out_of_weight = -back_data.weight_free * 1000; + + var code = ""; + if (th.data.wu_arr && th.data.wu_arr[cart_item.wind]) + code = th.data.wu_arr[cart_item.wind].code; + + // cart_item.shipping_price = + // ut.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight,goods_piece, th.data.user_addr, back_data, rs); + + var w_data = { + store_id: os.stoid, code: code, + o_shipping_price: o_shipping_price, + goods_weight: goods_weight, + out_of_weight: out_of_weight, goods_piece: goods_piece, + user_addr_province: th.data.user_addr.province, + user_addr_city: th.data.user_addr.city, + user_addr_district: th.data.user_addr.district, + is_by_all: back_data && back_data.is_by_all ? 1 : 0, + no_free_goods: back_data && back_data.no_free_goods && back_data.no_free_goods.length > 0 ? 1 : 0, } - //to.getwuliuprice(async function (rs) { + var is_ok = 1; + await getApp().request.promisePost('/api/weshop/order/getOrderWuLiPrice', { data: w_data, is_json: 1 }).then(res => { + if (res.data.code == 0) { + cart_item.shipping_price = res.data.data; + } else { + is_ok = 0; + } + }) - var o_shipping_price = 0, goods_weight = -1, goods_piece = -1; - var out_of_weight = null; //超出多少重量 + if (!is_ok) { + wx.hideLoading(); + wx.showToast({ + title: "计算物流错误", icon: 'none', duration: 2000 + }) + //th.setData({ show_submit:0, }); - //---如果有选择优惠券的情况下--- - var quan_price = 0, bn_pick = th.data.bn_pick; - var quan_no = null; - if (th.data.using_quan[bn_pick] != null && th.data.using_quan[bn_pick] != undefined) - quan_no = th.data.using_quan[bn_pick].coupon_no; + return false; + } - if (quan_no) { - //如果是一件代发就不要找商品 - if (th.data.using_quan[bn_pick].isby != 1 && !good.whsle_id) { - //---获取优惠券优惠--- - await getApp().request.promiseGet("/api/weshop/couponList/getUseCouponPrice", { - data: { - storeId: oo.stoid, - CashRepNo: quan_no, - WaresSum: th.data.ckeck_quan_price, - WareIds: th.data.check_quan_ware_list - } - }).then(res => { - if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { - quan_price = res.data.data[0].WareCashSum; - } - }) - } + if (!th.data.using_quan[pickid] || th.data.using_quan[pickid].isby != 1) { + if (cart_item.shipping_price == 0) th.data.is_by[pickid] = 1; //已经全场包邮,就不要选择券了 + } + } else if (cart_item.exp_type == 1) { + cart_item.shipping_price = 0; + } + + cart_item.shipping_price = cart_item.shipping_price.toFixed(2); + //总价计算,总价不包含运费 + cart_item.order_amount = (o_price - quan_price).toFixed(2); + cart_item.total_amount = f_o_price.toFixed(2); + + var order_prom_amount = 0; + var order_prom_id = 0; + var o_condition = cart_item.order_amount; + var t_o_condition = cart_item.order_amount; + + + //看一下是不是不用组合购的订单优惠的叠加 + if (is_has_zh) { + o_condition = o_price_no_zh - quan_price; + } + //看一下是不是不用组合购的订单优惠的叠加 + if (is_has_ladder) { + o_condition = o_price_no_zh - quan_price; + } + + if (whsle_goods_price > 0) { + o_condition = o_condition - whsle_goods_price; + t_o_condition = t_o_condition - whsle_goods_price; + } + + + + var order_m = 0; + //---判断是不是有订单优惠--- + await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { + data: { store_id: os.stoid, orderAmount: o_condition, user_id: getApp().globalData.user_id } + }).then(res => { + if (res.data.code == 0) { + var ord_prom = res.data.data; + //么有使用券,或者活动没有限制使用优惠券 + if (quan_price <= 0 || !ord_prom.is_xz_yh) { + order_prom_id = ord_prom['id']; + switch (ord_prom['type']) { + case 0: + order_m = Math.round(o_condition * ord_prom['expression']) / 100;//满额打折 + order_prom_amount = (o_condition - order_m).toFixed(2); + break; + case 1: + //order_m = o_condition - ord_prom['expression'];//满额优惠金额 + var bs = 1; + if (ord_prom.is_bz) { + bs = Math.floor(o_condition / ord_prom.money); } + order_prom_amount = ord_prom['expression']; + break; + } + } + } + }) + + cart_item.order_prom_amount = 0; + //--订单优惠的显示-- + if (order_prom_id > 0) { + cart_item.order_amount = (o_price - quan_price - order_prom_amount).toFixed(2); + cart_item.order_prom_id = order_prom_id; + cart_item.order_prom_amount = order_prom_amount; + } + coupon_price = quan_price; + if (cart_item.order_amount < 0) { + cart_item.order_amount = 0; + coupon_price = o_price; + } + + + //-- 在选择到同城配送的时候 -- + if (c_arr[i].exp_type == 2 && th.data.user_addr) { + + var gd_w = 0; + for (let ib in c_arr[i].goods) { + let item_bb = c_arr[i].goods[ib]; + gd_w += item_bb['weight'] * item_bb['goods_num']; + } - var gd_arr_list = []; - gd_arr_list.push(good); - if (th.data.buy_now_gift_goods) { - gd_arr_list = [...gd_arr_list, ...th.data.buy_now_gift_goods]; - } + if (!lon) { + //-- 获取距离 -- + await getApp().request.promisePost("/api/weshop/order/sameCityExp/getGeocoder", { + is_json: 1, data: { address: th.data.user_addr.more_address + th.data.user_addr.address } + }).then(res => { + if (res.data.code == 0) { + var data = JSON.parse(res.data.data); + if (data.status == 0) { + lon = data.result.location.lng; + lat = data.result.location.lat; + } + } + }) + } - //-----------当地址不为空,且是物流时,计算物流费用,并同时商品不是优惠活动的包邮---------- - if (th.data.user_addr != null && th.data.bn_exp_type == 0 && good.is_past != 1) { - //看是不是有调用过包邮券 - if (!th.data.isget_by_quan[th.data.bn_pick] && good.is_xz_yh != 1) { - var condition = allpice - cut_price - quan_price; - //--判断要不要显示包邮券,链式调用接口,调取包邮券,已经是减了优惠的金额,见到优惠券的钱--- - getApp().request.promiseGet("/api/weshop/userfeemail/pageAndArea", { - data: { - store_id: os.stoid, - isuse: 0, - condition: condition, - user_id: getApp().globalData.user_id, - pageSize: 2000 - } - }).then(res => { - if (res.data.code == 0 && res.data.data.total > 0) { - //此时要循环判断包邮的地区,不包邮商品是不是符合 - var arr = [], quanlist = res.data.data.pageData; - quanlist = th.check_is_frozenQuan(quanlist, th.data.frozenQuan, 1); - for (var i in quanlist) { - var item = quanlist[i]; - if (item.region_list && th.check_by_area(item.region_list)) continue; //如果是不包邮区域 - if (item.goods_list) { - var no_goods_arr = item.goods_list.split(","); - if (ut.isContained(no_goods_arr, gd_arr_list)) continue; //如果是不包邮商品 - } - arr.push(item); - } - if (arr) { - th.setData({ get_by_quan_list: arr }); - } - th.data.isget_by_quan[th.data.bn_pick] = 1; - } - }) - } - var shipping_price =0; - var quan_no_goods_arr=null; - var is_by_quan=0; - var pickid=th.data.bn_pick; - - //如果是包邮券的时候,要看看券的情况,判断一下包邮有没有不包邮模板 - if (quan_no && th.data.using_quan[pickid].isby == 1) { - var quan = th.data.using_quan[pickid]; - if (quan.goods_list) { - quan_no_goods_arr=quan.goods_list.split(","); - }else{ - is_by_quan=1; - } - } - if(!is_by_quan) { - var user_addr = th.data.user_addr; - var req_d = { - province: user_addr.province, - city: user_addr.city, - district: user_addr.district, - wuliu: parseFloat(parseFloat(allpice) - cut_price - quan_price).toFixed(2), - store_id: os.stoid - } - var back_data = null; - await getApp().request.promisePost("/api/weshop/order/areaFreight", { - is_json: 1, data: req_d - }).then(rs => { - if (rs.data.code == 0) back_data = rs.data.data; - }); - - //如果有包邮券的不包邮商品的时候 - if(quan_no_goods_arr) { - if (back_data && back_data.no_free_goods) { - back_data['is_by_all']=1; - var arr3 = back_data.no_free_goods.filter(item => { - return quan_no_goods_arr.includes(item) - }) - back_data.no_free_goods = null; - if (arr3.length) { - back_data.no_free_goods = arr3; - } - } - if (!back_data || !back_data.no_free_goods) { - if (!back_data) back_data={}; - back_data['is_by_all']=1; - back_data['no_free_goods']=quan_no_goods_arr; - } - } - - var cut_good_weight = 0; - for (let i in gd_arr_list) { - let item = gd_arr_list[i]; - - if(good.is_free_shipping==1) continue; - //-- 代发商品不算运费 -- - if(good.whsle_id) continue; - - if (back_data && back_data['is_by_all'] && (!back_data.no_free_goods || back_data.no_free_goods.indexOf(item.goods_id) == -1)) { - - if (item['exp_sum_type'] == 2 && back_data.weight_free>0) { - if (goods_weight < 0) goods_weight = 0; - goods_weight += item['weight'] * item['buynum']; - cut_good_weight += item['weight'] * item['buynum']; - } - if (back_data.weight_free > 0) { - out_of_weight = (back_data.weight_free * 1000) - cut_good_weight; - } - continue; - - } - - switch (item['exp_sum_type']) { - case 1: - //统一运费 - o_shipping_price += item['uniform_exp_sum']; - break; - case 2: - if (goods_weight < 0) goods_weight = 0; - //累积商品重量 每种商品的重量 * 数量 - goods_weight += item['weight'] * item['buynum']; - - if (back_data && back_data.is_by_all && !back_data.no_free_goods) { - cut_good_weight += item['weight'] * item['buynum']; - if (back_data.weight_free > 0) { - out_of_weight = (back_data.weight_free * 1000) - cut_good_weight; - } - } - break; - case 3: - if (goods_piece < 0) goods_piece = 0; - //累积商品数量 - goods_piece += parseInt(item['buynum']) ; - break; - } - } - - //如果是正值的时候 - if (out_of_weight >= 0) out_of_weight = -cut_good_weight; - else out_of_weight = -back_data.weight_free * 1000; - - var code = ""; - if (th.data.wu_arr && th.data.wu_arr[th.data.index]) code = th.data.wu_arr[th.data.index].code; - th.data.is_no_by[th.data.bn_pick] = 0; - th.data.is_by[th.data.bn_pick] = 0; - - //--------------开始计算物流------------------ - // shipping_price = ut.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight, - // goods_piece, th.data.user_addr, back_data, rs); - - var w_data={ - store_id:os.stoid, code:code, - o_shipping_price:o_shipping_price, - goods_weight:goods_weight, - out_of_weight:out_of_weight,goods_piece:goods_piece, - user_addr_province:th.data.user_addr.province, - user_addr_city:th.data.user_addr.city, - user_addr_district:th.data.user_addr.district, - is_by_all:back_data && back_data.is_by_all?1:0, - no_free_goods:back_data && back_data.no_free_goods && back_data.no_free_goods.length>0?1:0, - } - - var is_ok=1; - await getApp().request.promisePost('/api/weshop/order/getOrderWuLiPrice', {data:w_data,is_json:1}).then(res=>{ - if(res.data.code==0){ - shipping_price=res.data.data; - }else{ - is_ok=0; - } - }) - - if(!is_ok){ - wx.hideLoading(); - wx.showToast({ - title: "计算物流错误", icon: 'none',duration: 2000 - }) - //th.setData({ show_submit:0 }); - - return false; - } - - if (shipping_price <= 0) { - th.data.is_by[th.data.bn_pick] = 1; //已经是包邮了,就不要选择包邮券 - } - } - - shipping_price = parseFloat(shipping_price).toFixed(2); - var wl_txt = "formData.shipping_price"; - th.setData({[wl_txt]: shipping_price,}) - - } else if(th.data.bn_exp_type == 1 ) { - var wl_txt = "formData.shipping_price"; - th.setData({ [wl_txt]: 0, }) - } + var req_data = { + store_id: os.stoid, order_amount: parseFloat(cart_item.order_amount), + lon: lon, lat: lat, pickup_id: c_arr[i].pickup_id, goods_weight: gd_w + } + var is_next = 1; - if (quan_no) { - if (th.data.using_quan[bn_pick].isby == 1) { - shipping_price = 0; - var wl_txt = "formData.shipping_price"; - th.setData({ [wl_txt]: 0, }) - } - } - //-----------------支付价,优惠券不减物流----------------- - var total_m = (parseFloat(allpice1)).toFixed(2); - var order_m = (parseFloat(allpice - cut_price) - quan_price).toFixed(2); - var coupon_price = quan_price; //优惠券优惠了多少钱 - if (order_m < 0) { - order_m = 0; - coupon_price = parseFloat(order_m).toFixed(2); - } - //--看一下有没有订单优惠-- - var o_condition = parseFloat(order_m); - if(th.data.bn_goods.whsle_id>0){ - o_condition=0; - } - if (o_condition > 0) { - th.check_is_order_prom(o_condition,async function () { - var order_prom_amount = 0; - var order_prom_id = 0; - if (th.data.order_prom[th.data.bn_pick] && th.data.order_prom[th.data.bn_pick]['money'] <= o_condition) { - var ord_prom = th.data.order_prom[th.data.bn_pick]; - //么有使用券,或者活动没有限制使用优惠券 - if (coupon_price <= 0 || !ord_prom.is_xz_yh) { - order_prom_id = ord_prom['id']; - switch (ord_prom['type']) { - case 0: - order_m = Math.round(o_condition * ord_prom['expression']) / 100;//满额打折 - order_prom_amount = (o_condition - order_m).toFixed(2); - break; - case 1: - //-- 如果有优惠促销倍减的时候 -- - var bs=1; - if(ord_prom.is_bz){ - bs=Math.floor(o_condition/ord_prom.money); - } - - order_m = o_condition - bs*ord_prom['expression'];//满额优惠金额 - order_prom_amount = ord_prom['expression']; - break; - } - } - } - //--订单优惠的显示-- - var order_prom_txt1 = "formData.order_prom_id"; - var order_prom_txt2 = "formData.order_prom_amount"; - if (order_prom_id > 0) { - th.setData({ [order_prom_txt1]: order_prom_id, [order_prom_txt2]: order_prom_amount }) - } else { - th.setData({ [order_prom_txt1]: 0, [order_prom_txt2]: 0 }) - } - - //判断是否同城配送,而且没有调用过 - if(th.data.bn_exp_type==2 && th.data.user_addr) { - var gd_w = 0, lon = 0, lat = 0; - for (let ib in gd_arr_list) { - let item_b = gd_arr_list[ib]; - gd_w += item_b['weight'] * item_b['buynum']; - } - - //-- 获取距离 -- - await getApp().request.promisePost("/api/weshop/order/sameCityExp/getGeocoder", { - is_json: 1, data: {address:th.data.user_addr.more_address+th.data.user_addr.address} - }).then(res=>{ - if(res.data.code==0){ - var data= JSON.parse(res.data.data); - if(data.status==0){ - lon=data.result.location.lng; - lat=data.result.location.lat; - } - } - }) - - var req_data = { - store_id: os.stoid, order_amount: parseFloat(order_m), - lon: lon, lat: lat, pickup_id: bn_pick,goods_weight: gd_w - } - - var is_next=1; - - //获取同城配送参数 - await getApp().request.promisePost("/api/weshop/order/sameCityExp/getMoney", { - is_json: 1,data: req_data - }).then(res => { - if (res.data.code == 0) { - var wl_txt = "formData.shipping_price"; - th.setData({ [wl_txt]: res.data.data, }) - - }else{ - is_next=0; - if(qfunc){ - qfunc(); - }else{ - wx.showToast({ - title: res.data.msg, - icon: 'none', - duration: 2000 - }) - } - - } - }) - if(!is_next) return false - } - - - total_m = parseFloat(total_m) + parseFloat(th.data.formData.shipping_price); - order_m = parseFloat(order_m) + parseFloat(th.data.formData.shipping_price); - - total_m = total_m.toFixed(2); - order_m = order_m.toFixed(2); - - var atxt = "formData.total_amount"; - th.setData({ [atxt]: total_m, }) - - var txt = "formData.user_money"; - var txt2 = "formData.order_amount"; - var txt3 = "formData.coupon_price"; - - //-- 最后的金额小于佣金 -- - if(parseFloat(order_m) parseFloat(order_m)) { - order_m = parseFloat(order_m).toFixed(2); - th.setData({ [txt]: order_m, [txt2]: 0, [txt3]: coupon_price, show_submit: 1,submit:0 }) - } else { - order_m = parseFloat(order_m) - parseFloat(amoney); - order_m = order_m.toFixed(2); - th.setData({ [txt]: amoney, [txt2]: order_m, [txt3]: coupon_price, show_submit: 1,submit:0 }) - } - } else { - th.setData({ [txt]: 0, [txt2]: order_m, [txt3]: coupon_price, show_submit: 1,submit:0 }) - } - //优惠活动送积分 - if (good.s_intValue) { - txt = "formData.give_integral"; - th.setData({ [txt]: good.s_intValue }); - } - //优惠送券 - if (good.s_coupon_id) { - var i_txt = "formData.give_coupon_id"; - //这个是json格式的 - var i_txt1 = "formData.g_coupon_num"; - var ob = [{ "num": good.s_coupon_num, "c_id": good.s_coupon_id }]; - ob = JSON.stringify(ob); - th.setData({ [i_txt]: good.s_coupon_id, [i_txt1]: ob }); - } - //优惠礼包 - if (good.s_libao) { - var l_txt = "formData.give_lb_id"; - //这个是json格式的 - var l_txt1 = "formData.g_lb_num"; - var ob = [{ "num": good.s_lb_num, "l_id": good.s_libao }]; - ob = JSON.stringify(ob); - th.setData({ [l_txt]: good.s_libao, [l_txt1]: ob }); - } - - //专享礼包 - if (good.zx_libao) { - var l_txt = "formData.give_zxlb_id"; - //这个是json格式的 - var l_txt1 = "formData.g_zxlb_num"; - var ob = [{ "num": good.zx_lb_num, "l_id": good.zx_libao }]; - ob = JSON.stringify(ob); - th.setData({ [l_txt]: good.zx_libao, [l_txt1]: ob }); - } - }) - } else { + //获取同城配送参数 + await getApp().request.promisePost("/api/weshop/order/sameCityExp/getMoney", { is_json: 1, data: req_data }).then(res => { + if (res.data.code == 0) { + cart_item.shipping_price = res.data.data; + } else { + is_next = 0; - var order_prom_txt1 = "formData.order_prom_id"; - var order_prom_txt2 = "formData.order_prom_amount"; - th.setData({ [order_prom_txt1]: 0, [order_prom_txt2]: 0 }) - - //判断是否同城配送,而且没有调用过 - if(th.data.bn_exp_type==2 && th.data.user_addr) { - var gd_w = 0, lon = 0, lat = 0; - for (let ib in gd_arr_list) { - let item_b = gd_arr_list[ib]; - gd_w += item_b['weight'] * item_b['buynum']; - } - - //-- 获取距离 -- - await getApp().request.promisePost("/api/weshop/order/sameCityExp/getGeocoder", { - is_json: 1, data: {address:th.data.user_addr.more_address+th.data.user_addr.address} - }).then(res=>{ - if(res.data.code==0){ - var data= JSON.parse(res.data.data); - if(data.status==0){ - lon=data.result.location.lng; - lat=data.result.location.lat; - } - } - }) - - var req_data = { - store_id: os.stoid, order_amount: parseFloat(order_m), - lon: lon, lat: lat, pickup_id: bn_pick,goods_weight: gd_w - } - - var is_next=1; - - //获取同城配送参数 - await getApp().request.promisePost("/api/weshop/order/sameCityExp/getMoney", { - is_json: 1,data: req_data - }).then(res => { - if (res.data.code == 0) { - var wl_txt = "formData.shipping_price"; - th.setData({ [wl_txt]: res.data.data, }) - - }else{ - is_next=0; - if(qfunc){ - qfunc(); - }else{ - wx.showToast({ - title: res.data.msg, - icon: 'none', - duration: 2000 - }) - } - - } - }) - if(!is_next) return false - } + if (qfunc) qfunc(); + else { + wx.showToast({ + title: res.data.msg, + icon: 'none', + duration: 2000 + }) + } + } + }) + if (!is_next) return false + } - total_m = parseFloat(total_m) + parseFloat(th.data.formData.shipping_price); - order_m = parseFloat(order_m) + parseFloat(th.data.formData.shipping_price); - var atxt = "formData.total_amount"; - total_m = total_m.toFixed(2); - order_m = order_m.toFixed(2); - th.setData({ [atxt]: total_m, }) - var txt = "formData.user_money"; - var txt2 = "formData.order_amount"; - var txt3 = "formData.coupon_price"; + cart_item.total_amount = parseFloat(cart_item.total_amount) + parseFloat(cart_item.shipping_price); //总金额 + cart_item.order_amount = parseFloat(cart_item.order_amount) + parseFloat(cart_item.shipping_price); //总金额 + cart_item.total_amount = cart_item.total_amount.toFixed(2); + cart_item.order_amount = cart_item.order_amount.toFixed(2); - //-- 最后的金额小于佣金 -- - if(parseFloat(order_m) parseFloat(order_m)) { - order_m = parseFloat(order_m).toFixed(2); - th.setData({ [txt]: order_m, [txt2]: 0, [txt3]: coupon_price, show_submit: 1 ,submit:0}) - } else { - order_m = parseFloat(order_m) - parseFloat(amoney); - order_m = order_m.toFixed(2); - th.setData({ [txt]: amoney, [txt2]: order_m, [txt3]: coupon_price, show_submit: 1,submit:0 }) - } - } else { - th.setData({ [txt]: 0, [txt2]: order_m, [txt3]: coupon_price, show_submit: 1,submit:0 }) - } - //优惠活动送积分 - if (good.s_intValue) { - txt = "formData.give_integral"; - th.setData({ [txt]: good.s_intValue }); - } - //优惠送券 - if (good.s_coupon_id) { - var i_txt = "formData.give_coupon_id"; - //这个是json格式的 - var i_txt1 = "formData.g_coupon_num"; - var ob = [{ "num": good.s_coupon_num, "c_id": good.s_coupon_id }]; - ob = JSON.stringify(ob); - th.setData({ [i_txt]: good.s_coupon_id, [i_txt1]: ob }); - } - //优惠礼包 - if (good.s_libao) { - var l_txt = "formData.give_lb_id"; - //这个是json格式的 - var l_txt1 = "formData.g_lb_num"; - var ob = [{ "num": good.s_lb_num, "l_id": good.s_libao }]; - ob = JSON.stringify(ob); - th.setData({ [l_txt]: good.s_libao, [l_txt1]: ob }); - } + if (th.data.cart_use_commission) { + cart_item.order_amount -= cart_item.can_usecommise; + } - //专享礼包 - if (good.zx_libao) { - var l_txt = "formData.give_zxlb_id"; - //这个是json格式的 - var l_txt1 = "formData.g_zxlb_num"; - var ob = [{ "num": good.zx_lb_num, "l_id": good.zx_libao }]; - ob = JSON.stringify(ob); - th.setData({ [l_txt]: good.zx_libao, [l_txt1]: ob }); + //搭配购在使用余额 + if (th.data.bn_use_money == 1 && th.data.is_b_now == 1) { - } - } + if (umoney > cart_item.order_amount) { + cart_item.user_money = cart_item.order_amount; + umoney = umoney - cart_item.order_amount; + } else { + cart_item.user_money = umoney; + umoney = 0; + } - wx.hideLoading(); + } else { + //--------------如果使用余额,购物车购买--------------------- + if (th.data.js_use_money == 1) { + if (umoney > cart_item.order_amount) { + cart_item.user_money = cart_item.order_amount; + umoney = umoney - cart_item.order_amount; + } else { + cart_item.user_money = umoney; + umoney = 0; + } + } else { + cart_item.user_money = 0; + } + } - //}); + cart_item.user_money = parseFloat(cart_item.user_money).toFixed(2); + if (coupon_price > 0) cart_item.coupon_price = coupon_price.toFixed(2); + else cart_item.coupon_price = coupon_price + if (quan_no) cart_item.quan_no = quan_no; - }, - requestSubscribe() { - const th = this; - const template_id = this.data.template_id; - wx.getSetting({ - withSubscriptions: true, - success(res) { - let itemSettings = res.subscriptionsSetting.itemSettings; - if (itemSettings && itemSettings[template_id] == "accept") { - //要检查一下赠品有可以足够 - th.sub_check_gift(function () { - th.submit_func(); - }) + //cart_item.goods_price = o_price.toFixed(2); + cart_item.order_amount = cart_item.order_amount - cart_item.user_money; //会员使用余额 - } else { - th.sendsm(function () { - //要检查一下赠品有可以足够 - th.sub_check_gift(function () { - th.submit_func(); - }) - }) - } - } - }) - this.setData({ - submit: 1, - }) - }, + all_price += parseFloat(f_o_price); + all_total_m += parseFloat(cart_item.total_amount); + all_shipping_m += parseFloat(cart_item.shipping_price); + all_order_m += parseFloat(cart_item.order_amount); + all_user_m += parseFloat(cart_item.user_money); + all_coupon_price_m += parseFloat(cart_item.coupon_price); + all_cutprice += parseFloat(cart_item.cut_price); + + all_zh_cutprice += parseFloat((cart_item.zh_cut_price ? cart_item.zh_cut_price : '0')); + all_ladder_cutprice += parseFloat(cart_item.ladder_cut_price); + all_order_prom += parseFloat(cart_item.order_prom_amount); + } - //分配代发商品 - add_df_goods(good,df_goods,whsle_id,room_id){ - var df_price = parseFloat(good.goods_num * good.goods_price); + all_shipping_m = parseFloat(all_shipping_m).toFixed(2); + all_total_m = parseFloat(all_total_m).toFixed(2); + all_order_m = parseFloat(all_order_m).toFixed(2); + all_price = parseFloat(all_price).toFixed(2); + all_user_m = parseFloat(all_user_m).toFixed(2); + all_total_m = parseFloat(all_total_m).toFixed(2); + all_coupon_price_m = parseFloat(all_coupon_price_m).toFixed(2); + all_cutprice = all_cutprice.toFixed(2); + all_order_prom = all_order_prom.toFixed(2); + all_zh_cutprice = parseFloat(all_zh_cutprice).toFixed(2); + all_ladder_cutprice = parseFloat(all_ladder_cutprice).toFixed(2); + + var atxt = "formData.total_amount"; + var atxt1 = "formData.order_amount"; + var atxt2 = "formData.all_price"; + var atxt3 = "formData.user_money"; + var atxt4 = "formData.shipping_price"; + var atxt5 = "formData.coupon_price"; + var atxt6 = "formData.cut_price"; + var atxt7 = "formData.order_prom_amount"; + var atxt8 = "formData.zh_cut_price"; + var atxt9 = "formData.ladder_cut_price"; + + th.setData({ + [atxt]: all_total_m, [atxt1]: all_order_m, + [atxt2]: all_price, [atxt3]: all_user_m, [atxt4]: all_shipping_m, + [atxt5]: all_coupon_price_m, [atxt6]: all_cutprice, + [atxt7]: all_order_prom, show_submit: 1, [atxt8]: all_zh_cutprice, [atxt9]: all_ladder_cutprice, submit: 0 + }) + th.data.order_prom_list_cart = c_arr; + th.set_can_num(); + wx.hideLoading(); + + //}); + }, + + set_can_num: function () { + var th = this; + //-- 这个地方,循环计算几张优惠券可用-- + for (var iter in th.data.cartlist) { + var num = 0; + var c_item = th.data.cartlist[iter]; + var pkid = c_item.pickup_id; + //-- 普通券 -- + if (c_item.quan_list) { + for (var iter1 in c_item.quan_list) { + //判断是不是其他订单有选用 + var is_other_is_use = th.check_other_use(c_item.quan_list[iter1], pkid); + if (!is_other_is_use) num++; + } + } + //-- 包邮券 -- + var by_quan = th.data.get_by_quan_list_cart[pkid]; + if (by_quan && c_item.exp_type == 0) { + for (var iter2 in by_quan) { + //判断是不是其他订单有选用 + var is_other_is_use = th.check_other_use_by(by_quan[iter2], pkid); + if (!is_other_is_use) num++; + } + } + var set_txt = "cartlist[" + iter + "].can_num"; + th.setData({ [set_txt]: num }); + } + }, - var index=df_goods.findIndex(function (e){ - return e.whsle_id==whsle_id - }) - if(index>-1){ - df_goods[index].df_price+=df_price; - df_goods[index].df_goods.push(good); - if(room_id){ - if(!df_goods[index].df_room_ids) - df_goods[index].df_room_ids=""; - df_goods[index].df_room_ids+=room_id+","; + //---------计算立即购买---------- + calculatePrice2: async function (qfunc) { + var th = this, good = this.data.bn_goods; - } + if (!good) return false; - }else{ - var e={ - whsle_id:whsle_id, - df_price:df_price, - df_goods:[] - } - if(room_id) e.df_room_ids=room_id+',' + //搭配的计算要用购物的车计算方法 + if (good.prom_type == 5) { + th.calculatePrice(); + return false; + } - e.df_goods.push(good); - df_goods.push(e); - } + th.setData({ submit: 1 }); + wx.showLoading({ + title: "处理中.", + mask: true + }) - }, + //-----------计算商品总价-------------- + var allpice = good.shop_price * good.buynum; + var cut_price = 0; + var allpice1 = allpice; - //--------------------提交订单----------------------- - async submit_func() { - if(this.data.is_summit_ing) return false; - this.data.is_summit_ing = 1; + if (good.prom_type == 3 && good.prom_price !== null) { + cut_price = allpice - good.prom_price; + } - var th = this, pdata = new Array(); - var ff = true; - //------------立即购买------------- - if (th.data.is_b_now == 1 && th.data.bn_goods.prom_type != 5) { - if (th.data.bn_exp_type == 0 && th.data.user_addr == null) { - ff = false; - getApp().my_warnning("请选择收货地址", 0, th); - th.data.is_summit_ing = 0; - } - if (!ff) return false; - var addr = th.data.user_addr; - if (th.data.bn_exp_type == 1) addr = null; - if (th.data.bn_exp_type == 0) - if (th.data.wu_arr == null || th.data.wu_arr.length <= 0) { - getApp().my_warnning("读取物流失败", 0, th); - th.data.is_summit_ing = 0; - return false; - } + allpice = parseFloat(allpice).toFixed(2); + var txt = "formData.all_price"; + th.setData({ [txt]: allpice, }); + if (cut_price) { + var c_txt = "formData.cut_price"; + th.setData({ [c_txt]: cut_price, }); - var item = { - 'user_id': to.globalData.user_id, - 'consignee': addr == null ? "" : addr.consignee, - 'province': addr == null ? 0 : addr.province, - 'city': addr == null ? 0 : addr.city, - 'district': addr == null ? 0 : addr.district, - 'twon': addr == null ? 0 : addr.twon, - 'address': addr == null ? "" : addr.address, - 'more_address': addr == null ? "" : addr.more_address, - //'mobile': th.data.userinfo.mobile, - 'mobile': addr == null ? th.data.userinfo.mobile : addr.mobile, - 'email': '', - 'shipping_code': th.data.bn_exp_type == 1 ? 0 : th.data.wu_arr[th.data.index].code, - 'shipping_name': th.data.bn_exp_type == 1 ? '' : th.data.wu_arr[th.data.index].name, - 'invoice_title': '', - 'goods_price': parseFloat(th.data.formData.all_price).toFixed(2), //商品总价 - 'shipping_price': parseFloat(th.data.formData.shipping_price).toFixed(2), //物流金额 - 'user_money': parseFloat(th.data.formData.user_money).toFixed(2), //使用余额 - 'total_amount': parseFloat(th.data.formData.total_amount).toFixed(2), //订单总价 - 'order_amount': parseFloat(th.data.formData.order_amount).toFixed(2), //应付 - 'user_note': th.data.user_note['0'] ? th.data.user_note['0'] : "", //用户备注 - 'store_id': oo.stoid, //商家 - 'pickup_id': th.data.bn_pick, //门店 - 'exp_type': th.data.bn_exp_type, //配送方式 - 'order_goods': new Array(), - }; - //是不是重新提交 - if (th.data.is_continue == 1) item.is_continue = 1; + } - //-- 如果有使用佣金抵扣的话 -- - if(th.data.bn_use_commission){ - item.use_commission=th.data.bn_goods.use_commission; - } + //如果有线下取价的时候 + if (good.is_offline) { + allpice = good.offline_price * good.buynum; + } - //获取立即购买的商品的信息 - var gg = to.get_b_now(); - //--商品的房间号-- - if (gg.room_id && gg.room_id > 0) { - item.room_ids = gg.room_id; - } + //to.getwuliuprice(async function (rs) { + + var o_shipping_price = 0, goods_weight = -1, goods_piece = -1; + var out_of_weight = null; //超出多少重量 + + //---如果有选择优惠券的情况下--- + var quan_price = 0, bn_pick = th.data.bn_pick; + var quan_no = null; + if (th.data.using_quan[bn_pick] != null && th.data.using_quan[bn_pick] != undefined) + quan_no = th.data.using_quan[bn_pick].coupon_no; + + if (quan_no) { + //如果是一件代发就不要找商品 + if (th.data.using_quan[bn_pick].isby != 1 && !good.whsle_id) { + //---获取优惠券优惠--- + await getApp().request.promiseGet("/api/weshop/couponList/getUseCouponPrice", { + data: { + storeId: oo.stoid, + CashRepNo: quan_no, + WaresSum: th.data.ckeck_quan_price, + WareIds: th.data.check_quan_ware_list + } + }).then(res => { + if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { + quan_price = res.data.data[0].WareCashSum; + } + }) + } + } - var order_prom_list = {}; - //--判断有没有优惠活动-- - if (th.data.order_prom[item.pickup_id]) { - if (th.data.formData.order_prom_amount > 0) { - order_prom_list.order_prom_id = th.data.formData.order_prom_id; - order_prom_list.order_prom_amount = th.data.formData.order_prom_amount; - } - } + var gd_arr_list = []; + gd_arr_list.push(good); + if (th.data.buy_now_gift_goods) { + gd_arr_list = [...gd_arr_list, ...th.data.buy_now_gift_goods]; + } - //--判断优惠活动的提交-- - if (th.data.formData.cut_price > 0) { - order_prom_list.discount_amount = th.data.formData.cut_price.toFixed(2); - var ob = [{ - "prom_id": th.data.bn_goods.prom_id, - "dis": parseFloat(th.data.formData.cut_price).toFixed(2), - "ispt": 0 - }] - order_prom_list.prom_pt_json = JSON.stringify(ob); - } - if (th.data.formData.give_integral > 0) { - order_prom_list.give_integral = th.data.formData.give_integral; - } - if (th.data.formData.give_coupon_id > 0) { - order_prom_list.give_coupon_id = th.data.formData.give_coupon_id; - order_prom_list.g_coupon_num = th.data.formData.g_coupon_num; - } - if (th.data.formData.give_lb_id > 0) { - order_prom_list.give_lb_id = th.data.formData.give_lb_id; - order_prom_list.g_lb_num = th.data.formData.g_lb_num; + //-----------当地址不为空,且是物流时,计算物流费用,并同时商品不是优惠活动的包邮---------- + if (th.data.user_addr != null && th.data.bn_exp_type == 0 && good.is_past != 1) { + //看是不是有调用过包邮券 + if (!th.data.isget_by_quan[th.data.bn_pick] && good.is_xz_yh != 1) { + var condition = allpice - cut_price - quan_price; + //--判断要不要显示包邮券,链式调用接口,调取包邮券,已经是减了优惠的金额,见到优惠券的钱--- + getApp().request.promiseGet("/api/weshop/userfeemail/pageAndArea", { + data: { + store_id: os.stoid, + isuse: 0, + condition: condition, + user_id: getApp().globalData.user_id, + pageSize: 2000 + } + }).then(res => { + if (res.data.code == 0 && res.data.data.total > 0) { + //此时要循环判断包邮的地区,不包邮商品是不是符合 + var arr = [], quanlist = res.data.data.pageData; + quanlist = th.check_is_frozenQuan(quanlist, th.data.frozenQuan, 1); + for (var i in quanlist) { + var item = quanlist[i]; + if (item.region_list && th.check_by_area(item.region_list)) continue; //如果是不包邮区域 + if (item.goods_list) { + var no_goods_arr = item.goods_list.split(","); + if (ut.isContained(no_goods_arr, gd_arr_list)) continue; //如果是不包邮商品 + } + arr.push(item); } - //--- 专享礼包 --- - if (th.data.formData.give_zxlb_id > 0) { - order_prom_list.give_zxlb_id = th.data.formData.give_zxlb_id; - order_prom_list.g_zxlb_num = th.data.formData.g_zxlb_num; + if (arr) { + th.setData({ get_by_quan_list: arr }); } + th.data.isget_by_quan[th.data.bn_pick] = 1; + } + }) + } + + var shipping_price = 0; + var quan_no_goods_arr = null; + var is_by_quan = 0; + var pickid = th.data.bn_pick; + + //如果是包邮券的时候,要看看券的情况,判断一下包邮有没有不包邮模板 + if (quan_no && th.data.using_quan[pickid].isby == 1) { + var quan = th.data.using_quan[pickid]; + if (quan.goods_list) { + quan_no_goods_arr = quan.goods_list.split(","); + } else { + is_by_quan = 1; + } + } + if (!is_by_quan) { + var user_addr = th.data.user_addr; + var req_d = { + province: user_addr.province, + city: user_addr.city, + district: user_addr.district, + wuliu: parseFloat(parseFloat(allpice) - cut_price - quan_price).toFixed(2), + store_id: os.stoid + } + var back_data = null; + await getApp().request.promisePost("/api/weshop/order/areaFreight", { + is_json: 1, data: req_d + }).then(rs => { + if (rs.data.code == 0) back_data = rs.data.data; + }); - item.order_prom_list = order_prom_list; - - //组装优惠券的钱 - if (parseFloat(th.data.formData.coupon_price) > 0) { - item.coupon_price = th.data.formData.coupon_price; - item.coupon_no = th.data.using_quan[th.data.bn_pick].coupon_no; - } - if (th.data.using_quan[th.data.bn_pick] && th.data.using_quan[th.data.bn_pick].coupon_no && th.data.using_quan[th.data.bn_pick].isby) { - item.coupon_no = th.data.using_quan[th.data.bn_pick].coupon_no; - item.coupon_price = 0; + //如果有包邮券的不包邮商品的时候 + if (quan_no_goods_arr) { + if (back_data && back_data.no_free_goods) { + back_data['is_by_all'] = 1; + var arr3 = back_data.no_free_goods.filter(item => { + return quan_no_goods_arr.includes(item) + }) + back_data.no_free_goods = null; + if (arr3.length) { + back_data.no_free_goods = arr3; } + } + if (!back_data || !back_data.no_free_goods) { + if (!back_data) back_data = {}; + back_data['is_by_all'] = 1; + back_data['no_free_goods'] = quan_no_goods_arr; + } + } - //老会员成为分销下线需要的参数 - if (getApp().globalData.first_leader && !getApp().globalData.userInfo.first_leader) { - //判断一下分享人是不是分享商 - await app.request.promiseGet("/api/weshop/users/get/" + os.stoid + "/" + getApp().globalData.first_leader, {}).then(res => { - if (res.data.code == 0) { - var user = res.data.data; - if (user.is_distribut == 1) { - item.first_leader = parseInt(getApp().globalData.first_leader); - } - } - }) - } + var cut_good_weight = 0; + for (let i in gd_arr_list) { + let item = gd_arr_list[i]; + if (good.is_free_shipping == 1) continue; + //-- 代发商品不算运费 -- + if (good.whsle_id) continue; - var goods = { - 'goods_id': gg.goods_id, - 'goods_name': gg.goods_name, - 'goods_sn': gg.goods_sn, - 'goods_num': gg.goods_num, - 'market_price': th.data.bn_goods.market_price, - 'goods_price': th.data.bn_goods.shop_price, - 'member_goods_price': th.data.bn_goods.shop_price, - 'store_id': oo.stoid, - 'prom_type': th.data.bn_goods.prom_type, //促销活动类型 - 'prom_id': th.data.bn_goods.prom_id, //促销活动id - }; + if (back_data && back_data['is_by_all'] && (!back_data.no_free_goods || back_data.no_free_goods.indexOf(item.goods_id) == -1)) { - if(th.data.bn_goods.whsle_id){ - item.is_whsle=1; - item.whsle_id=th.data.bn_goods.whsle_id; - goods.is_whsle_goods=1; + if (item['exp_sum_type'] == 2 && back_data.weight_free > 0) { + if (goods_weight < 0) goods_weight = 0; + goods_weight += item['weight'] * item['buynum']; + cut_good_weight += item['weight'] * item['buynum']; } - - if (getApp().globalData.skinface_id) { - goods.skinface_id = getApp().globalData.skinface_id; + if (back_data.weight_free > 0) { + out_of_weight = (back_data.weight_free * 1000) - cut_good_weight; } + continue; + + } + + switch (item['exp_sum_type']) { + case 1: + //统一运费 + o_shipping_price += item['uniform_exp_sum']; + break; + case 2: + if (goods_weight < 0) goods_weight = 0; + //累积商品重量 每种商品的重量 * 数量 + goods_weight += item['weight'] * item['buynum']; + + if (back_data && back_data.is_by_all && !back_data.no_free_goods) { + cut_good_weight += item['weight'] * item['buynum']; + if (back_data.weight_free > 0) { + out_of_weight = (back_data.weight_free * 1000) - cut_good_weight; + } + } + break; + case 3: + if (goods_piece < 0) goods_piece = 0; + //累积商品数量 + goods_piece += parseInt(item['buynum']); + break; + } + } - //-- 把导购的信息填入-- - if (gg.guide_id) { - goods.guide_id = gg.guide_id; - goods.guide_type = gg.guide_type; - //调用接口判断是不是会员 - await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/" + oo.stoid + "/" + gg.guide_id, {}).then(res => { - if (res.data.code == 0) { - goods.guide_name = res.data.data.salesman; - goods.guide_sn = res.data.data.salesman_no; - } - }) - } + //如果是正值的时候 + if (out_of_weight >= 0) out_of_weight = -cut_good_weight; + else out_of_weight = -back_data.weight_free * 1000; + + var code = ""; + if (th.data.wu_arr && th.data.wu_arr[th.data.index]) code = th.data.wu_arr[th.data.index].code; + th.data.is_no_by[th.data.bn_pick] = 0; + th.data.is_by[th.data.bn_pick] = 0; + + //--------------开始计算物流------------------ + // shipping_price = ut.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight, + // goods_piece, th.data.user_addr, back_data, rs); + + var w_data = { + store_id: os.stoid, code: code, + o_shipping_price: o_shipping_price, + goods_weight: goods_weight, + out_of_weight: out_of_weight, goods_piece: goods_piece, + user_addr_province: th.data.user_addr.province, + user_addr_city: th.data.user_addr.city, + user_addr_district: th.data.user_addr.district, + is_by_all: back_data && back_data.is_by_all ? 1 : 0, + no_free_goods: back_data && back_data.no_free_goods && back_data.no_free_goods.length > 0 ? 1 : 0, + } - //--商品的房间号-- - if (gg.room_id && gg.room_id > 0) { - goods.room_id = gg.room_id; - } + var is_ok = 1; + await getApp().request.promisePost('/api/weshop/order/getOrderWuLiPrice', { data: w_data, is_json: 1 }).then(res => { + if (res.data.code == 0) { + shipping_price = res.data.data; + } else { + is_ok = 0; + } + }) - //积分购,先要带is_integral_normal=1 - if (gg.is_integral_normal){ - goods.is_integral_normal = 1; item.is_normal=1; - } + if (!is_ok) { + wx.hideLoading(); + wx.showToast({ + title: "计算物流错误", icon: 'none', duration: 2000 + }) + //th.setData({ show_submit:0 }); - //先要带is_pd_normal=1 - if (gg.is_pd_normal){ - goods.is_pd_normal = 1; item.is_normal=1; - } + return false; + } + if (shipping_price <= 0) { + th.data.is_by[th.data.bn_pick] = 1; //已经是包邮了,就不要选择包邮券 + } + } - //如果不立即购买或者秒杀,如果是线下库存购买的时候 - if (goods.prom_type != 1 && goods.prom_type != 6 && goods.prom_type != 2 && th.data.sales_rules >= 2 && !th.data.bn_goods.whsle_id) { - var isok = 1; - await th.check_store_num(goods.goods_id, th.data.bn_pick, gg.goods_num, function (res) { - isok = res; - }); - if (!isok) { - getApp().confirmBox("商品的门店库存不足"); - th.data.is_summit_ing = 0; - return false; - } - } + shipping_price = parseFloat(shipping_price).toFixed(2); + var wl_txt = "formData.shipping_price"; + th.setData({ [wl_txt]: shipping_price, }) - //-- 如果有线下取价的话 -- - if (th.data.bn_goods.is_offline) { - item.sum_offline_cut = (th.data.bn_goods.shop_price - th.data.bn_goods.offline_price).toFixed(2); - goods.offline_cut = item.sum_offline_cut; - goods.pricing_type = th.data.bn_goods.pricing_type; - goods.goods_price = th.data.bn_goods.offline_price; - goods.member_goods_price = th.data.bn_goods.offline_price; - } + } else if (th.data.bn_exp_type == 1) { + var wl_txt = "formData.shipping_price"; + th.setData({ [wl_txt]: 0, }) + } - //--- 如果有优惠促销的金额,要把金额先平摊下去 --- - if (th.data.formData.cut_price > 0 && !th.data.ispt_goods) { - var g_arr = new Array(); - g_arr.push(goods); - var pt_data = { - 'prom_id': goods.prom_id, - 'dis': parseFloat(th.data.formData.cut_price), - 'goods': g_arr, + if (quan_no) { + if (th.data.using_quan[bn_pick].isby == 1) { + shipping_price = 0; + var wl_txt = "formData.shipping_price"; + th.setData({ [wl_txt]: 0, }) + } + } + //-----------------支付价,优惠券不减物流----------------- + var total_m = (parseFloat(allpice1)).toFixed(2); + var order_m = (parseFloat(allpice - cut_price) - quan_price).toFixed(2); + var coupon_price = quan_price; //优惠券优惠了多少钱 + if (order_m < 0) { + order_m = 0; + coupon_price = parseFloat(order_m).toFixed(2); + } + //--看一下有没有订单优惠-- + var o_condition = parseFloat(order_m); + if (th.data.bn_goods.whsle_id > 0) { + o_condition = 0; + } + if (o_condition > 0) { + th.check_is_order_prom(o_condition, async function () { + var order_prom_amount = 0; + var order_prom_id = 0; + if (th.data.order_prom[th.data.bn_pick] && th.data.order_prom[th.data.bn_pick]['money'] <= o_condition) { + var ord_prom = th.data.order_prom[th.data.bn_pick]; + //么有使用券,或者活动没有限制使用优惠券 + if (coupon_price <= 0 || !ord_prom.is_xz_yh) { + order_prom_id = ord_prom['id']; + switch (ord_prom['type']) { + case 0: + order_m = Math.round(o_condition * ord_prom['expression']) / 100;//满额打折 + order_prom_amount = (o_condition - order_m).toFixed(2); + break; + case 1: + //-- 如果有优惠促销倍减的时候 -- + var bs = 1; + if (ord_prom.is_bz) { + bs = Math.floor(o_condition / ord_prom.money); } - var pt_res = null; - await getApp().request.promisePost("/api/weshop/order/getGoodsSplit", { - is_json: 1, - data: pt_data - }).then(res => { - if (res.data.code == 0) { - pt_res = res.data.data; - } - }) - - if (pt_res) { - //平摊赋值 - goods.account = pt_res[0].fisrt_account; - goods.account_yu = pt_res[0].fisrt_account_yu; - item.is_discount_amount = 1; - } + order_m = o_condition - bs * ord_prom['expression'];//满额优惠金额 + order_prom_amount = ord_prom['expression']; + break; } + } + } + //--订单优惠的显示-- + var order_prom_txt1 = "formData.order_prom_id"; + var order_prom_txt2 = "formData.order_prom_amount"; + if (order_prom_id > 0) { + th.setData({ [order_prom_txt1]: order_prom_id, [order_prom_txt2]: order_prom_amount }) + } else { + th.setData({ [order_prom_txt1]: 0, [order_prom_txt2]: 0 }) + } - //--组装优惠券的钱-- - if (th.data.formData.coupon_price) { - item.coupon_price = th.data.formData.coupon_price; - item.coupon_no = th.data.using_quan[th.data.bn_pick].coupon_no; - goods.quan_num = th.data.formData.coupon_price; - goods.quan_no = item.coupon_no; + //判断是否同城配送,而且没有调用过 + if (th.data.bn_exp_type == 2 && th.data.user_addr) { + var gd_w = 0, lon = 0, lat = 0; + for (let ib in gd_arr_list) { + let item_b = gd_arr_list[ib]; + gd_w += item_b['weight'] * item_b['buynum']; + } + + //-- 获取距离 -- + await getApp().request.promisePost("/api/weshop/order/sameCityExp/getGeocoder", { + is_json: 1, data: { address: th.data.user_addr.more_address + th.data.user_addr.address } + }).then(res => { + if (res.data.code == 0) { + var data = JSON.parse(res.data.data); + if (data.status == 0) { + lon = data.result.location.lng; + lat = data.result.location.lat; + } } + }) - item.order_goods.push(goods); + var req_data = { + store_id: os.stoid, order_amount: parseFloat(order_m), + lon: lon, lat: lat, pickup_id: bn_pick, goods_weight: gd_w + } - //--如果有赠品的时候,赠品也要提交--- - if (th.data.buy_now_gift_goods) { - var gift_gg_arr = th.data.buy_now_gift_goods; - for (let i in gift_gg_arr) { - let gift_gg = gift_gg_arr[i]; - var g_goods = { - 'goods_id': gift_gg.goods_id, - 'goods_name': gift_gg.goods_name, - 'goods_sn': gift_gg.goods_sn, - 'goods_num': gift_gg.buynum, - 'market_price': gift_gg.market_price, - 'goods_price': 0, - 'member_goods_price': 0, - 'store_id': oo.stoid, - 'is_gift': 1, - 'gift_id': gift_gg.gift_id, - 'prom_id': gift_gg.prom_id, - }; - //-- 把导购的信息填入-- - if (gg.guide_id) { - g_goods.guide_id = gg.guide_id; - g_goods.guide_type = gg.guide_type; - //调用接口判断是不是会员 - await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/" + oo.stoid + "/" + gg.guide_id, {}).then(res => { - if (res.data.code == 0) { - g_goods.guide_name = res.data.data.salesman; - g_goods.guide_sn = res.data.data.salesman_no; - } - }) - } - item.order_goods.push(g_goods); + var is_next = 1; - } + //获取同城配送参数 + await getApp().request.promisePost("/api/weshop/order/sameCityExp/getMoney", { + is_json: 1, data: req_data + }).then(res => { + if (res.data.code == 0) { + var wl_txt = "formData.shipping_price"; + th.setData({ [wl_txt]: res.data.data, }) - } - pdata.push(item); - } else { + } else { + is_next = 0; + if (qfunc) { + qfunc(); + } else { + wx.showToast({ + title: res.data.msg, + icon: 'none', + duration: 2000 + }) + } - //---------购物车的结算--------- - if (th.data.is_all_zt == 0 && th.data.user_addr == null) { - th.data.is_summit_ing = 0; - ff = false; - getApp().confirmBox("请新建收货地址"); } - if (!ff) return false; - - var addr = th.data.user_addr; - // 自提,地址数据清空 exp_type设置为1 - if (th.data.is_all_zt == 1) addr = null; - var val_arr = th.data.user_note; - - if (th.data.is_all_zt != 1) - if (th.data.wu_arr == null || th.data.wu_arr.length <= 0) { - th.data.is_summit_ing = 0; - getApp().confirmBox("读取物流失败"); - return false; - } + }) + if (!is_next) return false + } - var order_prom_list_cart = th.data.order_prom_list_cart; - - //--组装推送数据-- - for (var i = 0; i < order_prom_list_cart.length; i++) { - var t_item = order_prom_list_cart[i]; - var item = { - 'user_id': to.globalData.user_id, - 'consignee': addr == null ? th.data.userinfo.mobile : addr.consignee, - 'province': addr == null ? 0 : addr.province, - 'city': addr == null ? 0 : addr.city, - 'district': addr == null ? 0 : addr.district, - 'twon': addr == null ? 0 : addr.twon, - 'address': addr == null ? "" : addr.address, - 'more_address': addr == null ? "" : addr.more_address, - 'mobile': addr == null ? th.data.userinfo.mobile : addr.mobile, - 'email': '', - 'shipping_code': th.data.is_all_zt == 1 ? 0 : th.data.wu_arr[t_item.wind].code, - 'shipping_name': th.data.is_all_zt == 1 ? '' : th.data.wu_arr[t_item.wind].name, - 'invoice_title': '', - 'goods_price': parseFloat(t_item.goods_price).toFixed(2), //商品总价 - 'shipping_price': parseFloat(t_item.shipping_price).toFixed(2), //物流金额 - 'user_money': parseFloat(t_item.user_money).toFixed(2), //使用余额 - 'total_amount': parseFloat(t_item.total_amount).toFixed(2), //订单总价 - 'order_amount': parseFloat(t_item.order_amount).toFixed(2), //应付 - 'user_note': val_arr[i], //用户备注 - 'store_id': oo.stoid, //商家 - 'pickup_id': t_item.pickup_id, //门店 - 'exp_type': t_item.exp_type, //配送方式 - 'order_goods': new Array(), - }; - //是不是重新提交 - if (th.data.is_continue == 1) item.is_continue = 1; - //----- 如果有线下取价的话 ---- - if (t_item.is_offline == 1) { - item.sum_offline_cut = t_item.offline_price.toFixed(2); - } - //组装优惠券的钱 - if (t_item.coupon_price) { - item.coupon_price = t_item.coupon_price; - item.coupon_no = th.data.using_quan[t_item.pickup_id].coupon_no; - } else if (t_item.quan_no) { - item.coupon_no = t_item.quan_no; - item.coupon_price = 0; - } + total_m = parseFloat(total_m) + parseFloat(th.data.formData.shipping_price); + order_m = parseFloat(order_m) + parseFloat(th.data.formData.shipping_price); - //-- 如果有使用佣金抵扣的话 -- - if(th.data.cart_use_commission){ - item.use_commission=t_item.can_usecommise; - } + total_m = total_m.toFixed(2); + order_m = order_m.toFixed(2); - var order_prom_list = {}; - //--判断有没有优惠活动-- - if (t_item.order_prom_amount > 0) { - order_prom_list.order_prom_id = t_item.order_prom_id; - order_prom_list.order_prom_amount = t_item.order_prom_amount; - } + var atxt = "formData.total_amount"; + th.setData({ [atxt]: total_m, }) - order_prom_list.discount_amount = 0; - //--判断优惠活动的提交-- - if (t_item.cut_price > 0) { - order_prom_list.discount_amount += t_item.cut_price; - } - //--判断组合优惠活动的提交-- - if (t_item.zh_cut_price > 0 || t_item.zh_cut_price < 0) { - order_prom_list.discount_amount += t_item.zh_cut_price; - order_prom_list.zh_pt_json = JSON.stringify(t_item.zh_pt_json); - } + var txt = "formData.user_money"; + var txt2 = "formData.order_amount"; + var txt3 = "formData.coupon_price"; - //--判断阶梯优惠活动的提交-- - if (t_item.ladder_cut_price > 0 || t_item.ladder_cut_price < 0) { - order_prom_list.discount_amount += t_item.ladder_cut_price; - } + //-- 最后的金额小于佣金 -- + if (parseFloat(order_m) < parseFloat(th.data.bn_goods.use_commission)) { - if (t_item.prom_pt_json) { - order_prom_list.prom_pt_json = JSON.stringify(t_item.prom_pt_json); - } + if (th.data.bn_use_commission) { + wx.showToast({ + title: '应付金额小于本单佣金,不可使用!', + icon: 'none', + duration: 2000 + }) + } - if (t_item.s_intValue > 0) { - order_prom_list.give_integral = t_item.s_intValue; - } - if (t_item.s_coupon_id) { - order_prom_list.give_coupon_id = t_item.s_coupon_id; - order_prom_list.g_coupon_num = JSON.stringify(t_item.g_coupon_num); - } - if (t_item.s_libao) { - order_prom_list.give_lb_id = t_item.s_libao; - order_prom_list.g_lb_num = JSON.stringify(t_item.g_lb_num); - } + th.setData({ + bn_use_commission: 0 + }); - //-- 送专享礼包的时候 -- - if (t_item.zx_libao) { - order_prom_list.give_zxlb_id = t_item.zx_libao; - order_prom_list.g_zxlb_num = JSON.stringify(t_item.g_zxlb_num); - } - if (Object.keys(order_prom_list).length > 0) { - if (order_prom_list.discount_amount) - order_prom_list.discount_amount = parseFloat(order_prom_list.discount_amount).toFixed(2); - if (order_prom_list.order_prom_amount) - order_prom_list.order_prom_amount = parseFloat(order_prom_list.order_prom_amount).toFixed(2); + } - item.order_prom_list = order_prom_list; - } + var txt4 = "formData.use_commission"; + if (th.data.bn_use_commission) { + order_m = (parseFloat(order_m) - parseFloat(th.data.bn_goods.use_commission)).toFixed(2); + th.setData({ [txt4]: th.data.bn_goods.use_commission }) + } - //老会员成为分销下线需要的参数 - if (getApp().globalData.first_leader && !getApp().globalData.userInfo.first_leader) { - //判断一下分享人是不是分享商 - await app.request.promiseGet("/api/weshop/users/get/" + os.stoid + "/" + getApp().globalData.first_leader, {}).then(res => { - if (res.data.code == 0) { - var user = res.data.data; - if (user.is_distribut == 1) { - item.first_leader = parseInt(getApp().globalData.first_leader); - } - } - }) - } - //房间号的ids - var room_ids = ""; - - //-- 把券的钱,写入从表 --- - if (t_item.quan_youhui_list && t_item.coupon_price) { - for (var kk in t_item.quan_youhui_list) { - var you_item = t_item.quan_youhui_list[kk]; - //-- 对券的价格进行平摊 -- - await th.split_set_goods_quanprice(you_item, t_item); - } - } - - //代发商品的集合 - var df_goods = []; - var df_price = 0; - var df_room_ids = ""; - - - var check_map={}; - - //-------------让商品添加到商品列表-------------------- - for (var k = 0; k < t_item.goods.length; k++) { - - console.log("222"); - var g_item = t_item.goods[k]; - if (g_item.goods_num <= 0) continue; - var goods = { - 'goods_id': g_item.goods_id, - 'goods_name': g_item.goods_name, - 'goods_sn': g_item.goods_sn, - 'goods_num': g_item.goods_num, - 'market_price': g_item.market_price, - 'goods_price': g_item.goods_price, - 'member_goods_price': g_item.goods_price, - 'store_id': oo.stoid, - }; - - if (getApp().globalData.skinface_id) { - goods.skinface_id = getApp().globalData.skinface_id; - } - - //-- 线下取价也要写入,组合购的商品不能去线下价格 -- - if (g_item.offline_price && t_item.is_offline == 1 && g_item.prom_type != 7) { - goods.goods_price = g_item.offline_price; - goods.member_goods_price = g_item.offline_price; - goods.offline_cut = (g_item.goods_price - g_item.offline_price).toFixed(2); - goods.pricing_type = g_item.pricing_type; - } - if (g_item.quan_num) { - goods.quan_num = g_item.quan_num; - goods.quan_no = g_item.quan_no; - } - //--判断活动的类型-- - switch (g_item.prom_type) { - case 1: - case 2: - case 10: - goods.prom_type = g_item.prom_type; - goods.prom_id = g_item.prom_id; - break; - case 3: - goods.prom_type = 3; - goods.prom_id = g_item.prom_id; - if (g_item.is_gift) { - goods.is_gift = g_item.is_gift; - goods.gift_id = g_item.gift_id; - } - break; - case 5: - goods.prom_type = 5; - goods.prom_id = g_item.prom_id; - if (g_item.is_collocation) { - goods.is_collocation = g_item.is_collocation; - } - break - case 7: - goods.prom_type = 7; - goods.prom_id = g_item.prom_id; - break - default: - goods.prom_type = 0; - goods.prom_id = 0; - } - - var txt=goods.prom_id+','+goods.prom_type+','+goods.goods_id+','+goods.is_gift; - //--赠品的时候,阶梯促销会右重复的情况 -- - if(check_map[txt] && goods.prom_type!=10){ - getApp().confirmBox(goods.goods_name + "计算金额错误,请重新刷新"); - return false; - }else{ - check_map[txt]=1; - } - - //如果不立即购买或者秒杀,如果是线下库存购买的时候 - if (goods.prom_type == 0 && th.data.sales_rules >= 2) { - var isok = 1; - await th.check_store_num(goods.goods_id, t_item.pickup_id, goods.goods_num, function (res) { - isok = res; - }); - if (!isok) { - getApp().confirmBox(goods.goods_name + "的门店库存不足"); - th.data.is_summit_ing = 0; - return false; - } - } - - //把优惠的平摊结果写进去 - if (g_item.account >= 0 || (g_item.account_yu != 0 && g_item.account != undefined)) { - if (g_item.account >= 0) goods.account = g_item.account; - if (g_item.account_yu != 0) goods.account_yu = g_item.account_yu; - item.is_discount_amount = 1; - } - - //导购ID - if (g_item.guide_id) { - goods.guide_id = g_item.guide_id; - goods.guide_type = g_item.guide_type; - //调用接口判断是不是会员 - await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/" + oo.stoid + "/" + g_item.guide_id, {}).then(res => { - if (res.data.code == 0) { - goods.guide_name = res.data.data.salesman; - goods.guide_sn = res.data.data.salesman_no; - } - }) - } - - //如果有阶梯促销 - if (g_item.ladder_list_id) { - goods.ladder_list_id = g_item.ladder_list_id; - } - - //-- 如果有代发商品,就要开始拆单 -- - if (g_item.whsle_id && t_item.goods.length>1) { - df_price += parseFloat(g_item.goods_num * g_item.goods_price); - goods.is_whsle_goods = 1; - th.add_df_goods(goods,df_goods,g_item.whsle_id, g_item.room_id); - - //df_goods.push(goods); - // df_room_ids += g_item.room_id + ","; - } else { - - //-- 如果只有一件的时候,商品又是代发商品,订单的状态要改成代发订单 -- - if(g_item.whsle_id){ - goods.is_whsle_goods=1; - item.is_whsle=1; - item.whsle_id=g_item.whsle_id - } - - item.order_goods.push(goods); - //如果房间号不为空的时候 - if (g_item.room_id) { - goods.room_id = g_item.room_id; - room_ids += g_item.room_id + ","; - } - } - } - - - - - //如果房间号不为空的时候 - if (room_ids != "") item.room_ids = ut.sub_last(room_ids); - - //处理代发商品的拆分 - if(df_goods.length>0){ - - - - item.goods_price= parseFloat(item.goods_price-df_price).toFixed(2); - item.total_amount= parseFloat(item.total_amount-df_price).toFixed(2); - - for (let j = 0; j < df_goods.length; j++) { - - var df_item=JSON.parse(JSON.stringify(item)); - - var ddff_item=df_goods[j]; - - df_item.is_whsle=1; - df_item.whsle_id=ddff_item.whsle_id; - df_item.is_discount_amount=0; - df_item.goods_price=ddff_item.df_price; - df_item.total_amount=ddff_item.df_price; - df_item.shipping_price=0; //没有运费 - if(df_item.order_prom_list) df_item.order_prom_list={}; - if(df_item.coupon_price) delete(df_item.coupon_price); - if(df_item.coupon_no) delete(df_item.coupon_no); - - //看一下是用余额比较多,还是用钱比较多 - if(item.order_amount>item.user_money){ - if(item.order_amount>ddff_item.df_price){ - item.order_amount=parseFloat(item.order_amount-ddff_item.df_price).toFixed(2); - df_item.order_amount=ddff_item.df_price.toFixed(2); - }else { - var more_p=parseFloat(ddff_item.df_price-item.order_amount).toFixed(2); - item.order_amount=0; - item.user_money=parseFloat(item.user_money-more_p).toFixed(2); - df_item.user_money=more_p; - } - }else{ - - if(item.user_money>ddff_item.df_price){ - item.user_money=parseFloat(item.user_money-ddff_item.df_price).toFixed(2); - df_item.user_money=ddff_item.df_price.toFixed(2); - }else { - var more_p=parseFloat(ddff_item.df_price-item.user_money).toFixed(2); - item.user_money=0; - item.order_amount=parseFloat(item.user_money-more_p).toFixed(2); - df_item.order_amount=more_p; - - } - } - - if (ddff_item.df_room_ids) - df_item.room_ids = ut.sub_last(ddff_item.df_room_ids); - df_item.order_goods=ddff_item.df_goods; - pdata.push(df_item); - } - - - } - //如果只有代发商品的时候 - if(item.order_goods.length>0){ - //item.order_goods=df_goods; - //item.is_whsle=1; - pdata.push(item); - } - - } - + var amoney = parseFloat(th.data.userinfo.user_money - th.data.txmon - th.data.userinfo.frozen_money); + //--------------如果使用余额--------------------- + if (th.data.bn_use_money == 1) { + if (amoney > parseFloat(order_m)) { + order_m = parseFloat(order_m).toFixed(2); + th.setData({ [txt]: order_m, [txt2]: 0, [txt3]: coupon_price, show_submit: 1, submit: 0 }) + } else { + order_m = parseFloat(order_m) - parseFloat(amoney); + order_m = order_m.toFixed(2); + th.setData({ [txt]: amoney, [txt2]: order_m, [txt3]: coupon_price, show_submit: 1, submit: 0 }) + } + } else { + th.setData({ [txt]: 0, [txt2]: order_m, [txt3]: coupon_price, show_submit: 1, submit: 0 }) + } + //优惠活动送积分 + if (good.s_intValue) { + txt = "formData.give_integral"; + th.setData({ [txt]: good.s_intValue }); + } + //优惠送券 + if (good.s_coupon_id) { + var i_txt = "formData.give_coupon_id"; + //这个是json格式的 + var i_txt1 = "formData.g_coupon_num"; + var ob = [{ "num": good.s_coupon_num, "c_id": good.s_coupon_id }]; + ob = JSON.stringify(ob); + th.setData({ [i_txt]: good.s_coupon_id, [i_txt1]: ob }); + } + //优惠礼包 + if (good.s_libao) { + var l_txt = "formData.give_lb_id"; + //这个是json格式的 + var l_txt1 = "formData.g_lb_num"; + var ob = [{ "num": good.s_lb_num, "l_id": good.s_libao }]; + ob = JSON.stringify(ob); + th.setData({ [l_txt]: good.s_libao, [l_txt1]: ob }); } - if (pdata.length == 0) return; - var str = JSON.stringify(pdata); - - wx.showLoading({ title: "加载中" }); - th.setData({ submit: 1,}) - wx.request({ - url: oo.url + '/api/weshop/order/createWxdOrder', - data: str, - method: 'POST', - header: { - 'content-type': 'application/json' - },// 设置请求的 header - success: function (res) { - wx.hideLoading(); - if (res.statusCode == 200) { - var data = res.data; - if (data.code == 0) { - th.setData({ submit: 1,}) - //如果是购物车结算,还要删除购物车 - if (th.data.is_b_now == 0) { - console.log(th.data.cartlist_y); - var list = th.data.cartlist_y; - for (var i = 0; i < list.length; i++) { - //删除购物车 - a.delete("/api/weshop/cart/del/" + oo.stoid + "/" + list[i].id, {}); - } - } - var order_amount = 0; - pdata.forEach(function (em, ind) { - order_amount += parseFloat(em.order_amount); - }) - //要进行判断,如果是用微信支付,就要跳转到支付界面 - if (order_amount > 0) { - th.setData({ isclose: 0 }); - //void e.jumpToCart4({ - // order_sn: data.data, - //}, 1); - util_pay.pay(data.data, function () { - //app.my_warnning("支付成功",1,th); - //setTimeout(function () { - wx.redirectTo({ - url: "/pages/payment/pay_success/pay_success?type=2&order_sn=" + data.data - }) - //},1000) - - }, function () { - - //支付失败 - setTimeout(function () { - var cps = getCurrentPages(); - if (cps.length > 1) { - wx.navigateBack({ delta: 1 }) - } else { - getApp().goto("/pages/index/index/index"); - } - - }, 1000) - }, oo.stoid); - - } else { - var dd = { - parent_sn: data.data, - store_id: oo.stoid, - type: 2, - }; - a.post("/api/weshop/order/pay/createOrder", { - data: dd, - success: function (t) { - //console.log(t); - if (t.data.code == 0) { - //app.my_warnning("支付成功",1,th); - //setTimeout(function () { - th.setData({ isclose: 0 }); - wx.redirectTo({ - url: "/pages/payment/pay_success/pay_success?type=2&order_sn=" + data.data, - }) - //}, 1000) - } - }, - fail: function () { - - } - }); - } - - } - else { - //--内容换行-- - var msg = data.msg; - //赠品活动已经取消,无法赠送,是否继续买单? - if (msg.indexOf("是否继续买单") > 0) { - wx.showModal({ - title: "提示", - content: data.msg, - cancelText: '取消', - confirmText: '确定', - showCancel: true, - success(res) { - if (res.cancel) { - return; - } else if (res.confirm) { - th.data.is_continue = 1; - th.data.is_summit_ing = 0; //是否提交中 - th.submit_func(); - } - } - }) - return; - }else{ - if (msg.length > 13) { - msg = msg.slice(0, 13) + "\r\n" + msg.slice(13); - } - getApp().confirmBox(msg); - th.data.is_summit_ing = 0; //是否提交中 - th.setData({ - submit: 0, - }) - } - - - } - } else { - th.data.is_summit_ing = 0; //是否提交中 - console.log("index.js wx.request CheckCallUser statusCode" + res.statusCode); - th.setData({ - submit: 0, - }) - - wx.showToast({ - title: "网络繁忙("+res.statusCode+"),请重试", - icon: 'none', - duration: 2000 - }) - - } - }, - fail: function () { - th.data.is_summit_ing = 0; - wx.hideLoading(); - console.log("index.js wx.request CheckCallUser fail"); - th.setData({ - submit: 0, - }) - wx.showToast({ title: '系统错误' }) - } - }) + //专享礼包 + if (good.zx_libao) { + var l_txt = "formData.give_zxlb_id"; + //这个是json格式的 + var l_txt1 = "formData.g_zxlb_num"; + var ob = [{ "num": good.zx_lb_num, "l_id": good.zx_libao }]; + ob = JSON.stringify(ob); + th.setData({ [l_txt]: good.zx_libao, [l_txt1]: ob }); + } + }) + } else { + + var order_prom_txt1 = "formData.order_prom_id"; + var order_prom_txt2 = "formData.order_prom_amount"; + th.setData({ [order_prom_txt1]: 0, [order_prom_txt2]: 0 }) + + //判断是否同城配送,而且没有调用过 + if (th.data.bn_exp_type == 2 && th.data.user_addr) { + var gd_w = 0, lon = 0, lat = 0; + for (let ib in gd_arr_list) { + let item_b = gd_arr_list[ib]; + gd_w += item_b['weight'] * item_b['buynum']; + } - }, - //---确认线下门店的数量足不足--- - async check_store_num(goods_id, pick, goods_num, func) { - var lock = 0, pick_no, plist, erpwareid; - - var lock_rq={ store_id: os.stoid, wareId: goods_id, storageId: pick, pageSize: 1000 }; - if(this.data.sales_rules==3){ - lock_rq.appoint_pick_keyid=this.data.appoint_pick_keyid; - delete lock_rq.storageId - } - //先读取门店的lock - await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { - data: lock_rq + //-- 获取距离 -- + await getApp().request.promisePost("/api/weshop/order/sameCityExp/getGeocoder", { + is_json: 1, data: { address: th.data.user_addr.more_address + th.data.user_addr.address } }).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 (res.data.code == 0) { + var data = JSON.parse(res.data.data); + if (data.status == 0) { + lon = data.result.location.lng; + lat = data.result.location.lat; } + } }) - if(this.data.sales_rules==2) { - //先获取门店的编号 - await getApp().request.promiseGet("/api/weshop/pickup/get/" + os.stoid + "/" + pick, { - data: {storeId: os.stoid, goodsId: t.goods_id, pickupId: pick} - }).then(res => { - if (res.data.code == 0) { - pick_no = res.data.data.pickup_no; - } - }) + var req_data = { + store_id: os.stoid, order_amount: parseFloat(order_m), + lon: lon, lat: lat, pickup_id: bn_pick, goods_weight: gd_w } - //先获取商品的线下库存 - await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + goods_id, { - data: { storeId: os.stoid, goodsId: t.goods_id, pickupId: pick } + var is_next = 1; + + //获取同城配送参数 + await getApp().request.promisePost("/api/weshop/order/sameCityExp/getMoney", { + is_json: 1, data: req_data }).then(res => { - if (res.data.code == 0) { - erpwareid = res.data.data.erpwareid; + if (res.data.code == 0) { + var wl_txt = "formData.shipping_price"; + th.setData({ [wl_txt]: res.data.data, }) + + } else { + is_next = 0; + if (qfunc) { + qfunc(); + } else { + wx.showToast({ + title: res.data.msg, + icon: 'none', + duration: 2000 + }) } + + } }) + if (!is_next) return false + } - var sto_rq={ storageNos: pick_no, wareIds: encodeURIComponent(erpwareid), storeId: os.stoid, pageSize: 2000 }; - if(this.data.sales_rules==3){ - sto_rq.storageIds=this.data.appoint_pick_keyid; - delete sto_rq.storageNos - } + total_m = parseFloat(total_m) + parseFloat(th.data.formData.shipping_price); + order_m = parseFloat(order_m) + parseFloat(th.data.formData.shipping_price); + var atxt = "formData.total_amount"; - //读取线下的门店库存 - await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { - data: sto_rq - }).then(res => { - if (res.data.code == 0 && res.data.data.total > 0) { - plist = res.data.data.pageData[0]; - } - }) + total_m = total_m.toFixed(2); + order_m = order_m.toFixed(2); - var isok = 1; - if (!plist || goods_num > plist.CanOutQty - lock) { - isok = 0; - } - func(isok); - }, + th.setData({ [atxt]: total_m, }) + + var txt = "formData.user_money"; + var txt2 = "formData.order_amount"; + var txt3 = "formData.coupon_price"; + + //-- 最后的金额小于佣金 -- + if (parseFloat(order_m) < parseFloat(th.data.bn_goods.use_commission)) { - useCoupon: function () { - if (this.data.order.couponNum <= 0) { - getApp().my_warnning("无可用优惠券", 0, this); - return; + if (th.data.bn_use_commission) { + wx.showToast({ + title: '应付金额小于本单佣金,不可使用!', + icon: 'none', + duration: 2000 + }) } - var a = { - lid: this.data.coupon ? this.data.coupon.id : "0" - }; - wx.navigateTo({ - url: "/pages/user/checkcoupon/checkcoupon?" + s.Obj2Str(a) - }); - }, - enterAddressPage: function () { - getApp().globalData.is_cart_old = 1; - this.data.isget_by_quan = {}; - this.data.enterAddressPage = !0, wx.navigateTo({ - url: "/pages/user/address_list/address_list" + th.setData({ + bn_use_commission: 0 }); - }, + } - //--------购物车购买时,选择自提和物流----------- - setexptype_w: function (t) { - var def_exp_code = getApp().globalData.userInfo.def_exp_code, th = this; - var ty = t.currentTarget.dataset.t, txt = t.currentTarget.dataset.txt, - wl_txt = t.currentTarget.dataset.wl_txt, - ont = t.currentTarget.dataset.ont; + var txt4 = "formData.use_commission"; - th.setData({ [txt]: ty }); - var iszt = 1; + if (th.data.bn_use_commission) { + order_m = (parseFloat(order_m) - parseFloat(th.data.bn_goods.use_commission)).toFixed(2); + th.setData({ [txt4]: th.data.bn_goods.use_commission }) + } - if (ty == 0) { - th.setData({ is_all_zt: 0 }); + var amoney = parseFloat(th.data.userinfo.user_money - th.data.txmon - th.data.userinfo.frozen_money); + //--------------如果使用余额--------------------- + if (th.data.bn_use_money == 1) { + if (amoney > parseFloat(order_m)) { + order_m = parseFloat(order_m).toFixed(2); + th.setData({ [txt]: order_m, [txt2]: 0, [txt3]: coupon_price, show_submit: 1, submit: 0 }) } else { - for (var i = 0; i < th.data.cartlist.length; i++) { - var item = th.data.cartlist[i]; - if (item.exp_type == 0 || item.exp_type==2 ) { - iszt = 0; - break; - } - } + order_m = parseFloat(order_m) - parseFloat(amoney); + order_m = order_m.toFixed(2); + th.setData({ [txt]: amoney, [txt2]: order_m, [txt3]: coupon_price, show_submit: 1, submit: 0 }) + } + } else { + th.setData({ [txt]: 0, [txt2]: order_m, [txt3]: coupon_price, show_submit: 1, submit: 0 }) + } + //优惠活动送积分 + if (good.s_intValue) { + txt = "formData.give_integral"; + th.setData({ [txt]: good.s_intValue }); + } + //优惠送券 + if (good.s_coupon_id) { + var i_txt = "formData.give_coupon_id"; + //这个是json格式的 + var i_txt1 = "formData.g_coupon_num"; + var ob = [{ "num": good.s_coupon_num, "c_id": good.s_coupon_id }]; + ob = JSON.stringify(ob); + th.setData({ [i_txt]: good.s_coupon_id, [i_txt1]: ob }); + } + //优惠礼包 + if (good.s_libao) { + var l_txt = "formData.give_lb_id"; + //这个是json格式的 + var l_txt1 = "formData.g_lb_num"; + var ob = [{ "num": good.s_lb_num, "l_id": good.s_libao }]; + ob = JSON.stringify(ob); + th.setData({ [l_txt]: good.s_libao, [l_txt1]: ob }); + } + + //专享礼包 + if (good.zx_libao) { + var l_txt = "formData.give_zxlb_id"; + //这个是json格式的 + var l_txt1 = "formData.g_zxlb_num"; + var ob = [{ "num": good.zx_lb_num, "l_id": good.zx_libao }]; + ob = JSON.stringify(ob); + th.setData({ [l_txt]: good.zx_libao, [l_txt1]: ob }); + + } + } - th.setData({ is_all_zt: iszt }); + wx.hideLoading(); - var ind = t.currentTarget.dataset.ind; - var c_item = th.data.cartlist[ind]; - var pickid = c_item.pickup_id; + //}); - if (th.data.using_quan[pickid] && th.data.using_quan[pickid].isby == 1) { - th.data.using_quan[pickid] = {}; - th.setData({ using_quan: th.data.using_quan }); - } + }, + requestSubscribe() { + const th = this; + const template_id = this.data.template_id; + wx.getSetting({ + withSubscriptions: true, + success(res) { + let itemSettings = res.subscriptionsSetting.itemSettings; + if (itemSettings && itemSettings[template_id] == "accept") { + //要检查一下赠品有可以足够 + th.sub_check_gift(function () { + th.submit_func(); + }) + } else { + th.sendsm(function () { + //要检查一下赠品有可以足够 + th.sub_check_gift(function () { + th.submit_func(); + }) + }) } - //判断有没有默认的物流地址值 - if (def_exp_code != "" && def_exp_code != null && def_exp_code != undefined) { - var wu_arr = this.data.wu_arr; - if (wu_arr != null && wu_arr != "") { - for (var i = 0; i < wu_arr.length; i++) { - if (wu_arr[i].shipping_code == def_exp_code) { - var set_txt = "cartlist" - th.setData({ wl_txt: i }); - } - } - } - } - //----计算此时购物车的价格---- - th.calculatePrice(); - }, + } + }) + this.setData({ + submit: 1, + }) + }, + + + //分配代发商品 + add_df_goods(good, df_goods, whsle_id, room_id) { + var df_price = parseFloat(good.goods_num * good.goods_price); + + var index = df_goods.findIndex(function (e) { + return e.whsle_id == whsle_id + }) + if (index > -1) { + df_goods[index].df_price += df_price; + df_goods[index].df_goods.push(good); + + if (room_id) { + if (!df_goods[index].df_room_ids) + df_goods[index].df_room_ids = ""; + df_goods[index].df_room_ids += room_id + ","; + + } + + } else { + var e = { + whsle_id: whsle_id, + df_price: df_price, + df_goods: [] + } + if (room_id) e.df_room_ids = room_id + ',' + + e.df_goods.push(good); + df_goods.push(e); + } - //--------立即购买时,选择自提和物流---------- - setexptype: function (t) { - var th = this; - var ty = t.currentTarget.dataset.t, def_exp_code = getApp().globalData.userInfo.def_exp_code; - th.setData({ bn_exp_type: ty }); - if (ty == 0) { - th.setData({ is_all_zt: 0 }); - } + }, + async submit_func(){ + let cartlist = this.data.cartlist + let allarr=[] + let strarr=[] + let cbarr=[] + let cbarr_id=[] + for (let index = 0,length=cartlist.length; index < length; index++) { + let item=cartlist[index].goods + for (let i = 0,leng=item.length; i < leng; i++) { + if (item[i].prom_type==7) { + strarr.push(item[i]) + } + if (item[i].prom_type !=7 && item[i].goods_prom_type==7) { + allarr.push(item[i]) + } + } + } + if(strarr.length>0){ + if(allarr.length>0){ + allarr.map(item=>{ + let aitem = strarr.find(ite=>item.goods_prom_id==ite.goods_prom_id) + if(aitem){ + strarr.push(item) + } + }) + } - //当物流为空的时候。 - if (ty == 0 && th.data.wu_arr == null) { - th.data.isget_by_quan = {}; - return th.get_wuliu(th.calculatePrice2()); - } + for (let j = 0,length=strarr.length; j < length; j++) { - //--自提就要把包邮券清理掉-- - if (ty == 1) { - th.data.isget_by_quan = {}; - if (th.data.using_quan[th.data.bn_pick] && th.data.using_quan[th.data.bn_pick].isby == 1) { - th.setData({ using_quan: {} }); - } + let userbuynum = await this.getUserBuyPromNum(strarr[j].goods_prom_id) + if (userbuynum >=strarr[j].act.buy_limit) { + cbarr.push(strarr[j].goods_name) + cbarr_id.push(strarr[j].id) } - - //判断有没有默认的物流地址值 - if (def_exp_code != "" && def_exp_code != null && def_exp_code != undefined) { - var wu_arr = this.data.wu_arr; - if (wu_arr != null && wu_arr != "") { - for (var i = 0; i < wu_arr.length; i++) { - if (wu_arr[i].shipping_code == def_exp_code) { - th.setData({ index: i }); - } + } + if(cbarr.length>0){ + let str = cbarr.join() + wx.showModal({ + title: '提示', + content: `${str}超出组合购限购次数,将以普通商品购买`, + success: async (res)=>{ + if (res.confirm) { + //-- 数据的更新 -- + for (let k = 0,length=cbarr_id.length; k < length; k++) { + let data = { + id: cbarr_id[k], + selected: 1, + store_id: oo.stoid, + prom_type:0, + prom_id:0 + }; + await getApp().request.promisePut("/api/weshop/cart/update", { + data:data + }); } + + wx.reLaunch({ + url: '/pages/cart/cart2/cart2', + }) + } else if (res.cancel) { + console.log('用户点击取消') + this.setData({ + submit:0 + }) } + } + }) + }else{ + this.submit_func2() + } + }else{ + this.submit_func2() + } + }, + + //获取用户活动参与次数 + 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 submit_func2() { + + if (this.data.is_summit_ing) return false; + this.data.is_summit_ing = 1; + + var th = this, pdata = new Array(); + var ff = true; + //------------立即购买------------- + if (th.data.is_b_now == 1 && th.data.bn_goods.prom_type != 5) { + if (th.data.bn_exp_type == 0 && th.data.user_addr == null) { + ff = false; + getApp().my_warnning("请选择收货地址", 0, th); + th.data.is_summit_ing = 0; + } + if (!ff) return false; + var addr = th.data.user_addr; + if (th.data.bn_exp_type == 1) addr = null; + if (th.data.bn_exp_type == 0) + if (th.data.wu_arr == null || th.data.wu_arr.length <= 0) { + getApp().my_warnning("读取物流失败", 0, th); + th.data.is_summit_ing = 0; + return false; } - th.calculatePrice2() - - }, - - //--------立即购买时,使用余额-------- - set_bn_useyuer: function () { - var th = this; - th.setData({ bn_use_money: !th.data.bn_use_money }); - th.calculatePrice2(); - }, - - //立即购买的时候,使用余额 - set_bn_commission:function(){ - var th = this; - th.setData({ bn_use_commission: !th.data.bn_use_commission }); - th.calculatePrice2(); - }, - //加入购物车使用余额 - set_cart_commission:function(){ - var th = this; - th.setData({ cart_use_commission: !th.data.cart_use_commission }); - th.calculatePrice(); - }, - set_js_useyuer: function () { - var th = this; - th.setData({ js_use_money: !th.data.js_use_money }); - th.calculatePrice(); - }, + var item = { + 'user_id': to.globalData.user_id, + 'consignee': addr == null ? "" : addr.consignee, + 'province': addr == null ? 0 : addr.province, + 'city': addr == null ? 0 : addr.city, + 'district': addr == null ? 0 : addr.district, + 'twon': addr == null ? 0 : addr.twon, + 'address': addr == null ? "" : addr.address, + 'more_address': addr == null ? "" : addr.more_address, + //'mobile': th.data.userinfo.mobile, + 'mobile': addr == null ? th.data.userinfo.mobile : addr.mobile, + 'email': '', + 'shipping_code': th.data.bn_exp_type == 1 ? 0 : th.data.wu_arr[th.data.index].code, + 'shipping_name': th.data.bn_exp_type == 1 ? '' : th.data.wu_arr[th.data.index].name, + 'invoice_title': '', + 'goods_price': parseFloat(th.data.formData.all_price).toFixed(2), //商品总价 + 'shipping_price': parseFloat(th.data.formData.shipping_price).toFixed(2), //物流金额 + 'user_money': parseFloat(th.data.formData.user_money).toFixed(2), //使用余额 + 'total_amount': parseFloat(th.data.formData.total_amount).toFixed(2), //订单总价 + 'order_amount': parseFloat(th.data.formData.order_amount).toFixed(2), //应付 + 'user_note': th.data.user_note['0'] ? th.data.user_note['0'] : "", //用户备注 + 'store_id': oo.stoid, //商家 + 'pickup_id': th.data.bn_pick, //门店 + 'exp_type': th.data.bn_exp_type, //配送方式 + 'order_goods': new Array(), + }; + //是不是重新提交 + if (th.data.is_continue == 1) item.is_continue = 1; + + //-- 如果有使用佣金抵扣的话 -- + if (th.data.bn_use_commission) { + item.use_commission = th.data.bn_goods.use_commission; + } + + //获取立即购买的商品的信息 + var gg = to.get_b_now(); + //--商品的房间号-- + if (gg.room_id && gg.room_id > 0) { + item.room_ids = gg.room_id; + } + + var order_prom_list = {}; + //--判断有没有优惠活动-- + if (th.data.order_prom[item.pickup_id]) { + if (th.data.formData.order_prom_amount > 0) { + order_prom_list.order_prom_id = th.data.formData.order_prom_id; + order_prom_list.order_prom_amount = th.data.formData.order_prom_amount; + } + } + + //--判断优惠活动的提交-- + if (th.data.formData.cut_price > 0) { + order_prom_list.discount_amount = th.data.formData.cut_price.toFixed(2); + var ob = [{ + "prom_id": th.data.bn_goods.prom_id, + "dis": parseFloat(th.data.formData.cut_price).toFixed(2), + "ispt": 0 + }] + order_prom_list.prom_pt_json = JSON.stringify(ob); + } + if (th.data.formData.give_integral > 0) { + order_prom_list.give_integral = th.data.formData.give_integral; + } + if (th.data.formData.give_coupon_id > 0) { + order_prom_list.give_coupon_id = th.data.formData.give_coupon_id; + order_prom_list.g_coupon_num = th.data.formData.g_coupon_num; + } + if (th.data.formData.give_lb_id > 0) { + order_prom_list.give_lb_id = th.data.formData.give_lb_id; + order_prom_list.g_lb_num = th.data.formData.g_lb_num; + } + //--- 专享礼包 --- + if (th.data.formData.give_zxlb_id > 0) { + order_prom_list.give_zxlb_id = th.data.formData.give_zxlb_id; + order_prom_list.g_zxlb_num = th.data.formData.g_zxlb_num; + } + + item.order_prom_list = order_prom_list; + + //组装优惠券的钱 + if (parseFloat(th.data.formData.coupon_price) > 0) { + item.coupon_price = th.data.formData.coupon_price; + item.coupon_no = th.data.using_quan[th.data.bn_pick].coupon_no; + } + if (th.data.using_quan[th.data.bn_pick] && th.data.using_quan[th.data.bn_pick].coupon_no && th.data.using_quan[th.data.bn_pick].isby) { + item.coupon_no = th.data.using_quan[th.data.bn_pick].coupon_no; + item.coupon_price = 0; + } + + //老会员成为分销下线需要的参数 + if (getApp().globalData.first_leader && !getApp().globalData.userInfo.first_leader) { + //判断一下分享人是不是分享商 + await app.request.promiseGet("/api/weshop/users/get/" + os.stoid + "/" + getApp().globalData.first_leader, {}).then(res => { + if (res.data.code == 0) { + var user = res.data.data; + if (user.is_distribut == 1) { + item.first_leader = parseInt(getApp().globalData.first_leader); + } + } + }) + } + + + var goods = { + 'goods_id': gg.goods_id, + 'goods_name': gg.goods_name, + 'goods_sn': gg.goods_sn, + 'goods_num': gg.goods_num, + 'market_price': th.data.bn_goods.market_price, + 'goods_price': th.data.bn_goods.shop_price, + 'member_goods_price': th.data.bn_goods.shop_price, + 'store_id': oo.stoid, + 'prom_type': th.data.bn_goods.prom_type, //促销活动类型 + 'prom_id': th.data.bn_goods.prom_id, //促销活动id + }; + + if (th.data.bn_goods.whsle_id) { + item.is_whsle = 1; + item.whsle_id = th.data.bn_goods.whsle_id; + goods.is_whsle_goods = 1; + } + + if (getApp().globalData.skinface_id) { + goods.skinface_id = getApp().globalData.skinface_id; + } + + //-- 把导购的信息填入-- + if (gg.guide_id) { + goods.guide_id = gg.guide_id; + goods.guide_type = gg.guide_type; + //调用接口判断是不是会员 + await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/" + oo.stoid + "/" + gg.guide_id, {}).then(res => { + if (res.data.code == 0) { + goods.guide_name = res.data.data.salesman; + goods.guide_sn = res.data.data.salesman_no; + } + }) + } + //--商品的房间号-- + if (gg.room_id && gg.room_id > 0) { + goods.room_id = gg.room_id; + } - //----------立即购买,选择物流------------- - bindPickerChange: function (e) { - var ind = e.detail.value - this.setData({ index: ind }); - this.calculatePrice2(); - }, - //----------购物车结算,选择物流------------- - bindPickerChange_w: function (e) { - var ind = e.detail.value, txt = e.currentTarget.dataset.txt; - this.setData({ [txt]: ind }); - this.calculatePrice(); - }, + //积分购,先要带is_integral_normal=1 + if (gg.is_integral_normal) { + goods.is_integral_normal = 1; item.is_normal = 1; + } - /*----券的所有操作----*/ - open_coupon_list: function (e) { - var th = this; - var pickid = e.currentTarget.dataset.pickid; - var bn = e.currentTarget.dataset.bn; - var cindx = e.currentTarget.dataset.cind; - var get_by_quan_list_cart = th.data.get_by_quan_list_cart[pickid]; + //先要带is_pd_normal=1 + if (gg.is_pd_normal) { + goods.is_pd_normal = 1; item.is_normal = 1; + } - if (bn == 1) { - th.setData({ open_quan: 1, selected_quan_pick: pickid, disabled: 1 }); - } else { - //---多单打开券的时候,就要判断券在其他门店是否有使用--- - var quanlist = th.data.cartlist[cindx].quan_list; - var exp_type = th.data.cartlist[cindx].exp_type; + //如果不立即购买或者秒杀,如果是线下库存购买的时候 + if (goods.prom_type != 1 && goods.prom_type != 6 && goods.prom_type != 2 && th.data.sales_rules >= 2 && !th.data.bn_goods.whsle_id) { + var isok = 1; + await th.check_store_num(goods.goods_id, th.data.bn_pick, gg.goods_num, function (res) { + isok = res; + }); + if (!isok) { + getApp().confirmBox("商品的门店库存不足"); + th.data.is_summit_ing = 0; + return false; + } + } + + //-- 如果有线下取价的话 -- + if (th.data.bn_goods.is_offline) { + item.sum_offline_cut = (th.data.bn_goods.shop_price - th.data.bn_goods.offline_price).toFixed(2); + goods.offline_cut = item.sum_offline_cut; + goods.pricing_type = th.data.bn_goods.pricing_type; + goods.goods_price = th.data.bn_goods.offline_price; + goods.member_goods_price = th.data.bn_goods.offline_price; + } + + //--- 如果有优惠促销的金额,要把金额先平摊下去 --- + if (th.data.formData.cut_price > 0 && !th.data.ispt_goods) { + var g_arr = new Array(); + g_arr.push(goods); + var pt_data = { + 'prom_id': goods.prom_id, + 'dis': parseFloat(th.data.formData.cut_price), + 'goods': g_arr, + } + var pt_res = null; + await getApp().request.promisePost("/api/weshop/order/getGoodsSplit", { + is_json: 1, + data: pt_data + }).then(res => { + if (res.data.code == 0) { + pt_res = res.data.data; + } + }) - //对于在其他门店已经选择了的券 要判断是否显示到界面 - var t_user = th.data.using_quan[pickid]; + if (pt_res) { + //平摊赋值 + goods.account = pt_res[0].fisrt_account; + goods.account_yu = pt_res[0].fisrt_account_yu; + item.is_discount_amount = 1; + } + } + + //--组装优惠券的钱-- + if (th.data.formData.coupon_price) { + item.coupon_price = th.data.formData.coupon_price; + item.coupon_no = th.data.using_quan[th.data.bn_pick].coupon_no; + goods.quan_num = th.data.formData.coupon_price; + goods.quan_no = item.coupon_no; + } + + item.order_goods.push(goods); + + //--如果有赠品的时候,赠品也要提交--- + if (th.data.buy_now_gift_goods) { + var gift_gg_arr = th.data.buy_now_gift_goods; + for (let i in gift_gg_arr) { + let gift_gg = gift_gg_arr[i]; + var g_goods = { + 'goods_id': gift_gg.goods_id, + 'goods_name': gift_gg.goods_name, + 'goods_sn': gift_gg.goods_sn, + 'goods_num': gift_gg.buynum, + 'market_price': gift_gg.market_price, + 'goods_price': 0, + 'member_goods_price': 0, + 'store_id': oo.stoid, + 'is_gift': 1, + 'gift_id': gift_gg.gift_id, + 'prom_id': gift_gg.prom_id, + }; + //-- 把导购的信息填入-- + if (gg.guide_id) { + g_goods.guide_id = gg.guide_id; + g_goods.guide_type = gg.guide_type; + //调用接口判断是不是会员 + await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/" + oo.stoid + "/" + gg.guide_id, {}).then(res => { + if (res.data.code == 0) { + g_goods.guide_name = res.data.data.salesman; + g_goods.guide_sn = res.data.data.salesman_no; + } + }) + } + item.order_goods.push(g_goods); - for (var i in quanlist) { - quanlist[i].is_using = th.check_in_sele(quanlist[i].CashRepNo, pickid); - if (t_user && quanlist[i].CashRepNo == t_user.coupon_no) - quanlist[i].show_red = 1; - else - quanlist[i].show_red = 0; - } + } - if (get_by_quan_list_cart) { - for (var i in get_by_quan_list_cart) { - get_by_quan_list_cart[i].is_using = th.check_in_sele(get_by_quan_list_cart[i].no, pickid); - if (t_user && get_by_quan_list_cart[i].no == t_user.coupon_no) - get_by_quan_list_cart[i].show_red = 1; - else - get_by_quan_list_cart[i].show_red = 0; - } - th.setData({ by_quan_list_cart: get_by_quan_list_cart }); - } else { - th.setData({ by_quan_list_cart: null }); - } + } + pdata.push(item); + } else { + + //---------购物车的结算--------- + if (th.data.is_all_zt == 0 && th.data.user_addr == null) { + th.data.is_summit_ing = 0; + ff = false; + getApp().confirmBox("请新建收货地址"); + } + if (!ff) return false; + + var addr = th.data.user_addr; + // 自提,地址数据清空 exp_type设置为1 + if (th.data.is_all_zt == 1) addr = null; + var val_arr = th.data.user_note; + + if (th.data.is_all_zt != 1) + if (th.data.wu_arr == null || th.data.wu_arr.length <= 0) { + th.data.is_summit_ing = 0; + getApp().confirmBox("读取物流失败"); + return false; + } - console.log("2222222券的列表", quanlist); - th.setData({ - sele_cart_ind: cindx, - sele_exp_type: exp_type, - open_quan: 1, - selected_quan_pick: pickid, - selected_quan_list: quanlist, - disabled: 1 - }); + var order_prom_list_cart = th.data.order_prom_list_cart; + + //--组装推送数据-- + for (var i = 0; i < order_prom_list_cart.length; i++) { + var t_item = order_prom_list_cart[i]; + var item = { + 'user_id': to.globalData.user_id, + 'consignee': addr == null ? th.data.userinfo.mobile : addr.consignee, + 'province': addr == null ? 0 : addr.province, + 'city': addr == null ? 0 : addr.city, + 'district': addr == null ? 0 : addr.district, + 'twon': addr == null ? 0 : addr.twon, + 'address': addr == null ? "" : addr.address, + 'more_address': addr == null ? "" : addr.more_address, + 'mobile': addr == null ? th.data.userinfo.mobile : addr.mobile, + 'email': '', + 'shipping_code': th.data.is_all_zt == 1 ? 0 : th.data.wu_arr[t_item.wind].code, + 'shipping_name': th.data.is_all_zt == 1 ? '' : th.data.wu_arr[t_item.wind].name, + 'invoice_title': '', + 'goods_price': parseFloat(t_item.goods_price).toFixed(2), //商品总价 + 'shipping_price': parseFloat(t_item.shipping_price).toFixed(2), //物流金额 + 'user_money': parseFloat(t_item.user_money).toFixed(2), //使用余额 + 'total_amount': parseFloat(t_item.total_amount).toFixed(2), //订单总价 + 'order_amount': parseFloat(t_item.order_amount).toFixed(2), //应付 + 'user_note': val_arr[i], //用户备注 + 'store_id': oo.stoid, //商家 + 'pickup_id': t_item.pickup_id, //门店 + 'exp_type': t_item.exp_type, //配送方式 + 'order_goods': new Array(), + }; + //是不是重新提交 + if (th.data.is_continue == 1) item.is_continue = 1; + //----- 如果有线下取价的话 ---- + if (t_item.is_offline == 1) { + item.sum_offline_cut = t_item.offline_price.toFixed(2); } - }, - close_coupon: function (e) { - var th = this; - th.setData({ open_quan: 0, disabled: 0 }); - }, - //---判断券时候在已经选择的列表中--- - check_in_sele: function (no, pick_id) { - var th = this; - if (th.data.using_quan.length <= 0) return false; - for (var i in th.data.using_quan) { - //--如果键值等于本身就要跳出-- - if (parseInt(i) == parseInt(pick_id)) continue; - var item = th.data.using_quan[i]; - if (item.coupon_no == no) { - return true; - } + //组装优惠券的钱 + if (t_item.coupon_price) { + item.coupon_price = t_item.coupon_price; + item.coupon_no = th.data.using_quan[t_item.pickup_id].coupon_no; + } else if (t_item.quan_no) { + item.coupon_no = t_item.quan_no; + item.coupon_price = 0; } - return false; - }, - /*--点击选择券--*/ - sele_quan_item: function (e) { - - var ind = e.currentTarget.dataset.ind; - var quan_item = this.data.selected_quan_list[ind]; - var pickid = this.data.selected_quan_pick; //现在选择的是哪一个门店 - //--如果券是单品使用的时候-- - if (quan_item && quan_item.UseObjectType && quan_item.UseObjectType == "20") { - //---只有多件购买的时候才要计算,//购物车购买和搭配勾的时候--- - var gg = getApp().get_b_now(); - if (this.data.is_b_now == 0 || gg.prom_type == 5) { - var arr = this.data.order_prom_list_cart; - var t_pk_item = null; - for (var ii in arr) { - var ep = arr[ii]; - if (pickid == ep.pickup_id) { - t_pk_item = ep; - break; - } - } - //--寻找券指定的商品-- - var gd = null; - if (t_pk_item) { - var goods = t_pk_item.goods; - for (var gid in goods) { - if (quan_item.UseObjectID == goods[gid].erpwareid) { - gd = goods[gid]; - } - } - } - if (!gd) { - getApp().my_warnning("未找到指定商品使用", 0, this, 600); - return false; - } - //计算价格,如果有平摊的实收要计算实收的金额 - var item_price = gd.goods_price * gd.goods_num; - //-- 如果有平摊下去,有实收价格的时候,就要用account_fir来计算价格 -- - if (gd.account_fir != null && gd.account_fir != undefined) { - item_price = gd.account_fir * gd.goods_num; - } + //-- 如果有使用佣金抵扣的话 -- + if (th.data.cart_use_commission) { + item.use_commission = t_item.can_usecommise; + } - if (item_price < parseFloat(quan_item.BuySum)) { - getApp().my_warnning("该单品金额没有大于等于" + quan_item.BuySum + "元时不能使用优惠券", 0, this, 600); - return false; - } - } + var order_prom_list = {}; + //--判断有没有优惠活动-- + if (t_item.order_prom_amount > 0) { + order_prom_list.order_prom_id = t_item.order_prom_id; + order_prom_list.order_prom_amount = t_item.order_prom_amount; } - var no_use = e.currentTarget.dataset.no, quanlist = this.data.selected_quan_list; - //---所有的券的显示红色选择都清理一遍--- - for (var i in quanlist) { - quanlist[i].show_red = 0; + order_prom_list.discount_amount = 0; + //--判断优惠活动的提交-- + if (t_item.cut_price > 0) { + order_prom_list.discount_amount += t_item.cut_price; } - this.setData({ selected_quan_list: quanlist }); - var by_quanlist = this.data.get_by_quan_list; - if (by_quanlist) { - //---所有的券的显示红色选择都清理一遍--- - for (var inb in by_quanlist) { - by_quanlist[inb].show_red = 0; - } - this.setData({ get_by_quan_list: by_quanlist }); + //--判断组合优惠活动的提交-- + if (t_item.zh_cut_price > 0 || t_item.zh_cut_price < 0) { + order_prom_list.discount_amount += t_item.zh_cut_price; + order_prom_list.zh_pt_json = JSON.stringify(t_item.zh_pt_json); } - var by_cart_list = this.data.by_quan_list_cart; - if (by_cart_list) { - //---所有的券的显示红色选择都清理一遍--- - for (var inc in by_cart_list) { - by_cart_list[inc].show_red = 0; - } - this.setData({ by_quan_list_cart: by_cart_list }); + //--判断阶梯优惠活动的提交-- + if (t_item.ladder_cut_price > 0 || t_item.ladder_cut_price < 0) { + order_prom_list.discount_amount += t_item.ladder_cut_price; } - var using_quan = this.data.using_quan; - var th = this; - //---如果是不使用优惠券--- - if (no_use == 1) { - console.log("有进来吗券", no_use); - if (using_quan[th.data.selected_quan_pick]) { - using_quan[th.data.selected_quan_pick].is_nouse_red = 1; - } - else { - using_quan[th.data.selected_quan_pick] = { is_nouse_red: 1 }; - } - this.setData({ using_quan: using_quan, is_coupon: th.is_coupon }); - return; + if (t_item.prom_pt_json) { + order_prom_list.prom_pt_json = JSON.stringify(t_item.prom_pt_json); } - - var txt = "selected_quan_list[" + ind + "].show_red"; - var obj = {}; - obj[txt] = 1; - if (quan_item.show_red) { - obj[txt] = 0; + if (t_item.s_intValue > 0) { + order_prom_list.give_integral = t_item.s_intValue; } - this.setData(obj); - console.log(this.data.selected_quan_list, "选中的券的下标", quan_item, "数据都在这里", txt); - if (using_quan[th.data.selected_quan_pick]) { - using_quan[th.data.selected_quan_pick].is_nouse_red = 0; + if (t_item.s_coupon_id) { + order_prom_list.give_coupon_id = t_item.s_coupon_id; + order_prom_list.g_coupon_num = JSON.stringify(t_item.g_coupon_num); } - else { - using_quan[th.data.selected_quan_pick] = { is_nouse_red: 0 }; + if (t_item.s_libao) { + order_prom_list.give_lb_id = t_item.s_libao; + order_prom_list.g_lb_num = JSON.stringify(t_item.g_lb_num); } - this.setData({ using_quan: using_quan }); - - }, - /*----- 点击选择包邮券 -----*/ - sele_quan_item_by: function (e) { - var no_use = e.currentTarget.dataset.no; - //立即购买的包邮券 - var by_quanlist = this.data.get_by_quan_list; - if (by_quanlist) { - //---所有的券的显示红色选择都清理一遍--- - for (var ind in by_quanlist) { - by_quanlist[ind].show_red = 0; - } - this.setData({ get_by_quan_list: by_quanlist }); + //-- 送专享礼包的时候 -- + if (t_item.zx_libao) { + order_prom_list.give_zxlb_id = t_item.zx_libao; + order_prom_list.g_zxlb_num = JSON.stringify(t_item.g_zxlb_num); } - //--购物车过来的包邮券-- - var by_cart_list = this.data.by_quan_list_cart; - if (by_cart_list) { - //---所有的券的显示红色选择都清理一遍--- - for (var ind in by_cart_list) { - by_cart_list[ind].show_red = 0; - } - this.setData({ by_quan_list_cart: by_cart_list }); - } - //普通券 - var quanlist = this.data.selected_quan_list; - if (quanlist) { - //---所有的券的显示红色选择都清理一遍--- - for (var ind in quanlist) { - quanlist[ind].show_red = 0; - } - this.setData({ selected_quan_list: quanlist }); - } + if (Object.keys(order_prom_list).length > 0) { + if (order_prom_list.discount_amount) + order_prom_list.discount_amount = parseFloat(order_prom_list.discount_amount).toFixed(2); + if (order_prom_list.order_prom_amount) + order_prom_list.order_prom_amount = parseFloat(order_prom_list.order_prom_amount).toFixed(2); - var th = this; - var using_quan = this.data.using_quan; - //---如果是不使用优惠券--- - if (no_use == 1) { - if (using_quan[th.data.selected_quan_pick]) { - using_quan[th.data.selected_quan_pick].is_nouse_red = 1; - } - else { - using_quan[th.data.selected_quan_pick] = { is_nouse_red: 1 }; - } - this.setData({ using_quan: using_quan, is_coupon: th.is_coupon }); - return; - } - - var pickid = th.data.selected_quan_pick; //现在选择的是哪一个门店 - var ind = e.currentTarget.dataset.ind; - //--如果是立即购买的部分-- - var txt = ""; - var txt1 = ""; - var quan_item = null; - if (th.data.is_b_now) { - quan_item = this.data.get_by_quan_list[ind]; - txt = "get_by_quan_list[" + ind + "].show_red"; - var obj = {}; - obj[txt] = 1; - this.setData(obj); - } else { - txt = "by_quan_list_cart[" + ind + "].show_red"; - quan_item = th.data.by_quan_list_cart[ind]; - var obj = {}; - obj[txt] = 1; - this.setData(obj); - th.data.get_by_quan_list_cart[pickid] = JSON.parse(JSON.stringify(th.data.by_quan_list_cart)); //要把选中的弄回数组 + item.order_prom_list = order_prom_list; } - if (using_quan[th.data.selected_quan_pick]) { - using_quan[th.data.selected_quan_pick].is_nouse_red = 0; - } - else { - using_quan[th.data.selected_quan_pick] = { is_nouse_red: 0 }; - } - this.setData({ using_quan: using_quan }); - }, - //--确认使用券--- - confirm_quan: function () { - var using_quan = this.data.using_quan; //正在使用中的券列表 - var pickid = this.data.selected_quan_pick; //选中的门店ID - var th = this; - var selected_quan_list = this.data.selected_quan_list; //选择了那个门店的券列表 - var get_by_quan_list = this.data.get_by_quan_list; //立即购买的包邮券列表 - var by_quan_list_cart = this.data.by_quan_list_cart; //购物车购买的包邮券列表 - //选择了的券 - var sele_quan = null; - - //循环普通的券 - for (var i in selected_quan_list) { - var item = selected_quan_list[i]; - if (item.show_red) { - th.insert_into_using_quan(item, using_quan, pickid); - return; + //老会员成为分销下线需要的参数 + if (getApp().globalData.first_leader && !getApp().globalData.userInfo.first_leader) { + //判断一下分享人是不是分享商 + await app.request.promiseGet("/api/weshop/users/get/" + os.stoid + "/" + getApp().globalData.first_leader, {}).then(res => { + if (res.data.code == 0) { + var user = res.data.data; + if (user.is_distribut == 1) { + item.first_leader = parseInt(getApp().globalData.first_leader); + } } + }) } - //循环包邮的券,立即购买的 - for (var i in get_by_quan_list) { - var item = get_by_quan_list[i]; - if (item.show_red) { - if (th.data.is_no_by[pickid] == 1) { - getApp().my_warnning("已全场不能包邮,不能选择包邮券", 0, th); - return false; - } - if (th.data.is_by[pickid] == 1) { - getApp().my_warnning("已全场包邮,不能选择包邮券", 0, th); - return false; - } - th.insert_into_using_quan(item, using_quan, pickid, 1); - return; - } + + //房间号的ids + var room_ids = ""; + + //-- 把券的钱,写入从表 --- + if (t_item.quan_youhui_list && t_item.coupon_price) { + for (var kk in t_item.quan_youhui_list) { + var you_item = t_item.quan_youhui_list[kk]; + //-- 对券的价格进行平摊 -- + await th.split_set_goods_quanprice(you_item, t_item); + } } - //循环包邮的券 - for (var i in by_quan_list_cart) { - var item = by_quan_list_cart[i]; - if (item.show_red) { - if (th.data.is_no_by[pickid] == 1) { - getApp().my_warnning("已全场不能包邮,不能选择包邮券", 0, th); - return false; - } - if (th.data.is_by[pickid] == 1) { - getApp().my_warnning("已全场包邮,不能选择包邮券", 0, th); - return false; - } - th.insert_into_using_quan(item, using_quan, pickid, 1); - return; + //代发商品的集合 + var df_goods = []; + var df_price = 0; + var df_room_ids = ""; + + + var check_map = {}; + + //-------------让商品添加到商品列表-------------------- + for (var k = 0; k < t_item.goods.length; k++) { + + console.log("222"); + var g_item = t_item.goods[k]; + if (g_item.goods_num <= 0) continue; + var goods = { + 'goods_id': g_item.goods_id, + 'goods_name': g_item.goods_name, + 'goods_sn': g_item.goods_sn, + 'goods_num': g_item.goods_num, + 'market_price': g_item.market_price, + 'goods_price': g_item.goods_price, + 'member_goods_price': g_item.goods_price, + 'store_id': oo.stoid, + }; + + if (getApp().globalData.skinface_id) { + goods.skinface_id = getApp().globalData.skinface_id; + } + + //-- 线下取价也要写入,组合购的商品不能去线下价格 -- + if (g_item.offline_price && t_item.is_offline == 1 && g_item.prom_type != 7) { + goods.goods_price = g_item.offline_price; + goods.member_goods_price = g_item.offline_price; + goods.offline_cut = (g_item.goods_price - g_item.offline_price).toFixed(2); + goods.pricing_type = g_item.pricing_type; + } + if (g_item.quan_num) { + goods.quan_num = g_item.quan_num; + goods.quan_no = g_item.quan_no; + } + //--判断活动的类型-- + switch (g_item.prom_type) { + case 1: + case 2: + case 10: + goods.prom_type = g_item.prom_type; + goods.prom_id = g_item.prom_id; + break; + case 3: + goods.prom_type = 3; + goods.prom_id = g_item.prom_id; + if (g_item.is_gift) { + goods.is_gift = g_item.is_gift; + goods.gift_id = g_item.gift_id; + } + break; + case 5: + goods.prom_type = 5; + goods.prom_id = g_item.prom_id; + if (g_item.is_collocation) { + goods.is_collocation = g_item.is_collocation; + } + break + case 7: + goods.prom_type = 7; + goods.prom_id = g_item.prom_id; + break + default: + goods.prom_type = 0; + goods.prom_id = 0; + } + + var txt = goods.prom_id + ',' + goods.prom_type + ',' + goods.goods_id + ',' + goods.is_gift; + //--赠品的时候,阶梯促销会右重复的情况 -- + if (check_map[txt] && goods.prom_type != 10) { + getApp().confirmBox(goods.goods_name + "计算金额错误,请重新刷新"); + return false; + } else { + check_map[txt] = 1; + } + + //如果不立即购买或者秒杀,如果是线下库存购买的时候 + if (goods.prom_type == 0 && th.data.sales_rules >= 2) { + var isok = 1; + await th.check_store_num(goods.goods_id, t_item.pickup_id, goods.goods_num, function (res) { + isok = res; + }); + if (!isok) { + getApp().confirmBox(goods.goods_name + "的门店库存不足"); + th.data.is_summit_ing = 0; + return false; + } + } + + //把优惠的平摊结果写进去 + if (g_item.account >= 0 || (g_item.account_yu != 0 && g_item.account != undefined)) { + if (g_item.account >= 0) goods.account = g_item.account; + if (g_item.account_yu != 0) goods.account_yu = g_item.account_yu; + item.is_discount_amount = 1; + } + + //导购ID + if (g_item.guide_id) { + goods.guide_id = g_item.guide_id; + goods.guide_type = g_item.guide_type; + //调用接口判断是不是会员 + await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/" + oo.stoid + "/" + g_item.guide_id, {}).then(res => { + if (res.data.code == 0) { + goods.guide_name = res.data.data.salesman; + goods.guide_sn = res.data.data.salesman_no; + } + }) + } + + //如果有阶梯促销 + if (g_item.ladder_list_id) { + goods.ladder_list_id = g_item.ladder_list_id; + } + + //-- 如果有代发商品,就要开始拆单 -- + if (g_item.whsle_id && t_item.goods.length > 1) { + df_price += parseFloat(g_item.goods_num * g_item.goods_price); + goods.is_whsle_goods = 1; + th.add_df_goods(goods, df_goods, g_item.whsle_id, g_item.room_id); + + //df_goods.push(goods); + // df_room_ids += g_item.room_id + ","; + } else { + + //-- 如果只有一件的时候,商品又是代发商品,订单的状态要改成代发订单 -- + if (g_item.whsle_id) { + goods.is_whsle_goods = 1; + item.is_whsle = 1; + item.whsle_id = g_item.whsle_id } - } - //选择了的券,看是不是点击了不使用券,点击了不使用优惠券 - if (using_quan[pickid]) { - if (using_quan[pickid].is_nouse_red == 1) { - using_quan[pickid] = { is_nouse_red: 1 }; - th.setData({ using_quan: using_quan }); - if (th.data.is_b_now == 1) { - th.calculatePrice2(); - } else { - th.calculatePrice(); - } - th.setData({ open_quan: 0 }); - return; + item.order_goods.push(goods); + //如果房间号不为空的时候 + if (g_item.room_id) { + goods.room_id = g_item.room_id; + room_ids += g_item.room_id + ","; } + } } - }, - //----把券插入之后的操作,同时还要重新计算价格---- - insert_into_using_quan:async function (item, using_quan, pickid, isby) { - var th = this; - var old_quan=null; - if (isby == 1) { - using_quan[pickid] = { - coupon_no: item.no, - money: 0, - is_nouse_red: 0, - region_list: item.region_list, - goods_list: item.goods_list - }; - using_quan[pickid].isby = 1; - } else { - if(using_quan[pickid]) old_quan=using_quan[pickid]; - using_quan[pickid] = { coupon_no: item.CashRepNo, money: item.Sum, is_nouse_red: 0 }; - using_quan[pickid].isby = 0; - } - this.setData({ using_quan: using_quan }); - if (th.data.is_b_now == 1) { - th.calculatePrice2(function () { - if(old_quan) using_quan[pickid]=old_quan; - else using_quan[pickid]=null; - th.setData({ using_quan: using_quan,submit:0 }); - wx.showToast({ - title: "不能使用优惠券,同城起送价不足", - icon: 'none', - duration: 2000 - }) + //如果房间号不为空的时候 + if (room_ids != "") item.room_ids = ut.sub_last(room_ids); - }); - } else { - th.calculatePrice(function () { - if(old_quan) using_quan[pickid]=old_quan; - else using_quan[pickid]=null; - th.setData({ using_quan: using_quan ,submit:0 }); - wx.showToast({ - title: "不能使用优惠券,同城起送价不足", - icon: 'none', - duration: 2000 - }) - }); - } - th.setData({ open_quan: 0 }); - }, + //处理代发商品的拆分 + if (df_goods.length > 0) { - cart_set_err: function (e) { - var txt = e.currentTarget.dataset.err; - var ob = {}; - ob[txt] = this.data.imgUrl + "/miniapp/images/default_g_img.gif"; - this.setData(ob); - }, - cart_set_err1: function (e) { - var txt = e.currentTarget.dataset.err; - var ob = {}; - ob[txt] = "/miniapp/images/default_g_img.gif"; - this.setData(ob); - }, - //--验证是否已经冻结-- - check_is_frozenQuan: function (quanlist, frozenQuan, isby) { - console.log("券列表", quanlist); - if (!quanlist) return null; - if (!frozenQuan) return quanlist; - var arr = []; - for (var i = 0; i < quanlist.length; i++) { - var item = quanlist[i]; - var is_find = 0; - var Q_no = quanlist[i].CashRepNo; - if (isby) Q_no = quanlist[i].no; - for (var j = 0; j < frozenQuan.length; j++) { - var q_no = frozenQuan[j].cashRepNo; - if (Q_no == q_no) { - is_find = 1; - break; - } - } - if (!is_find) arr.push(item); - } - return arr; - }, - //// 开启物流的弹窗 - show_wu_arr: function (e) { - var wu_arr_txt = e.currentTarget.dataset.txt; - var w_sele_index = e.currentTarget.dataset.w_sele_index; - var is_express = null; - var ob = { open_express: 1, wu_arr_txt: wu_arr_txt, disabled: 1 }; + item.goods_price = parseFloat(item.goods_price - df_price).toFixed(2); + item.total_amount = parseFloat(item.total_amount - df_price).toFixed(2); - //--如果是多个门店的时候-- - if (w_sele_index != undefined) { - is_express = this.data.cartlist[w_sele_index].wind; - ob['is_express'] = is_express; - } - this.setData(ob); - }, - // 关闭物流的弹窗 - close_express: function () { - this.setData({ open_express: 0, disabled: 0 }); - }, - // 选择物流 - click_express_name: function (e) { - var express_name = e.currentTarget.dataset.name, shippingcode = e.currentTarget.dataset.shippingcode; - var index = e.currentTarget.dataset.idxe; - var ob = { is_express: index, is_shipping_code: shippingcode, disabled: 0 }; - ob[this.data.wu_arr_txt] = index; - this.setData(ob); - }, + for (let j = 0; j < df_goods.length; j++) { - //点击确定物流 - determine_expres: function (e) { - this.setData({ open_express: 0 }); - if (this.data.is_b_now == 1) - this.calculatePrice2(); - else - this.calculatePrice(); - }, + var df_item = JSON.parse(JSON.stringify(item)); - //点击打开优惠券使用说明 - clik_coupons: function (e) { - var ind = e.currentTarget.dataset.idx; - var is_open = this.data.selected_quan_list[ind].is_open; + var ddff_item = df_goods[j]; - if (is_open == 1) is_open = 0; - else is_open = 1; + df_item.is_whsle = 1; + df_item.whsle_id = ddff_item.whsle_id; + df_item.is_discount_amount = 0; + df_item.goods_price = ddff_item.df_price; + df_item.total_amount = ddff_item.df_price; + df_item.shipping_price = 0; //没有运费 + if (df_item.order_prom_list) df_item.order_prom_list = {}; + if (df_item.coupon_price) delete (df_item.coupon_price); + if (df_item.coupon_no) delete (df_item.coupon_no); - var txt = "selected_quan_list[" + ind + "].is_open" - var obj = {}; - obj[txt] = is_open; + //看一下是用余额比较多,还是用钱比较多 + if (item.order_amount > item.user_money) { + if (item.order_amount > ddff_item.df_price) { + item.order_amount = parseFloat(item.order_amount - ddff_item.df_price).toFixed(2); + df_item.order_amount = ddff_item.df_price.toFixed(2); + } else { + var more_p = parseFloat(ddff_item.df_price - item.order_amount).toFixed(2); + item.order_amount = 0; + item.user_money = parseFloat(item.user_money - more_p).toFixed(2); + df_item.user_money = more_p; + } + } else { - this.setData(obj); - this.setData({ disabled: 1 }) - }, + if (item.user_money > ddff_item.df_price) { + item.user_money = parseFloat(item.user_money - ddff_item.df_price).toFixed(2); + df_item.user_money = ddff_item.df_price.toFixed(2); + } else { + var more_p = parseFloat(ddff_item.df_price - item.user_money).toFixed(2); + item.user_money = 0; + item.order_amount = parseFloat(item.user_money - more_p).toFixed(2); + df_item.order_amount = more_p; - clik_coupons2: function (e) { - var ind = e.currentTarget.dataset.idx; - var is_open = this.data.get_by_quan_list[ind].is_open; + } + } - if (is_open == 1) is_open = 0; - else is_open = 1; + if (ddff_item.df_room_ids) + df_item.room_ids = ut.sub_last(ddff_item.df_room_ids); + df_item.order_goods = ddff_item.df_goods; + pdata.push(df_item); + } - var txt = "get_by_quan_list[" + ind + "].is_open" - var obj = {}; - obj[txt] = is_open; - this.setData(obj); - this.setData({ disabled: 1 }) - }, + } + //如果只有代发商品的时候 + if (item.order_goods.length > 0) { + //item.order_goods=df_goods; + //item.is_whsle=1; + pdata.push(item); + } + } - //设置默认物流 - select_default_logistics: function () { - var th = this; - var is_shipping_code = this.data.is_shipping_code - getApp().request.put("/api/weshop/users/update", { - data: { user_id: getApp().globalData.user_id, store_id: oo.stoid, def_exp_code: is_shipping_code }, - success: function (rse) { - if (rse.data.code == 0) { - getApp().globalData.userInfo.def_exp_code = is_shipping_code; - th.setData({ open_express: 0 }); - //----计算此时购物车的价格---- - if (th.data.is_b_now == 1) th.calculatePrice2(); - else th.calculatePrice(); - } - } - }) - }, + } - //更新下默认,在onshow里面 - update_code() { - var th = this, m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code; - //--定时器,判断wu_arr不未空-- - var uii = setInterval(function () { - if (th.data.wu_arr) { - clearInterval(uii); - for (var k = 0; k < th.data.wu_arr.length; k++) { - var item = th.data.wu_arr[k]; - if (def_exp_code == item.code) { - m_wind = k; - } - } - //--如果是立即购买-- - if (th.data.is_b_now == 1) { - th.setData({ index: m_wind, is_express: m_wind }); - } else { - var ui = setInterval(function () { - if (th.data.cartlist) { - var c_arr = th.data.cartlist; - for (var i in c_arr) { - c_arr[i].wind = m_wind; - } - th.setData({ cartlist: c_arr, is_express: m_wind }) - clearInterval(ui); - } - }, 500) - } + if (pdata.length == 0) return; + var str = JSON.stringify(pdata); + + wx.showLoading({ title: "加载中" }); + th.setData({ submit: 1, }) + wx.request({ + url: oo.url + '/api/weshop/order/createWxdOrder', + data: str, + method: 'POST', + header: { + 'content-type': 'application/json' + },// 设置请求的 header + success: function (res) { + wx.hideLoading(); + if (res.statusCode == 200) { + var data = res.data; + if (data.code == 0) { + th.setData({ submit: 1, }) + //如果是购物车结算,还要删除购物车 + if (th.data.is_b_now == 0) { + console.log(th.data.cartlist_y); + var list = th.data.cartlist_y; + for (var i = 0; i < list.length; i++) { + //删除购物车 + a.delete("/api/weshop/cart/del/" + oo.stoid + "/" + list[i].id, {}); + } } - }, 500); - }, - //-----获取购物车进来的劵------- - get_cart_quan: async function (order_prom_list_cart) { - var th = this; - var user_id = getApp().globalData.user_id; - //等待值的出现 - //getApp().waitfor2(this,"g_cart_q_time","order_prom_list_cart",async function () { - //var arr=th.data.order_prom_list_cart; - var arr = order_prom_list_cart; - if (!arr) arr = []; - //如果系统有限制使用优惠券 - if (th.data.is_close_quan) return false; - - //------------开始计算使用优惠券相关------------ - for (var ind in arr) { - var ep = arr[ind]; - var goodlist = ep.goods; - var pickup_id = ep.pickup_id; - //--更优惠券抵用有关,立即购买的,如果是购物车,如果有等级价还有考虑等级价的东西 - //就要把相应的值,写入cartlist数组中-- - var ckeck_quan_price = 0, - check_quan_price_list = '', - check_quan_ware_list = '', - check_quan_price_list_arr = [], - check_quan_ware_list_arr = []; - - for (var i in goodlist) { - var gd = goodlist[i]; - //--如果是秒杀就跳出,如果是赠品,如果是组合购限制使用优惠券-- - if (gd.whsle_id==1 || gd.prom_type == 1 || gd.is_gift || (gd.prom_type == 7 && gd.act.is_xz_yh) || gd.is_xz_yh == 1) { - continue; - } - - //--如果是团购,要判断有没有限制使用优惠券 - if (gd.prom_type == 2) { - var prom1 = null; - await getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + gd.goods_id + "/" + gd.prom_id, { - }).then(res => { - if (res.data.code == 0) prom1 = res.data.data; - }) - if (prom1 && !prom1.isQuan) { - continue; - } - } + var order_amount = 0; + pdata.forEach(function (em, ind) { + order_amount += parseFloat(em.order_amount); + }) + //要进行判断,如果是用微信支付,就要跳转到支付界面 + if (order_amount > 0) { + th.setData({ isclose: 0 }); + //void e.jumpToCart4({ + // order_sn: data.data, + //}, 1); + util_pay.pay(data.data, function () { + //app.my_warnning("支付成功",1,th); + //setTimeout(function () { + wx.redirectTo({ + url: "/pages/payment/pay_success/pay_success?type=2&order_sn=" + data.data + }) + //},1000) - //--如果是阶梯购,要判断有没有限制使用优惠券 - if (gd.prom_type == 10) { - var prom1 = null; - await getApp().request.promiseGet("/api/weshop/prom/ladderForm/getNew/" + os.stoid + "/" + user_id + "/" + gd.prom_id, { - }).then(res => { - if (res.data.code == 0) prom1 = res.data.data; - }) - if (prom1 && prom1.isuse && prom1.is_usecoupon) { - continue; - } - } + }, function () { - //如果有限制使用优惠券,就要返回 - if (gd.prom_type == 3) { - if(th.data.prom_goods_map && th.data.prom_goods_map[pickup_id] && th.data.prom_goods_map[pickup_id][gd.prom_id] ) { - if (th.data.prom_goods_map[pickup_id][gd.prom_id].is_xz_yh) continue; - th.data.prom_goods_map[pickup_id][gd.prom_id].coupon_sele = 1; - } - } - var item_price = gd.goods_price * gd.goods_num; - var item_price2 = item_price; + return false; + //支付失败 + setTimeout(function () { + var cps = getCurrentPages(); + if (cps.length > 1) { + wx.navigateBack({ delta: 1 }) + } else { + getApp().goto("/pages/index/index/index"); + } - //-- 如果有平摊下去,有实收价格的时候,就要用account来计算价格 -- - if (gd.account_fir != null && gd.account_fir != undefined) { - item_price2 = gd.account_fir * gd.goods_num; - } + }, 1000) + }, oo.stoid); - if (gd.ld_account) { - item_price2 = gd.ld_account * gd.goods_num; - } - ckeck_quan_price += item_price; - //如果商品有重复的过滤,一般是组合购和阶梯购的情况下 - var idx = check_quan_ware_list_arr.findIndex(function (ele) { - return ele == encodeURIComponent(gd['erpwareid']); - }) + } else { + var dd = { + parent_sn: data.data, + store_id: oo.stoid, + type: 2, + }; + a.post("/api/weshop/order/pay/createOrder", { + data: dd, + success: function (t) { + //console.log(t); + if (t.data.code == 0) { + //app.my_warnning("支付成功",1,th); + //setTimeout(function () { + th.setData({ isclose: 0 }); + wx.redirectTo({ + url: "/pages/payment/pay_success/pay_success?type=2&order_sn=" + data.data, + }) + //}, 1000) + } + }, + fail: function () { - if (idx > -1) { - check_quan_price_list_arr[idx] += item_price2; - } else { - check_quan_ware_list_arr.push(encodeURIComponent(gd['erpwareid'])); - check_quan_price_list_arr.push(item_price2); - } - //--组装价格list-- - /*-- - if (check_quan_price_list) { - check_quan_price_list += "," + item_price; - } else { - check_quan_price_list = item_price; - } - //--组装商品的线下erpwareid-- - if (check_quan_ware_list) { - check_quan_ware_list += "," + encodeURIComponent(gd['erpwareid']); - } else { - check_quan_ware_list = encodeURIComponent(gd['erpwareid']); - }---*/ - } - //优惠券优惠的金额要控制到优惠券的选择条件 - var cut_price = 0; - for (var i in th.data.prom_goods_map[pickup_id]) { - var obj = th.data.prom_goods_map[pickup_id][i]; - if (obj.coupon_sele) { - cut_price += obj.price - obj.prom_price; } + }); } - var prom_pt_json = ep.prom_pt_json; - if (prom_pt_json) { - for (let oj in prom_pt_json) { - let item_j = prom_pt_json[oj]; - //要对一下阶梯优惠促销的功能 - if (item_j.ladder_prom_id) { - //看一下要不要限制使用优惠券 - if (th.data.ladder_map[item_j.ladder_prom_id] && th.data.ladder_map[item_j.ladder_prom_id].is_usecoupon) { - continue; - } - cut_price += parseFloat(item_j.dis); - } - //要对一下组合购促销的功能 - if (item_j.zhprom_id) { - //看一下要不要限制使用优惠券 - if (th.data.zhhe_act_map[item_j.zhprom_id] && th.data.zhhe_act_map[item_j.zhprom_id].is_xz_yh) { - continue; - } - cut_price += parseFloat(item_j.dis); - } + } + else { + //--内容换行-- + var msg = data.msg; + //赠品活动已经取消,无法赠送,是否继续买单? + if (msg.indexOf("是否继续买单") > 0) { + wx.showModal({ + title: "提示", + content: data.msg, + cancelText: '取消', + confirmText: '确定', + showCancel: true, + success(res) { + if (res.cancel) { + return; + } else if (res.confirm) { + th.data.is_continue = 1; + th.data.is_summit_ing = 0; //是否提交中 + th.submit_func(); + } } + }) + return; + } else { + if (msg.length > 13) { + msg = msg.slice(0, 13) + "\r\n" + msg.slice(13); + } + getApp().confirmBox(msg); + th.data.is_summit_ing = 0; //是否提交中 + th.setData({ + submit: 0, + }) } - if (check_quan_price_list_arr.length) check_quan_price_list = check_quan_price_list_arr.join(','); - if (check_quan_ware_list_arr.length) check_quan_ware_list = check_quan_ware_list_arr.join(',') - - arr[ind].ckeck_quan_price = ckeck_quan_price - (cut_price ? cut_price : 0); - arr[ind].check_quan_ware_list = check_quan_ware_list; - arr[ind].check_quan_price_list = check_quan_price_list; - //-- 是否关闭使用优惠券,循环有找到商品 -- - if (th.data.is_close_quan != 1 && check_quan_ware_list) { - //--调用接口,获取优惠券的列表,3秒钟内控制接口请求-- - var url = "/api/weshop/couponList/getUseCouponList"; - await app.request.promiseGet(url, { - data: { - storeId: oo.stoid, - userId: app.globalData.user_id, - BuySum: arr[ind].ckeck_quan_price, - WareIds: check_quan_ware_list, - pageSize: 100 - } - }).then(res => { - if (res.data.code == 0) { - var quan_list = res.data.data.pageData; - arr[ind].quan_list = th.check_is_frozenQuan(quan_list, th.data.frozenQuan); - } - }) - } - } - //如果是搭配购的立即购买的时候 - if (th.data.is_b_now) { - if (arr && arr.length > 0) { - var quanlist = arr[0].quan_list; - th.setData({ selected_quan_list: quanlist, cartlist: arr }) - } + } } else { - th.setData({ cartlist: arr }) - th.set_can_num(); + th.data.is_summit_ing = 0; //是否提交中 + console.log("index.js wx.request CheckCallUser statusCode" + res.statusCode); + th.setData({ + submit: 0, + }) + } + }, + fail: function () { + th.data.is_summit_ing = 0; + wx.hideLoading(); + console.log("index.js wx.request CheckCallUser fail"); + th.setData({ + submit: 0, + }) + } + }) + + }, + //---确认线下门店的数量足不足--- + async check_store_num(goods_id, pick, goods_num, func) { + var lock = 0, pick_no, plist, erpwareid; + + var lock_rq = { store_id: os.stoid, wareId: goods_id, storageId: pick, pageSize: 1000 }; + if (this.data.sales_rules == 3) { + lock_rq.appoint_pick_keyid = this.data.appoint_pick_keyid; + delete lock_rq.storageId + } + //先读取门店的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 + "/" + pick, { + data: { storeId: os.stoid, goodsId: t.goods_id, pickupId: pick } + }).then(res => { + if (res.data.code == 0) { + pick_no = res.data.data.pickup_no; } + }) + } - //}) - }, + //先获取商品的线下库存 + await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + goods_id, { + data: { storeId: os.stoid, goodsId: t.goods_id, pickupId: pick } + }).then(res => { + if (res.data.code == 0) { + erpwareid = res.data.data.erpwareid; + } + }) - //------ 获取立即购买的购物车的劵 -------- - get_buy_now_quan: function () { - var quanlist = null, th = this, frozenQuan = null; - var good = this.data.bn_goods; - - //一件代发商品不使用优惠券 - if(good.whsle_id) return false; - if (good.prom_price) { - th.data.ckeck_quan_price = good.prom_price; //如果有优惠价,就用优惠价 - } else if (good.is_offline) { - th.data.ckeck_quan_price = good.offline_price; //如果有线下取价,就用线下价 - } - //--如果商家后台没有限制使用优惠券,同时商品的优惠活动没有限制使用优惠券-- - if (th.data.is_close_quan != 1 && th.data.bn_goods.is_xz_yh != 1) { - var url0 = "/api/weshop/users/frozenQuan/listFrozenQuan/" + app.globalData.user_id; - var url = "/api/weshop/couponList/getUseCouponList"; - app.request.promiseGet(url0, { 1: 1 }).then(res => { - if (res.data.code == 0) { - frozenQuan = res.data.data; - th.data.frozenQuan = frozenQuan; - } - app.request.time_limit_get(6, url, { - data: { - storeId: oo.stoid, - userId: app.globalData.user_id, - BuySum: th.data.ckeck_quan_price, - WareIds: encodeURIComponent(th.data.check_quan_ware_list), - pageSize: 100 - }, - success: function (res) { - if (res.data.code == 0) { - quanlist = res.data.data.pageData; - if (quanlist) { - quanlist = th.check_is_frozenQuan(quanlist, frozenQuan); - th.setData({ selected_quan_list: quanlist }) - } - } - } - }) - }) - } - }, - //检查区域是不是包邮 - check_area: function (arr) { - var user_addr = this.data.user_addr; - if (!user_addr) return 0; - for (var i in arr) { - var item = arr[i]; - if (user_addr.twon == item || user_addr.district == item - || user_addr.city == item || user_addr.province == item) { - return 0; - } - } - return 1; - }, + var sto_rq = { storageNos: pick_no, wareIds: encodeURIComponent(erpwareid), storeId: os.stoid, pageSize: 2000 }; + if (this.data.sales_rules == 3) { + sto_rq.storageIds = this.data.appoint_pick_keyid; + delete sto_rq.storageNos + } - //检查立即购买的商品是不是不包邮 - check_good: function (arr, goods_id) { - if (!goods_id) goods_id = this.data.bn_goods.goods_id; - for (var i in arr) { - var item = arr[i]; - if (goods_id == item) return 0; - } - return 1; - }, - check_by_area: function (region_list) { - var arr = region_list.split(","); - var check = this.check_area(arr); - return !check; - }, - check_by_goods: function (goods_list, goods_id) { - var arr = goods_list.split(","); - var check = this.check_good(arr, goods_id); - return !check; - }, - //立即购买获取优惠活动的内容 - buy_now_prom_goods: function (prom_id, arr, func) { - var th = this; - var price = arr.shop_price * arr.goods_num; - var prom = null; - var gg = to.get_b_now(); - getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + prom_id, {}).then(res => { - if (res.data.code == 0) { - prom = res.data.data; - return getApp().request.promiseGet("/api/weshop/goods/getDiscount", { - data: { - price: parseFloat(price).toFixed(2), - prom_id: prom_id, - goods_num: arr.goods_num, - user_id: getApp().globalData.user_id, - is_bz: prom.is_bz - } - }) - } else { - func(arr); - } - }).then(res => { - if (res.data.code == 0) { - var get_data = res.data.data; - arr.is_bz = prom.is_bz; //是不是倍增 - arr.is_xz_yh = arr.is_xz_yh ? arr.is_xz_yh : prom.is_xz_yh; //是不是优惠 - arr.bs = get_data.bs; //是不是倍数 - arr.is_past = get_data.is_past; //是不是包邮 - arr.prom_price = get_data.price >= 0 ? get_data.price : price; - arr.s_intValue = get_data.intValue; - arr.s_coupon_id = get_data.coupon_id; - arr.s_coupon_num = get_data.coupon_num; - arr.zp_mode = get_data.zp_mode; - arr.zp_num = get_data.zp_num ? get_data.zp_num : 1; //确保默认一个 - - //-- 看是不是有赠品 -- - if (get_data.gift_id && parseInt(get_data.zp_mode) != 1 - && get_data.zp_num * arr.bs <= get_data.limit_num - && get_data.zp_num * arr.bs <= get_data.gift_storecount - ) { - arr.gift_id = get_data.gift_id; - arr.gift_goods_id = get_data.goods_id; - arr.gift_goods_name = get_data.goods_name; - arr.gift_goods_sn = get_data.goodsinfo.goods_sn; - arr.gift_goods_color = get_data.goodsinfo.goods_color; - arr.gift_goods_spec = get_data.goodsinfo.goods_spec; - arr.gift_original_img = get_data.goodsinfo.original_img; - arr.gift_weight = get_data.goodsinfo.weight; - arr.gift_exp_sum_type = get_data.goodsinfo.exp_sum_type; - arr.gift_uniform_exp_sum = get_data.goodsinfo.uniform_exp_sum; - arr.gift_limit_num = get_data.limit_num; - arr.gift_storecount = get_data.gift_storecount; - arr.whsle_id=get_data.goodsinfo.whsle_id; - } - arr.s_libao = get_data.libao; - arr.s_lb_num = get_data.lb_num; - arr.lbtitle = get_data.lbtitle; - arr.zxlbtitle = get_data.zxlbtitle; - arr.zx_libao = get_data.zxlibao; - arr.zx_lb_num = get_data.zxlb_num; + //读取线下的门店库存 + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { + data: sto_rq + }).then(res => { + if (res.data.code == 0) { + plist = res.data.data.pageData[0]; + } + }) + + var isok = 1; + if (goods_num > plist.CanOutQty - lock) { + isok = 0; + } + func(isok); + }, - arr.prom_id = prom_id; + useCoupon: function () { + if (this.data.order.couponNum <= 0) { + getApp().my_warnning("无可用优惠券", 0, this); + return; + } - var send_gf = {}; - var pickid = gg.pick_id; - if (parseInt(get_data.zp_mode) == 1) { - if (!send_gf[pickid]) send_gf[pickid] = []; - - var a_stock_num = 0; - var a_limit_num = 0; - for (let iy in get_data.giftsinfo) { - let item = get_data.giftsinfo[iy]; - a_stock_num += parseInt(item.gift_storecount); - a_limit_num += parseInt(item.limit_num); - } + var a = { + lid: this.data.coupon ? this.data.coupon.id : "0" + }; + wx.navigateTo({ + url: "/pages/user/checkcoupon/checkcoupon?" + s.Obj2Str(a) + }); + }, + enterAddressPage: function () { + getApp().globalData.is_cart_old = 1; + this.data.isget_by_quan = {}; + this.data.enterAddressPage = !0, wx.navigateTo({ + url: "/pages/user/address_list/address_list" + }); + }, + + //--------购物车购买时,选择自提和物流----------- + setexptype_w: function (t) { + + var def_exp_code = getApp().globalData.userInfo.def_exp_code, th = this; + var ty = t.currentTarget.dataset.t, txt = t.currentTarget.dataset.txt, + wl_txt = t.currentTarget.dataset.wl_txt, + ont = t.currentTarget.dataset.ont; + + th.setData({ [txt]: ty }); + var iszt = 1; + + if (ty == 0) { + th.setData({ is_all_zt: 0 }); + } else { + for (var i = 0; i < th.data.cartlist.length; i++) { + var item = th.data.cartlist[i]; + if (item.exp_type == 0 || item.exp_type == 2) { + iszt = 0; + break; + } + } - var t_zp_num = parseInt(get_data.zp_num) * parseInt(get_data.bs); - if (a_limit_num >= t_zp_num && a_stock_num >= t_zp_num) { - send_gf[pickid].push({ - pickup_id: pickid, giftsinfo: get_data.giftsinfo, zp_num: get_data.zp_num * get_data.bs, - gf_pr_name: prom.name, prom_id: prom.prom_id - }); - } - th.setData({ send_gf: send_gf }); - } - } - func(arr); - }) - }, - //--检查订单优惠-- - check_is_order_prom: function (condition, func, pick) { - var th = this; - if (this.data.is_b_now == 1) pick = this.data.bn_pick; - //---获取订单优惠--- - getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { - data: { store_id: os.stoid, orderAmount: condition, user_id: getApp().globalData.user_id } - }).then(res => { - if (res.data.code == 0) { - var data = res.data.data; - th.data.order_prom[pick] = data; - } - func(); - }) - }, + th.setData({ is_all_zt: iszt }); - //--- 加入优惠活动的映射中,同时要有一个good列表 --- - add_prom_goods_map: async function (item) { - var th = this; - var pickid = item.pick_id; - var map = th.data.prom_goods_map; - var obj = map[pickid]; - - if (map[pickid]) { - if (map[pickid][item.prom_id]) { - - var ob = map[pickid][item.prom_id]; - //-- 避免同一件商品重复添加 -- - if(ob.goods && ob.goods.length){ - var fid=ob.goods.findIndex(function (e){ - e.goods_id==item.goods_id - }) - if(fid>-1) return false; - } + var ind = t.currentTarget.dataset.ind; + var c_item = th.data.cartlist[ind]; + var pickid = c_item.pickup_id; - ob.price += item.goods_price * item.goods_num; - ob.goods_num += item.goods_num; - ob.goods.push({ goods_id: item.goods_id, goods_price: item.goods_price, goods_num: item.goods_num }); + if (th.data.using_quan[pickid] && th.data.using_quan[pickid].isby == 1) { + th.data.using_quan[pickid] = {}; + th.setData({ using_quan: th.data.using_quan }); + } - } else { - var prom = null; - await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + item.prom_id, {}).then(res => { - if (res.data.code == 0) { - prom = res.data.data; - } - }) - var ob = {}; - ob.prom_id = item.prom_id; - ob.name = prom.name; - ob.price = item.goods_price * item.goods_num; - ob.goods_num = item.goods_num; - ob.is_bz = prom.is_bz; - ob.is_xz_yh = prom.is_xz_yh; - ob.goods = new Array(); - ob.goods.push({ goods_id: item.goods_id, goods_price: item.goods_price, goods_num: item.goods_num }); - map[pickid][item.prom_id] = ob; - } - } else { - var ob = {}; - var prom = null; - await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + item.prom_id, {}).then(res => { - if (res.data.code == 0) { - prom = res.data.data; - } - }) - ob.prom_id = item.prom_id; - ob.name = prom.name; - ob.price = item.goods_price * item.goods_num; - ob.goods_num = item.goods_num; - ob.is_bz = prom.is_bz; - ob.is_xz_yh = prom.is_xz_yh; - ob.goods = new Array(); - ob.goods.push({ goods_id: item.goods_id, goods_price: item.goods_price, goods_num: item.goods_num }); - var obj = {}; - obj[item.prom_id] = ob; - map[pickid] = obj; + } + //判断有没有默认的物流地址值 + if (def_exp_code != "" && def_exp_code != null && def_exp_code != undefined) { + var wu_arr = this.data.wu_arr; + if (wu_arr != null && wu_arr != "") { + for (var i = 0; i < wu_arr.length; i++) { + if (wu_arr[i].shipping_code == def_exp_code) { + var set_txt = "cartlist" + th.setData({ wl_txt: i }); + } } - }, - //---检查有没有优惠活动--- - check_is_youhui: function (r_data, pick_id) { - let send_lb = this.data.send_lb; - let lodash = null; - r_data.forEach(item => { - if (send_lb[pick_id]) { - for (let i = 0; i < send_lb[pick_id].length; i++) { - let sends = send_lb[pick_id][i]; - if (item.lb_id) { - if (sends.id === item.lb_id) { - sends['num']++; - } else { - let send_arr1 = send_lb[pick_id].filter(ii => ii.id === item.lb_id); - if (send_arr1.length == 0) { - if (item.lb_id) { - let ob = {}; - ob.num = 1; - ob.title = item.lbtitle; - ob.id = item.lb_id; - lodash.push(ob); - // break; - } - } - - } - } - if (item.zxlb_id) { - if (sends.id === item.zxlb_id) { - sends['num']++; - } else { - let send_arr = send_lb[pick_id].filter(ii => ii.id === item.zxlb_id); - if (send_arr.length == 0) { - if (item.zxlb_id) { - let ob = {}; - ob.num = 1; - ob.flag = 1; - ob.title = item.zxlbtitle; - ob.id = item.zxlb_id; - lodash.push(ob); - // break; - } - } - } - } - } - - } else { - let arr = new Array(); - if (item.lb_id) { - let ob = {}; - ob.num = 1; - ob.title = item.lbtitle; - ob.id = item.lb_id; - arr.push(ob); - } - if (item.zxlb_id) { - let ob = {}; - ob.num = 1; - ob.flag = 1; - ob.title = item.zxlbtitle; - ob.id = item.zxlb_id; - arr.push(ob); - } - send_lb[pick_id] = arr; - lodash = JSON.parse(JSON.stringify(send_lb[pick_id])); - } - }) - send_lb[pick_id] = lodash; - th.setData({ - send_lb, - }) + } + } + //----计算此时购物车的价格---- + th.calculatePrice(); + }, + + //--------立即购买时,选择自提和物流---------- + setexptype: function (t) { + var th = this; + var ty = t.currentTarget.dataset.t, def_exp_code = getApp().globalData.userInfo.def_exp_code; + th.setData({ bn_exp_type: ty }); + if (ty == 0) { + th.setData({ is_all_zt: 0 }); + } + //当物流为空的时候。 + if (ty == 0 && th.data.wu_arr == null) { + th.data.isget_by_quan = {}; + return th.get_wuliu(th.calculatePrice2()); + } - }, + //--自提就要把包邮券清理掉-- + if (ty == 1) { + th.data.isget_by_quan = {}; + if (th.data.using_quan[th.data.bn_pick] && th.data.using_quan[th.data.bn_pick].isby == 1) { + th.setData({ using_quan: {} }); + } + } - //从优惠的映射中拿出商品从表的item - item_map_get_goods: function (goods_id, map) { - for (var i in map.goods) { - if (map.goods[i].goods_id == goods_id) return map.goods[i]; + //判断有没有默认的物流地址值 + if (def_exp_code != "" && def_exp_code != null && def_exp_code != undefined) { + var wu_arr = this.data.wu_arr; + if (wu_arr != null && wu_arr != "") { + for (var i = 0; i < wu_arr.length; i++) { + if (wu_arr[i].shipping_code == def_exp_code) { + th.setData({ index: i }); + } } - }, - //从优惠的映射中拿出商品从表的item - arr_get_goods: function (goods_id, arr) { - for (var i in arr) { - if (arr[i].goods_id == goods_id) return arr[i]; + } + } + th.calculatePrice2() + + }, + + //--------立即购买时,使用余额-------- + set_bn_useyuer: function () { + var th = this; + th.setData({ bn_use_money: !th.data.bn_use_money }); + th.calculatePrice2(); + }, + + //立即购买的时候,使用余额 + set_bn_commission: function () { + var th = this; + th.setData({ bn_use_commission: !th.data.bn_use_commission }); + th.calculatePrice2(); + }, + //加入购物车使用余额 + set_cart_commission: function () { + var th = this; + th.setData({ cart_use_commission: !th.data.cart_use_commission }); + th.calculatePrice(); + }, + + set_js_useyuer: function () { + var th = this; + th.setData({ js_use_money: !th.data.js_use_money }); + th.calculatePrice(); + }, + + + //----------立即购买,选择物流------------- + bindPickerChange: function (e) { + var ind = e.detail.value + this.setData({ index: ind }); + this.calculatePrice2(); + }, + //----------购物车结算,选择物流------------- + bindPickerChange_w: function (e) { + var ind = e.detail.value, txt = e.currentTarget.dataset.txt; + this.setData({ [txt]: ind }); + this.calculatePrice(); + }, + + /*----券的所有操作----*/ + open_coupon_list: function (e) { + var th = this; + var pickid = e.currentTarget.dataset.pickid; + var bn = e.currentTarget.dataset.bn; + var cindx = e.currentTarget.dataset.cind; + var get_by_quan_list_cart = th.data.get_by_quan_list_cart[pickid]; + + + if (bn == 1) { + th.setData({ open_quan: 1, selected_quan_pick: pickid, disabled: 1 }); + } else { + //---多单打开券的时候,就要判断券在其他门店是否有使用--- + var quanlist = th.data.cartlist[cindx].quan_list; + var exp_type = th.data.cartlist[cindx].exp_type; + + + //对于在其他门店已经选择了的券 要判断是否显示到界面 + var t_user = th.data.using_quan[pickid]; + + for (var i in quanlist) { + quanlist[i].is_using = th.check_in_sele(quanlist[i].CashRepNo, pickid); + if (t_user && quanlist[i].CashRepNo == t_user.coupon_no) + quanlist[i].show_red = 1; + else + quanlist[i].show_red = 0; + } + + if (get_by_quan_list_cart) { + for (var i in get_by_quan_list_cart) { + get_by_quan_list_cart[i].is_using = th.check_in_sele(get_by_quan_list_cart[i].no, pickid); + if (t_user && get_by_quan_list_cart[i].no == t_user.coupon_no) + get_by_quan_list_cart[i].show_red = 1; + else + get_by_quan_list_cart[i].show_red = 0; } - }, - - //检查是不是有其他门店的订单在选择了券 - check_other_use: function (iter, pkid) { - var using = this.data.using_quan; - var is_use = 0; - if (using) { - for (var i in using) { - if (i == pkid) continue; - if (iter.CashRepNo == using[i].coupon_no) { - is_use = 1; - break; - } - } + th.setData({ by_quan_list_cart: get_by_quan_list_cart }); + } else { + th.setData({ by_quan_list_cart: null }); + } + + console.log("2222222券的列表", quanlist); + th.setData({ + sele_cart_ind: cindx, + sele_exp_type: exp_type, + open_quan: 1, + selected_quan_pick: pickid, + selected_quan_list: quanlist, + disabled: 1 + }); + } + }, + close_coupon: function (e) { + var th = this; + th.setData({ open_quan: 0, disabled: 0 }); + }, + + //---判断券时候在已经选择的列表中--- + check_in_sele: function (no, pick_id) { + var th = this; + if (th.data.using_quan.length <= 0) return false; + for (var i in th.data.using_quan) { + //--如果键值等于本身就要跳出-- + if (parseInt(i) == parseInt(pick_id)) continue; + var item = th.data.using_quan[i]; + if (item.coupon_no == no) { + return true; + } + } + return false; + }, + + /*--点击选择券--*/ + sele_quan_item: function (e) { + + var ind = e.currentTarget.dataset.ind; + var quan_item = this.data.selected_quan_list[ind]; + var pickid = this.data.selected_quan_pick; //现在选择的是哪一个门店 + //--如果券是单品使用的时候-- + if (quan_item && quan_item.UseObjectType && quan_item.UseObjectType == "20") { + //---只有多件购买的时候才要计算,//购物车购买和搭配勾的时候--- + var gg = getApp().get_b_now(); + if (this.data.is_b_now == 0 || gg.prom_type == 5) { + var arr = this.data.order_prom_list_cart; + var t_pk_item = null; + for (var ii in arr) { + var ep = arr[ii]; + if (pickid == ep.pickup_id) { + t_pk_item = ep; + break; + } } - return is_use; - }, - //检查是不是有其他门店的订单在选择了包邮券 - check_other_use_by: function (iter, pkid) { - var using = this.data.using_quan; - var is_use = 0; - if (using) { - for (var i in using) { - if (i == pkid) continue; - if (iter.no == using[i].coupon_no) { - is_use = 1; - break; - } + //--寻找券指定的商品-- + var gd = null; + if (t_pk_item) { + var goods = t_pk_item.goods; + for (var gid in goods) { + if (quan_item.UseObjectID == goods[gid].erpwareid) { + gd = goods[gid]; } + } + } + if (!gd) { + getApp().my_warnning("未找到指定商品使用", 0, this, 600); + return false; + } + //计算价格,如果有平摊的实收要计算实收的金额 + var item_price = gd.goods_price * gd.goods_num; + //-- 如果有平摊下去,有实收价格的时候,就要用account_fir来计算价格 -- + if (gd.account_fir != null && gd.account_fir != undefined) { + item_price = gd.account_fir * gd.goods_num; } - return is_use; - }, - //跳转到购买卡 - buycard: function () { - getApp().goto("/pages/user/plus/plus"); - getApp().globalData.plus_buy_back = 1; - }, + if (item_price < parseFloat(quan_item.BuySum)) { + getApp().my_warnning("该单品金额没有大于等于" + quan_item.BuySum + "元时不能使用优惠券", 0, this, 600); + return false; + } + } + } - //跳转关闭弹出框的显示 - close_offline: function () { - this.setData({ is_offline_show: 0 }); - }, + var no_use = e.currentTarget.dataset.no, quanlist = this.data.selected_quan_list; + //---所有的券的显示红色选择都清理一遍--- + for (var i in quanlist) { + quanlist[i].show_red = 0; + } + this.setData({ selected_quan_list: quanlist }); + var by_quanlist = this.data.get_by_quan_list; + if (by_quanlist) { + //---所有的券的显示红色选择都清理一遍--- + for (var inb in by_quanlist) { + by_quanlist[inb].show_red = 0; + } + this.setData({ get_by_quan_list: by_quanlist }); + } - //立即购买显示弹出框 - bn_pop_offline: function () { - var off_price = this.data.bn_goods.shop_price - this.data.bn_goods.offline_price; - //是不是线下 - var is_get_offline = this.data.bn_goods.is_offline; - this.setData({ is_offline_show: 1, show_off_price: off_price.toFixed(2), is_get_offline: is_get_offline }); - }, + var by_cart_list = this.data.by_quan_list_cart; + if (by_cart_list) { + //---所有的券的显示红色选择都清理一遍--- + for (var inc in by_cart_list) { + by_cart_list[inc].show_red = 0; + } + this.setData({ by_quan_list_cart: by_cart_list }); + } - // 促销 -> 送礼包 -> 查看详情 - viewLbDetails(e) { - let id = e.currentTarget.dataset.id; // 获取礼包id - let flag = e.currentTarget.dataset.flag; - let url = ''; - if (flag == 1) { // flag =1 控制跳转到专享礼包 - url = `/pages/giftpack/giftpacklist/giftpacklist?lbId=${id}&flag=1`; - } else { - url = `/packageA/pages/myGiftDetails/myGiftDetails?btn=0&index=0&id=${id}`; // btn=0 控制跳转到的页面不显示按钮 - }; - // console.log('myurl', url); - getApp().goto(url); - }, + var using_quan = this.data.using_quan; + var th = this; + //---如果是不使用优惠券--- + if (no_use == 1) { + console.log("有进来吗券", no_use); + if (using_quan[th.data.selected_quan_pick]) { + using_quan[th.data.selected_quan_pick].is_nouse_red = 1; + } + else { + using_quan[th.data.selected_quan_pick] = { is_nouse_red: 1 }; + } + this.setData({ using_quan: using_quan, is_coupon: th.is_coupon }); + return; + } - //确定使用线下取价 - sure_offline: function () { - var bn_goods = this.data.bn_goods; - if (bn_goods && bn_goods.prom_type == 0) { - bn_goods.is_offline = 1; - this.setData({ is_offline_show: 0, bn_goods: bn_goods }); - this.calculatePrice2(); - } - //就是购物车结算时的 - else { - var index = this.data.pop_offline_index; - var txt = "cartlist[" + index + "].is_offline"; - this.setData({ [txt]: 1, is_offline_show: 0, }); - this.data.old_cartlist[index].is_offline = 1; - this.calculatePrice(); - } - }, - //取消使用线下取价 - cancle_offline: function () { - //判断是不是立即购买 - var bn_goods = this.data.bn_goods; - if (bn_goods && bn_goods.prom_type == 0) { - bn_goods.is_offline = 0; - this.setData({ is_offline_show: 0, bn_goods: bn_goods }); - this.calculatePrice2(); - } - //就是购物车结算时的 - else { - var index = this.data.pop_offline_index; - var txt = "cartlist[" + index + "].is_offline"; - this.setData({ [txt]: 0, is_offline_show: 0, }) - this.data.old_cartlist[index].is_offline = 0; - this.calculatePrice(); - } - }, + var txt = "selected_quan_list[" + ind + "].show_red"; + var obj = {}; + obj[txt] = 1; + if (quan_item.show_red) { + obj[txt] = 0; + } + this.setData(obj); + console.log(this.data.selected_quan_list, "选中的券的下标", quan_item, "数据都在这里", txt); + if (using_quan[th.data.selected_quan_pick]) { + using_quan[th.data.selected_quan_pick].is_nouse_red = 0; + } + else { + using_quan[th.data.selected_quan_pick] = { is_nouse_red: 0 }; + } + this.setData({ using_quan: using_quan }); + + }, + + /*----- 点击选择包邮券 -----*/ + sele_quan_item_by: function (e) { + var no_use = e.currentTarget.dataset.no; + //立即购买的包邮券 + var by_quanlist = this.data.get_by_quan_list; + if (by_quanlist) { + //---所有的券的显示红色选择都清理一遍--- + for (var ind in by_quanlist) { + by_quanlist[ind].show_red = 0; + } + this.setData({ get_by_quan_list: by_quanlist }); + } - //-- 弹出购物车选择是不是要店铺优惠 -- - cart_pop_offline: function (e) { - var index = e.currentTarget.dataset.index; - var item = this.data.cartlist[index]; - var off_price = item.offline_price; - //是不是线下 - var is_get_offline = item.is_offline; - this.setData({ - pop_offline_index: index, - is_offline_show: 1, - show_off_price: off_price.toFixed(2), - is_get_offline: is_get_offline - }); - }, + //--购物车过来的包邮券-- + var by_cart_list = this.data.by_quan_list_cart; + if (by_cart_list) { + //---所有的券的显示红色选择都清理一遍--- + for (var ind in by_cart_list) { + by_cart_list[ind].show_red = 0; + } + this.setData({ by_quan_list_cart: by_cart_list }); + } + //普通券 + var quanlist = this.data.selected_quan_list; + if (quanlist) { + //---所有的券的显示红色选择都清理一遍--- + for (var ind in quanlist) { + quanlist[ind].show_red = 0; + } + this.setData({ selected_quan_list: quanlist }); + } - go_url: function (e) { - var url = e.currentTarget.dataset.url; - getApp().goto(url); - }, + var th = this; + var using_quan = this.data.using_quan; + //---如果是不使用优惠券--- + if (no_use == 1) { + if (using_quan[th.data.selected_quan_pick]) { + using_quan[th.data.selected_quan_pick].is_nouse_red = 1; + } + else { + using_quan[th.data.selected_quan_pick] = { is_nouse_red: 1 }; + } + this.setData({ using_quan: using_quan, is_coupon: th.is_coupon }); + return; + } - //进行对商品的平摊g_item是单个商品,you_item是这个商品分多少优惠券的钱,goods是商品列表 - split_set_goods_quanprice: async function (you_item, t_item) { - var coupon_price = you_item.WareCashSum; - var goods = t_item.goods; - var arr = []; - //判断是不是有goods_id重复 - for (var i = 0; i < goods.length; i++) { - if (goods[i].erpwareid == you_item.WareId) { - var gg_ite = { - goods_id: goods[i].goods_id, - goods_num: goods[i].goods_num, - goods_price: goods[i].goods_price, - }; - if (goods[i].account) gg_ite.goods_price = goods[i].account; - gg_ite.idx = i; arr.push(gg_ite); - } - } + var pickid = th.data.selected_quan_pick; //现在选择的是哪一个门店 + var ind = e.currentTarget.dataset.ind; + //--如果是立即购买的部分-- + var txt = ""; + var txt1 = ""; + var quan_item = null; + if (th.data.is_b_now) { + quan_item = this.data.get_by_quan_list[ind]; + txt = "get_by_quan_list[" + ind + "].show_red"; + var obj = {}; + obj[txt] = 1; + this.setData(obj); + } else { + txt = "by_quan_list_cart[" + ind + "].show_red"; + quan_item = th.data.by_quan_list_cart[ind]; + var obj = {}; + obj[txt] = 1; + this.setData(obj); + th.data.get_by_quan_list_cart[pickid] = JSON.parse(JSON.stringify(th.data.by_quan_list_cart)); //要把选中的弄回数组 + } - if (arr.length <= 0) return false; - if (arr.length == 1) { - var idx = arr[0].idx; - t_item.goods[idx].quan_num = Math.floor(coupon_price * 100) / 100; - t_item.goods[idx].quan_no = t_item.quan_no; - return false; + if (using_quan[th.data.selected_quan_pick]) { + using_quan[th.data.selected_quan_pick].is_nouse_red = 0; + } + else { + using_quan[th.data.selected_quan_pick] = { is_nouse_red: 0 }; + } + this.setData({ using_quan: using_quan }); + }, + + //--确认使用券--- + confirm_quan: function () { + var using_quan = this.data.using_quan; //正在使用中的券列表 + var pickid = this.data.selected_quan_pick; //选中的门店ID + var th = this; + var selected_quan_list = this.data.selected_quan_list; //选择了那个门店的券列表 + var get_by_quan_list = this.data.get_by_quan_list; //立即购买的包邮券列表 + var by_quan_list_cart = this.data.by_quan_list_cart; //购物车购买的包邮券列表 + //选择了的券 + var sele_quan = null; + + //循环普通的券 + for (var i in selected_quan_list) { + var item = selected_quan_list[i]; + if (item.show_red) { + th.insert_into_using_quan(item, using_quan, pickid); + return; + } + } + //循环包邮的券,立即购买的 + for (var i in get_by_quan_list) { + var item = get_by_quan_list[i]; + if (item.show_red) { + if (th.data.is_no_by[pickid] == 1) { + getApp().my_warnning("已全场不能包邮,不能选择包邮券", 0, th); + return false; + } + if (th.data.is_by[pickid] == 1) { + getApp().my_warnning("已全场包邮,不能选择包邮券", 0, th); + return false; } - var pt_data = { - 'dis': parseFloat(coupon_price), - 'goods': arr, + th.insert_into_using_quan(item, using_quan, pickid, 1); + return; + } + } + + //循环包邮的券 + for (var i in by_quan_list_cart) { + var item = by_quan_list_cart[i]; + if (item.show_red) { + if (th.data.is_no_by[pickid] == 1) { + getApp().my_warnning("已全场不能包邮,不能选择包邮券", 0, th); + return false; + } + if (th.data.is_by[pickid] == 1) { + getApp().my_warnning("已全场包邮,不能选择包邮券", 0, th); + return false; } + th.insert_into_using_quan(item, using_quan, pickid, 1); + return; + } + } - var pt_res = null; - await getApp().request.promisePost("/api/weshop/order/getGoodsSplit", { - is_json: 1, - data: pt_data - }).then(res => { - if (res.data.code == 0) { - pt_res = res.data.data; - } + //选择了的券,看是不是点击了不使用券,点击了不使用优惠券 + if (using_quan[pickid]) { + if (using_quan[pickid].is_nouse_red == 1) { + using_quan[pickid] = { is_nouse_red: 1 }; + th.setData({ using_quan: using_quan }); + if (th.data.is_b_now == 1) { + th.calculatePrice2(); + } else { + th.calculatePrice(); + } + th.setData({ open_quan: 0 }); + return; + } + } + }, + + //----把券插入之后的操作,同时还要重新计算价格---- + insert_into_using_quan: async function (item, using_quan, pickid, isby) { + + + var th = this; + var old_quan = null; + if (isby == 1) { + using_quan[pickid] = { + coupon_no: item.no, + money: 0, + is_nouse_red: 0, + region_list: item.region_list, + goods_list: item.goods_list + }; + using_quan[pickid].isby = 1; + } else { + if (using_quan[pickid]) old_quan = using_quan[pickid]; + using_quan[pickid] = { coupon_no: item.CashRepNo, money: item.Sum, is_nouse_red: 0 }; + using_quan[pickid].isby = 0; + } + this.setData({ using_quan: using_quan }); + if (th.data.is_b_now == 1) { + th.calculatePrice2(function () { + + if (old_quan) using_quan[pickid] = old_quan; + else using_quan[pickid] = null; + th.setData({ using_quan: using_quan, submit: 0 }); + wx.showToast({ + title: "不能使用优惠券,同城起送价不足", + icon: 'none', + duration: 2000 }) - if (pt_res) { - var q_s_num = 0; - for (var i in pt_res) { - var idx = pt_res[i].idx; - //有account的实收价,就要用account实收价 - var price = (t_item.goods[idx].account ? t_item.goods[idx].account : t_item.goods[idx].goods_price); - price = (price - pt_res[i].fisrt_account) * t_item.goods[idx].goods_num; - t_item.goods[idx].quan_num = price; - - t_item.goods[idx].quan_num = Math.floor(t_item.goods[idx].quan_num * 100) / 100; - t_item.goods[idx].quan_no = t_item.quan_no; - q_s_num += t_item.goods[idx].quan_num; - } - if (q_s_num > parseFloat(coupon_price) || q_s_num < parseFloat(coupon_price)) { - for (var ik in arr) { - if (arr[ik].goods_num == 1) { - var id = arr[ik].idx; - var pri = Math.floor(coupon_price * 100) / 100 - Math.floor(q_s_num * 100) / 100 - t_item.goods[id].quan_num += pri; - break; - } - } - } + }); + } else { + th.calculatePrice(function () { + if (old_quan) using_quan[pickid] = old_quan; + else using_quan[pickid] = null; + th.setData({ using_quan: using_quan, submit: 0 }); + wx.showToast({ + title: "不能使用优惠券,同城起送价不足", + icon: 'none', + duration: 2000 + }) + }); + } + th.setData({ open_quan: 0 }); + }, + + cart_set_err: function (e) { + var txt = e.currentTarget.dataset.err; + var ob = {}; + ob[txt] = this.data.imgUrl + "/miniapp/images/default_g_img.gif"; + this.setData(ob); + }, + cart_set_err1: function (e) { + var txt = e.currentTarget.dataset.err; + var ob = {}; + ob[txt] = "/miniapp/images/default_g_img.gif"; + this.setData(ob); + }, + + //--验证是否已经冻结-- + check_is_frozenQuan: function (quanlist, frozenQuan, isby) { + console.log("券列表", quanlist); + if (!quanlist) return null; + if (!frozenQuan) return quanlist; + var arr = []; + for (var i = 0; i < quanlist.length; i++) { + var item = quanlist[i]; + var is_find = 0; + var Q_no = quanlist[i].CashRepNo; + if (isby) Q_no = quanlist[i].no; + for (var j = 0; j < frozenQuan.length; j++) { + var q_no = frozenQuan[j].cashRepNo; + if (Q_no == q_no) { + is_find = 1; + break; } - }, - //订阅消息提醒 - sendsm: function (func) { - let th = this; - var template_id = this.data.template_id; - // //授权订阅 - wx.requestSubscribeMessage({ - tmplIds: [template_id], - success(res) { - func(); - }, - fail(res) { - func(); + } + if (!is_find) arr.push(item); + } + return arr; + }, + + //// 开启物流的弹窗 + show_wu_arr: function (e) { + var wu_arr_txt = e.currentTarget.dataset.txt; + var w_sele_index = e.currentTarget.dataset.w_sele_index; + var is_express = null; + var ob = { open_express: 1, wu_arr_txt: wu_arr_txt, disabled: 1 }; + + //--如果是多个门店的时候-- + if (w_sele_index != undefined) { + is_express = this.data.cartlist[w_sele_index].wind; + ob['is_express'] = is_express; + } + this.setData(ob); + }, + // 关闭物流的弹窗 + close_express: function () { + this.setData({ open_express: 0, disabled: 0 }); + }, + // 选择物流 + click_express_name: function (e) { + var express_name = e.currentTarget.dataset.name, shippingcode = e.currentTarget.dataset.shippingcode; + var index = e.currentTarget.dataset.idxe; + var ob = { is_express: index, is_shipping_code: shippingcode, disabled: 0 }; + ob[this.data.wu_arr_txt] = index; + this.setData(ob); + }, + + //点击确定物流 + determine_expres: function (e) { + this.setData({ open_express: 0 }); + if (this.data.is_b_now == 1) + this.calculatePrice2(); + else + this.calculatePrice(); + }, + + //点击打开优惠券使用说明 + clik_coupons: function (e) { + var ind = e.currentTarget.dataset.idx; + var is_open = this.data.selected_quan_list[ind].is_open; + + if (is_open == 1) is_open = 0; + else is_open = 1; + + var txt = "selected_quan_list[" + ind + "].is_open" + var obj = {}; + obj[txt] = is_open; + + this.setData(obj); + this.setData({ disabled: 1 }) + }, + + clik_coupons2: function (e) { + var ind = e.currentTarget.dataset.idx; + var is_open = this.data.get_by_quan_list[ind].is_open; + + if (is_open == 1) is_open = 0; + else is_open = 1; + + var txt = "get_by_quan_list[" + ind + "].is_open" + var obj = {}; + obj[txt] = is_open; + + this.setData(obj); + this.setData({ disabled: 1 }) + }, + + + //设置默认物流 + select_default_logistics: function () { + var th = this; + var is_shipping_code = this.data.is_shipping_code + getApp().request.put("/api/weshop/users/update", { + data: { user_id: getApp().globalData.user_id, store_id: oo.stoid, def_exp_code: is_shipping_code }, + success: function (rse) { + if (rse.data.code == 0) { + getApp().globalData.userInfo.def_exp_code = is_shipping_code; + th.setData({ open_express: 0 }); + //----计算此时购物车的价格---- + if (th.data.is_b_now == 1) th.calculatePrice2(); + else th.calculatePrice(); + } + } + }) + }, + + //更新下默认,在onshow里面 + update_code() { + var th = this, m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code; + //--定时器,判断wu_arr不未空-- + var uii = setInterval(function () { + if (th.data.wu_arr) { + clearInterval(uii); + for (var k = 0; k < th.data.wu_arr.length; k++) { + var item = th.data.wu_arr[k]; + if (def_exp_code == item.code) { + m_wind = k; + } + } + //--如果是立即购买-- + if (th.data.is_b_now == 1) { + th.setData({ index: m_wind, is_express: m_wind }); + } else { + var ui = setInterval(function () { + if (th.data.cartlist) { + var c_arr = th.data.cartlist; + for (var i in c_arr) { + c_arr[i].wind = m_wind; + } + th.setData({ cartlist: c_arr, is_express: m_wind }) + clearInterval(ui); } - }) + }, 500) + } + } + }, 500); + }, + //-----获取购物车进来的劵------- + get_cart_quan: async function (order_prom_list_cart) { + var th = this; + var user_id = getApp().globalData.user_id; + //等待值的出现 + //getApp().waitfor2(this,"g_cart_q_time","order_prom_list_cart",async function () { + //var arr=th.data.order_prom_list_cart; + var arr = order_prom_list_cart; + if (!arr) arr = []; + //如果系统有限制使用优惠券 + if (th.data.is_close_quan) return false; + + //------------开始计算使用优惠券相关------------ + for (var ind in arr) { + var ep = arr[ind]; + var goodlist = ep.goods; + var pickup_id = ep.pickup_id; + //--更优惠券抵用有关,立即购买的,如果是购物车,如果有等级价还有考虑等级价的东西 + //就要把相应的值,写入cartlist数组中-- + var ckeck_quan_price = 0, + check_quan_price_list = '', + check_quan_ware_list = '', + check_quan_price_list_arr = [], + check_quan_ware_list_arr = []; + + for (var i in goodlist) { + var gd = goodlist[i]; + //--如果是秒杀就跳出,如果是赠品,如果是组合购限制使用优惠券-- + if (gd.whsle_id == 1 || gd.prom_type == 1 || gd.is_gift || (gd.prom_type == 7 && gd.act.is_xz_yh) || gd.is_xz_yh == 1) { + continue; + } - }, + //--如果是团购,要判断有没有限制使用优惠券 + if (gd.prom_type == 2) { + var prom1 = null; + await getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + gd.goods_id + "/" + gd.prom_id, { + }).then(res => { + if (res.data.code == 0) prom1 = res.data.data; + }) + if (prom1 && !prom1.isQuan) { + continue; + } + } - setexptype2: function (e) { - this.debounce(this.setexptype.bind(this, e), 400)(); - }, + //--如果是阶梯购,要判断有没有限制使用优惠券 + if (gd.prom_type == 10) { + var prom1 = null; + await getApp().request.promiseGet("/api/weshop/prom/ladderForm/getNew/" + os.stoid + "/" + user_id + "/" + gd.prom_id, { + }).then(res => { + if (res.data.code == 0) prom1 = res.data.data; + }) + if (prom1 && prom1.isuse && prom1.is_usecoupon) { + continue; + } + } - setexptype_w2: function (e) { - this.debounce(this.setexptype_w.bind(this, e), 400)(); - }, + //如果有限制使用优惠券,就要返回 + if (gd.prom_type == 3) { - // 函数防抖 - debounce: function (func, wait) { - return () => { - clearTimeout(timer); - timer = setTimeout(func, wait); - }; - }, + if (th.data.prom_goods_map && th.data.prom_goods_map[pickup_id] && th.data.prom_goods_map[pickup_id][gd.prom_id]) { + if (th.data.prom_goods_map[pickup_id][gd.prom_id].is_xz_yh) continue; + th.data.prom_goods_map[pickup_id][gd.prom_id].coupon_sele = 1; + } + } + var item_price = gd.goods_price * gd.goods_num; + var item_price2 = item_price; + //-- 如果有平摊下去,有实收价格的时候,就要用account来计算价格 -- + if (gd.account_fir != null && gd.account_fir != undefined) { + item_price2 = gd.account_fir * gd.goods_num; + } - //-- 判断是不是选中 -- - check_th_item: function (e) { - var th = this; - var idx = e.currentTarget.dataset.item; - var check = e.currentTarget.dataset.check; - var txt = "giftsinfo[" + idx + "].selected"; - var gift_item = this.data.giftsinfo[idx]; + if (gd.ld_account) { + item_price2 = gd.ld_account * gd.goods_num; + } + ckeck_quan_price += item_price; + //如果商品有重复的过滤,一般是组合购和阶梯购的情况下 + var idx = check_quan_ware_list_arr.findIndex(function (ele) { + return ele == encodeURIComponent(gd['erpwareid']); + }) - if (check) { - th.setData({ [txt]: 0 }); + if (idx > -1) { + check_quan_price_list_arr[idx] += item_price2; } else { - - var is_true = th.check_out_num_cart(gift_item, this.data.gift_pkid, gift_item.goods_num); - if (!is_true) { return false; } - - th.setData({ [txt]: 1 }); + check_quan_ware_list_arr.push(encodeURIComponent(gd['erpwareid'])); + check_quan_price_list_arr.push(item_price2); } - }, - - - //输入框输入数量的时候 - valueToNum: function (e) { - var th = this; - var idx = e.currentTarget.dataset.item; - var gift_item = this.data.giftsinfo[idx]; - var num = parseInt(e.detail.value); - var txt = "giftsinfo[" + idx + "].goods_num"; - var is_true = th.check_out_num_cart(gift_item, this.data.gift_pkid, num); - if (!is_true) { - th.setData({ [txt]: 1 }); - return false; + //--组装价格list-- + /*-- + if (check_quan_price_list) { + check_quan_price_list += "," + item_price; + } else { + check_quan_price_list = item_price; } - th.setData({ [txt]: num }); - - }, + //--组装商品的线下erpwareid-- + if (check_quan_ware_list) { + check_quan_ware_list += "," + encodeURIComponent(gd['erpwareid']); + } else { + check_quan_ware_list = encodeURIComponent(gd['erpwareid']); + }---*/ + } + //优惠券优惠的金额要控制到优惠券的选择条件 + var cut_price = 0; + for (var i in th.data.prom_goods_map[pickup_id]) { + var obj = th.data.prom_goods_map[pickup_id][i]; + if (obj.coupon_sele) { + cut_price += obj.price - obj.prom_price; + } + } + + var prom_pt_json = ep.prom_pt_json; + if (prom_pt_json) { + for (let oj in prom_pt_json) { + let item_j = prom_pt_json[oj]; + //要对一下阶梯优惠促销的功能 + if (item_j.ladder_prom_id) { + //看一下要不要限制使用优惠券 + if (th.data.ladder_map[item_j.ladder_prom_id] && th.data.ladder_map[item_j.ladder_prom_id].is_usecoupon) { + continue; + } + cut_price += parseFloat(item_j.dis); + } + //要对一下组合购促销的功能 + if (item_j.zhprom_id) { + //看一下要不要限制使用优惠券 + if (th.data.zhhe_act_map[item_j.zhprom_id] && th.data.zhhe_act_map[item_j.zhprom_id].is_xz_yh) { + continue; + } + cut_price += parseFloat(item_j.dis); + } + } + } + + if (check_quan_price_list_arr.length) check_quan_price_list = check_quan_price_list_arr.join(','); + if (check_quan_ware_list_arr.length) check_quan_ware_list = check_quan_ware_list_arr.join(',') + + arr[ind].ckeck_quan_price = ckeck_quan_price - (cut_price ? cut_price : 0); + arr[ind].check_quan_ware_list = check_quan_ware_list; + arr[ind].check_quan_price_list = check_quan_price_list; + //-- 是否关闭使用优惠券,循环有找到商品 -- + if (th.data.is_close_quan != 1 && check_quan_ware_list) { + //--调用接口,获取优惠券的列表,3秒钟内控制接口请求-- + var url = "/api/weshop/couponList/getUseCouponList"; + await app.request.promiseGet(url, { + data: { + storeId: oo.stoid, + userId: app.globalData.user_id, + BuySum: arr[ind].ckeck_quan_price, + WareIds: check_quan_ware_list, + pageSize: 100 + } + }).then(res => { + if (res.data.code == 0) { + var quan_list = res.data.data.pageData; + arr[ind].quan_list = th.check_is_frozenQuan(quan_list, th.data.frozenQuan); + } + }) + } + } + //如果是搭配购的立即购买的时候 + if (th.data.is_b_now) { + if (arr && arr.length > 0) { + var quanlist = arr[0].quan_list; + th.setData({ selected_quan_list: quanlist, cartlist: arr }) + } + } else { + th.setData({ cartlist: arr }) + th.set_can_num(); + } + //}) + }, - addNum: function (e) { - var th = this; - var idx = e.currentTarget.dataset.item; - var txt = "giftsinfo[" + idx + "].goods_num"; - var num = th.data.giftsinfo[idx].goods_num + 1; - var gift_item = this.data.giftsinfo[idx]; - var is_true = th.check_out_num_cart(gift_item, this.data.gift_pkid, num); - if (!is_true) { return false; } - th.setData({ [txt]: num }); - }, + //------ 获取立即购买的购物车的劵 -------- + get_buy_now_quan: function () { + var quanlist = null, th = this, frozenQuan = null; + var good = this.data.bn_goods; - subNum: function (e) { - var th = this; - var idx = e.currentTarget.dataset.item; - var txt = "giftsinfo[" + idx + "].goods_num"; - var num = th.data.giftsinfo[idx].goods_num - 1; - var gift_item = this.data.giftsinfo[idx]; - var is_true = th.check_out_num_cart(gift_item, this.data.gift_pkid, num); - if (!is_true) { - return false; + //一件代发商品不使用优惠券 + if (good.whsle_id) return false; + if (good.prom_price) { + th.data.ckeck_quan_price = good.prom_price; //如果有优惠价,就用优惠价 + } else if (good.is_offline) { + th.data.ckeck_quan_price = good.offline_price; //如果有线下取价,就用线下价 + } + //--如果商家后台没有限制使用优惠券,同时商品的优惠活动没有限制使用优惠券-- + if (th.data.is_close_quan != 1 && th.data.bn_goods.is_xz_yh != 1) { + var url0 = "/api/weshop/users/frozenQuan/listFrozenQuan/" + app.globalData.user_id; + var url = "/api/weshop/couponList/getUseCouponList"; + app.request.promiseGet(url0, { 1: 1 }).then(res => { + if (res.data.code == 0) { + frozenQuan = res.data.data; + th.data.frozenQuan = frozenQuan; } - if (num < 1) return false; - th.setData({ [txt]: num }); - }, - - //-- 点击选中赠品 -- - show_sele_gift: function (e) { - var index = e.currentTarget.dataset.index; - var pk = e.currentTarget.dataset.pk; - var giftsinfo = this.data.send_gf[pk][index].giftsinfo; - - for (let i in giftsinfo) { - let item = giftsinfo[i]; - if (!item.goods_num) giftsinfo[i].goods_num = 1; - } - - this.setData({ - show_duo_gift: 1, - giftsinfo: giftsinfo, - gf_pr_name: this.data.send_gf[pk][index].gf_pr_name, - zp_num: this.data.send_gf[pk][index].zp_num, - gift_pkid: pk, - gf_prom_id: this.data.send_gf[pk][index].prom_id, - send_gf_index: index + app.request.time_limit_get(6, url, { + data: { + storeId: oo.stoid, + userId: app.globalData.user_id, + BuySum: th.data.ckeck_quan_price, + WareIds: encodeURIComponent(th.data.check_quan_ware_list), + pageSize: 100 + }, + success: function (res) { + if (res.data.code == 0) { + quanlist = res.data.data.pageData; + if (quanlist) { + quanlist = th.check_is_frozenQuan(quanlist, frozenQuan); + th.setData({ selected_quan_list: quanlist }) + } + } + } }) - }, - - close_sele_gift: function () { - this.setData({ show_duo_gift: 0 }) - }, - - //购物车赠品有咩有超出库存。有灭有超出限购 - check_out_num_cart: function (discount, pick_id, num) { - var prom_id = discount.prom_id; - var alllist = this.data.cartlist; - var all_num = num; - var all_limit_num = num; - var gift_id = discount.gift_id; - for (var i in alllist) { - var list_item = alllist[i]; - //-- 门店相同,活动相同的时候 -- - if (pick_id == list_item.pickup_id && prom_id == list_item.prom_id) continue; - for (var j in list_item.goods) { - //如果赠品的ID一样,要进行统计数量 - if (list_item.goods[j].is_gift == 1 && - list_item.goods[j].gift_id == gift_id) { - all_num += list_item.goods[j].goods_num; - } - if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == gift_id && list_item.goods[j].prom_id == prom_id) { - all_limit_num += list_item.goods[j].limit_num; - } + }) + } + }, + + //检查区域是不是包邮 + check_area: function (arr) { + var user_addr = this.data.user_addr; + if (!user_addr) return 0; + for (var i in arr) { + var item = arr[i]; + if (user_addr.twon == item || user_addr.district == item + || user_addr.city == item || user_addr.province == item) { + return 0; + } + } + return 1; + }, + + //检查立即购买的商品是不是不包邮 + check_good: function (arr, goods_id) { + if (!goods_id) goods_id = this.data.bn_goods.goods_id; + for (var i in arr) { + var item = arr[i]; + if (goods_id == item) return 0; + } + return 1; + }, + check_by_area: function (region_list) { + var arr = region_list.split(","); + var check = this.check_area(arr); + return !check; + }, + check_by_goods: function (goods_list, goods_id) { + var arr = goods_list.split(","); + var check = this.check_good(arr, goods_id); + return !check; + }, + //立即购买获取优惠活动的内容 + buy_now_prom_goods: function (prom_id, arr, func) { + var th = this; + var price = arr.shop_price * arr.goods_num; + var prom = null; + var gg = to.get_b_now(); + getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + prom_id, {}).then(res => { + if (res.data.code == 0) { + prom = res.data.data; + let min_value = 0 + if (prom && prom.is_xz_yh) { + let arr = prom.promGoodsList || [] + arr.map(item => { + if (min_value) { + min_value = item.condition + } else { + if (min_value < item.condition) { + min_value = item.condition + } } + }) + if (arr.length > 0) { + if (arr[0].prom_type == 0) { + if (price < min_value) { + prom.is_xz_yh = 0 + } + } else { + if (arr.goods_num < min_value) { + prom.is_xz_yh = 0 + } + } + } } - //-- 赠品的数量超出库存数量和会员的限制, - // 这里是保证所有的赠品部会超出 -- - if (discount.gift_storecount < all_num) { - wx.showToast({ - title: "赠品库存不足", - icon: 'none', - duration: 2000 - }); - return false; - } - if (discount.limit_num < all_limit_num) { - wx.showToast({ - title: "超出赠品限购", - icon: 'none', - duration: 2000 - }); - return false; + console.error('优惠活动1'); + //------------------- + return getApp().request.promiseGet("/api/weshop/goods/getDiscount", { + data: { + price: parseFloat(price).toFixed(2), + prom_id: prom_id, + goods_num: arr.goods_num, + user_id: getApp().globalData.user_id, + is_bz: prom.is_bz + } + }) + } else { + func(arr); + } + }).then(res => { + if (res.data.code == 0) { + var get_data = res.data.data; + arr.is_bz = prom.is_bz; //是不是倍增 + arr.is_xz_yh = arr.is_xz_yh ? arr.is_xz_yh : prom.is_xz_yh; //是不是优惠 + arr.bs = get_data.bs; //是不是倍数 + arr.is_past = get_data.is_past; //是不是包邮 + arr.prom_price = get_data.price >= 0 ? get_data.price : price; + arr.s_intValue = get_data.intValue; + arr.s_coupon_id = get_data.coupon_id; + arr.s_coupon_num = get_data.coupon_num; + arr.zp_mode = get_data.zp_mode; + arr.zp_num = get_data.zp_num ? get_data.zp_num : 1; //确保默认一个 + + //-- 看是不是有赠品 -- + if (get_data.gift_id && parseInt(get_data.zp_mode) != 1 + && get_data.zp_num * arr.bs <= get_data.limit_num + && get_data.zp_num * arr.bs <= get_data.gift_storecount + ) { + arr.gift_id = get_data.gift_id; + arr.gift_goods_id = get_data.goods_id; + arr.gift_goods_name = get_data.goods_name; + arr.gift_goods_sn = get_data.goodsinfo.goods_sn; + arr.gift_goods_color = get_data.goodsinfo.goods_color; + arr.gift_goods_spec = get_data.goodsinfo.goods_spec; + arr.gift_original_img = get_data.goodsinfo.original_img; + arr.gift_weight = get_data.goodsinfo.weight; + arr.gift_exp_sum_type = get_data.goodsinfo.exp_sum_type; + arr.gift_uniform_exp_sum = get_data.goodsinfo.uniform_exp_sum; + arr.gift_limit_num = get_data.limit_num; + arr.gift_storecount = get_data.gift_storecount; + arr.whsle_id = get_data.goodsinfo.whsle_id; } - return true; - }, + arr.s_libao = get_data.libao; + arr.s_lb_num = get_data.lb_num; + arr.lbtitle = get_data.lbtitle; + arr.zxlbtitle = get_data.zxlbtitle; + arr.zx_libao = get_data.zxlibao; + arr.zx_lb_num = get_data.zxlb_num; - //-- 确定赠品 -- - sure_this_gift: async function () { - var th = this; - var gf_pickup_id = this.data.gift_pkid; + arr.prom_id = prom_id; - var zp_num = this.data.zp_num; - var giftsinfo = this.data.giftsinfo; - var all_num = 0; - for (let i in giftsinfo) { - let item = giftsinfo[i]; - if (!item.selected) continue; - all_num += item.goods_num; - } - if (all_num > zp_num) { - wx.showToast({ - title: "超出活动赠品赠送的数量" + zp_num + "件", - icon: 'none', - duration: 2000 + var send_gf = {}; + var pickid = gg.pick_id; + if (parseInt(get_data.zp_mode) == 1) { + if (!send_gf[pickid]) send_gf[pickid] = []; + + var a_stock_num = 0; + var a_limit_num = 0; + for (let iy in get_data.giftsinfo) { + let item = get_data.giftsinfo[iy]; + a_stock_num += parseInt(item.gift_storecount); + a_limit_num += parseInt(item.limit_num); + } + + var t_zp_num = parseInt(get_data.zp_num) * parseInt(get_data.bs); + if (a_limit_num >= t_zp_num && a_stock_num >= t_zp_num) { + send_gf[pickid].push({ + pickup_id: pickid, giftsinfo: get_data.giftsinfo, zp_num: get_data.zp_num * get_data.bs, + gf_pr_name: prom.name, prom_id: prom.prom_id }); - return false; + } + th.setData({ send_gf: send_gf }); } - if (all_num < zp_num) { - wx.showToast({ - title: "您还可以加" + (zp_num - all_num) + "件", - icon: 'none', - duration: 2000 - }); - return false; + } + func(arr); + }) + }, + //--检查订单优惠-- + check_is_order_prom: function (condition, func, pick) { + var th = this; + if (this.data.is_b_now == 1) pick = this.data.bn_pick; + //---获取订单优惠--- + getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { + data: { store_id: os.stoid, orderAmount: condition, user_id: getApp().globalData.user_id } + }).then(res => { + if (res.data.code == 0) { + var data = res.data.data; + th.data.order_prom[pick] = data; + } + func(); + }) + }, + + //--- 加入优惠活动的映射中,同时要有一个good列表 --- + add_prom_goods_map: async function (item) { + var th = this; + var pickid = item.pick_id; + var map = th.data.prom_goods_map; + var obj = map[pickid]; + + if (map[pickid]) { + if (map[pickid][item.prom_id]) { + + var ob = map[pickid][item.prom_id]; + //-- 避免同一件商品重复添加 -- + if (ob.goods && ob.goods.length) { + var fid = ob.goods.findIndex(function (e) { + e.goods_id == item.goods_id + }) + if (fid > -1) return false; } - //-- 当是购物车购买的时候 -- - if (this.data.cartlist && this.data.cartlist.length > 0) { - var alllist = this.data.cartlist; - var index = alllist.findIndex(function (e) { - return e.pickup_id == gf_pickup_id - }); - var pk_list_goods = alllist[index].goods; - - var url = "/api/weshop/cart/delGift?store_id=" + os.stoid + "&user_id=" - + getApp().globalData.user_id + "&is_gift=1&pick_id=" + this.data.gift_pkid + "&prom_id=" + this.data.prom_id; - await getApp().request.promiseDelete(url, {}); + ob.price += item.goods_price * item.goods_num; + ob.goods_num += item.goods_num; + ob.goods.push({ goods_id: item.goods_id, goods_price: item.goods_price, goods_num: item.goods_num }); - var new_pk_list_goods = []; - for (let i in pk_list_goods) { - let item = pk_list_goods[i]; - if (item.is_gift && item.prom_id == this.data.gf_prom_id) { - continue; + } else { + var prom = null; + await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + item.prom_id, {}).then(res => { + if (res.data.code == 0) { + prom = res.data.data; + + let min_value = 0 + if (prom && prom.is_xz_yh) { + let arr = prom.promGoodsList || [] + arr.map(ite => { + if (min_value) { + min_value = ite.condition + } else { + if (min_value < ite.condition) { + min_value = ite.condition + } + } + }) + if (arr.length > 0) { + if (arr[0].prom_type == 0) { + if ((item.goods_price * item.goods_num) < min_value) { + prom.is_xz_yh = 0 + } + } else { + if (item.goods_num < min_value) { + prom.is_xz_yh = 0 + } } - new_pk_list_goods.push(item) + } } - - //-- 循环把赠品添加进去 -- - for (var i = 0; i < giftsinfo.length; i++) { - var gf_item = giftsinfo[i]; - if (!gf_item.selected) continue; - var add_data = null; - var newd = { - goods_id: gf_item.goodsinfo.goods_id, - goods_num: gf_item.goods_num, - pick_id: gf_pickup_id, - user_id: app.globalData.user_id, - store_id: os.stoid, - goods_price: 0, - member_goods_price: 0, - goods_name: gf_item.goodsinfo.goods_name, - goods_sn: gf_item.goodsinfo.goods_sn, - sku: gf_item.goodsinfo.sku, - is_gift: 1, - prom_id: th.data.gf_prom_id, - prom_type: 3, - selected: 1, - gift_id: gf_item.gift_id, - original_img: th.data.imgUrl + gf_item.goodsinfo.original_img, - exp_sum_type: gf_item.goodsinfo.exp_sum_type, - is_free_shipping: gf_item.goodsinfo.is_free_shipping, - weight: gf_item.goodsinfo.weight, - uniform_exp_sum: gf_item.goodsinfo.uniform_exp_sum, - goods_spec: gf_item.goodsinfo.goods_spec, - goods_color: gf_item.goodsinfo.goods_color, - }; - - - //-- 如果是代发商品的时候 -- - if(gf_item.goodsinfo.whsle_id){ - newd.whsle_id=gf_item.goodsinfo.whsle_id; + } + }) + var ob = {}; + ob.prom_id = item.prom_id; + ob.name = prom.name; + ob.price = item.goods_price * item.goods_num; + ob.goods_num = item.goods_num; + ob.is_bz = prom.is_bz; + ob.is_xz_yh = prom.is_xz_yh; + ob.goods = new Array(); + ob.goods.push({ goods_id: item.goods_id, goods_price: item.goods_price, goods_num: item.goods_num }); + map[pickid][item.prom_id] = ob; + } + } else { + var ob = {}; + var prom = null; + await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + item.prom_id, {}).then(res => { + if (res.data.code == 0) { + prom = res.data.data; + + let min_value = 0 + if (prom && prom.is_xz_yh) { + let arr = prom.promGoodsList || [] + arr.map(ite => { + if (min_value) { + min_value = ite.condition + } else { + if (min_value < ite.condition) { + min_value = ite.condition } - 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; - new_pk_list_goods.push(newd); + } + }) + if (arr.length > 0) { + if (arr[0].prom_type == 0) { + if ((item.goods_price * item.goods_num) < min_value) { + prom.is_xz_yh = 0 } - } - - var set_data = this.data.send_gf[gf_pickup_id][this.data.send_gf_index]; - set_data.selected = 1; - var txt9 = "cartlist[" + index + "].goods"; - - th.setData({ [txt9]: new_pk_list_goods, send_gf: this.data.send_gf }); - this.data.old_cartlist[index].goods = new_pk_list_goods; - - console.log(this.data.send_gf, "----"); - th.calculatePrice(); - - } else { - var new_pk_list_goods = []; - //-- 当是立即购买的时候 -- - for (var i = 0; i < giftsinfo.length; i++) { - var gf_item = giftsinfo[i]; - if (!gf_item.selected) continue; - var newd = { - goods_id: gf_item.goodsinfo.goods_id, - buynum: gf_item.goods_num, - pick_id: gf_pickup_id, - user_id: app.globalData.user_id, - store_id: os.stoid, - goods_price: 0, - member_goods_price: 0, - goods_name: gf_item.goodsinfo.goods_name, - goods_sn: gf_item.goodsinfo.goods_sn, - sku: gf_item.goodsinfo.sku, - is_gift: 1, - prom_id: th.data.gf_prom_id, - prom_type: 3, - selected: 1, - gift_id: gf_item.gift_id, - original_img: th.data.imgUrl + gf_item.goodsinfo.original_img, - exp_sum_type: gf_item.goodsinfo.exp_sum_type, - is_free_shipping: gf_item.goodsinfo.is_free_shipping, - weight: gf_item.goodsinfo.weight, - uniform_exp_sum: gf_item.goodsinfo.uniform_exp_sum, - uniform_exp_sum: gf_item.goodsinfo.uniform_exp_sum, - goods_spec: gf_item.goodsinfo.goods_spec, - goods_color: gf_item.goodsinfo.goods_color, - }; - //-- 如果是代发商品的时候 -- - if(gf_item.goodsinfo.whsle_id){ - newd.whsle_id=gf_item.goodsinfo.whsle_id; + } else { + if (item.goods_num < min_value) { + prom.is_xz_yh = 0 } - - new_pk_list_goods.push(newd); + } } - var set_data = this.data.send_gf[th.data.bn_pick][this.data.send_gf_index]; - set_data.selected = 1; - var txt1 = "send_gf[" + gf_pickup_id + "][" + this.data.send_gf_index + "]"; - - th.setData({ buy_now_gift_goods: new_pk_list_goods, [txt1]: set_data }); - th.calculatePrice2(); - + } } - th.close_sele_gift(); - }, + }) + + ob.prom_id = item.prom_id; + ob.name = prom.name; + ob.price = item.goods_price * item.goods_num; + ob.goods_num = item.goods_num; + ob.is_bz = prom.is_bz; + ob.is_xz_yh = prom.is_xz_yh; + ob.goods = new Array(); + ob.goods.push({ goods_id: item.goods_id, goods_price: item.goods_price, goods_num: item.goods_num }); + var obj = {}; + obj[item.prom_id] = ob; + map[pickid] = obj; - //获取输入 - getInput: function (e) { - this.data.gift_sear = e.detail.value; - }, - //-- 搜索赠品 -- - submitSearch: function () { - var giftsinfo = this.data.giftsinfo; - if (!this.data.gift_sear) { - for (let i in giftsinfo) { - let item = giftsinfo[i]; - item.hide_div = 0; - } - } else { - for (let i in giftsinfo) { - let item = giftsinfo[i]; - item.hide_div = 0; - if (item.goods_name.indexOf(this.data.gift_sear) == -1) { - item.hide_div = 1; + } + }, + //---检查有没有优惠活动--- + check_is_youhui: function (r_data, pick_id) { + let send_lb = this.data.send_lb; + let lodash = null; + r_data.forEach(item => { + if (send_lb[pick_id]) { + for (let i = 0; i < send_lb[pick_id].length; i++) { + let sends = send_lb[pick_id][i]; + if (item.lb_id) { + if (sends.id === item.lb_id) { + sends['num']++; + } else { + let send_arr1 = send_lb[pick_id].filter(ii => ii.id === item.lb_id); + if (send_arr1.length == 0) { + if (item.lb_id) { + let ob = {}; + ob.num = 1; + ob.title = item.lbtitle; + ob.id = item.lb_id; + lodash.push(ob); + // break; } - } - } - this.setData({ giftsinfo: giftsinfo }) - - }, + } - //-- 赠品的验证 -- - sub_check_gift(func) { - var th = this; - if (th.data.send_gf) { - var error_arr = []; - for (let io in th.data.send_gf) { - let item_arr = th.data.send_gf[io]; - for (let ip in item_arr) { - var gf_pr_name = item_arr[ip].gf_pr_name; - var zp_num = item_arr[ip].zp_num; - var giftsinfo = item_arr[ip].giftsinfo; - var limit_all = 0; - var stock_all = 0; - for (let iu in giftsinfo) { - let gf_item = giftsinfo[iu]; - limit_all += gf_item.limit_num; - stock_all += gf_item.gift_storecount; - } - if (limit_all < zp_num) { - error_arr.push(gf_pr_name + "限购不足"); - } - if (stock_all < zp_num) { - error_arr.push(gf_pr_name + "赠品库存不足"); - } + } + } + if (item.zxlb_id) { + if (sends.id === item.zxlb_id) { + sends['num']++; + } else { + let send_arr = send_lb[pick_id].filter(ii => ii.id === item.zxlb_id); + if (send_arr.length == 0) { + if (item.zxlb_id) { + let ob = {}; + ob.num = 1; + ob.flag = 1; + ob.title = item.zxlbtitle; + ob.id = item.zxlb_id; + lodash.push(ob); + // break; } + } } + } + } - //-- 有赠品错误的时候,是不是继续下单 -- - if (error_arr.length) { - var err = error_arr.join(","); - wx.showModal({ - title: '提示', - content: err + ',无法赠送赠品,是否继续下单', - success(res) { - if (res.confirm) { - func(); - } else if (res.cancel) { - console.log('用户点击取消'); - th.setData({ - submit: 0, - }) - } - } - }) - } else { + } else { + let arr = new Array(); + if (item.lb_id) { + let ob = {}; + ob.num = 1; + ob.title = item.lbtitle; + ob.id = item.lb_id; + arr.push(ob); + } + if (item.zxlb_id) { + let ob = {}; + ob.num = 1; + ob.flag = 1; + ob.title = item.zxlbtitle; + ob.id = item.zxlb_id; + arr.push(ob); + } + send_lb[pick_id] = arr; + lodash = JSON.parse(JSON.stringify(send_lb[pick_id])); + } + }) + send_lb[pick_id] = lodash; + th.setData({ + send_lb, + }) + + + }, + + //从优惠的映射中拿出商品从表的item + item_map_get_goods: function (goods_id, map) { + for (var i in map.goods) { + if (map.goods[i].goods_id == goods_id) return map.goods[i]; + } + }, + //从优惠的映射中拿出商品从表的item + arr_get_goods: function (goods_id, arr) { + for (var i in arr) { + if (arr[i].goods_id == goods_id) return arr[i]; + } + }, + + //检查是不是有其他门店的订单在选择了券 + check_other_use: function (iter, pkid) { + var using = this.data.using_quan; + var is_use = 0; + if (using) { + for (var i in using) { + if (i == pkid) continue; + if (iter.CashRepNo == using[i].coupon_no) { + is_use = 1; + break; + } + } + } + return is_use; + }, + //检查是不是有其他门店的订单在选择了包邮券 + check_other_use_by: function (iter, pkid) { + var using = this.data.using_quan; + var is_use = 0; + if (using) { + for (var i in using) { + if (i == pkid) continue; + if (iter.no == using[i].coupon_no) { + is_use = 1; + break; + } + } + } + return is_use; + }, + + //跳转到购买卡 + buycard: function () { + getApp().goto("/pages/user/plus/plus"); + getApp().globalData.plus_buy_back = 1; + }, + + //跳转关闭弹出框的显示 + close_offline: function () { + this.setData({ is_offline_show: 0 }); + }, + + //立即购买显示弹出框 + bn_pop_offline: function () { + var off_price = this.data.bn_goods.shop_price - this.data.bn_goods.offline_price; + //是不是线下 + var is_get_offline = this.data.bn_goods.is_offline; + this.setData({ is_offline_show: 1, show_off_price: off_price.toFixed(2), is_get_offline: is_get_offline }); + }, + + // 促销 -> 送礼包 -> 查看详情 + viewLbDetails(e) { + let id = e.currentTarget.dataset.id; // 获取礼包id + let flag = e.currentTarget.dataset.flag; + let url = ''; + if (flag == 1) { // flag =1 控制跳转到专享礼包 + url = `/pages/giftpack/giftpacklist/giftpacklist?lbId=${id}&flag=1`; + } else { + url = `/packageA/pages/myGiftDetails/myGiftDetails?btn=0&index=0&id=${id}`; // btn=0 控制跳转到的页面不显示按钮 + }; + // console.log('myurl', url); + getApp().goto(url); + }, + + //确定使用线下取价 + sure_offline: function () { + var bn_goods = this.data.bn_goods; + if (bn_goods && bn_goods.prom_type == 0) { + bn_goods.is_offline = 1; + this.setData({ is_offline_show: 0, bn_goods: bn_goods }); + this.calculatePrice2(); + } + //就是购物车结算时的 + else { + var index = this.data.pop_offline_index; + var txt = "cartlist[" + index + "].is_offline"; + this.setData({ [txt]: 1, is_offline_show: 0, }); + this.data.old_cartlist[index].is_offline = 1; + this.calculatePrice(); + } + }, + + //取消使用线下取价 + cancle_offline: function () { + //判断是不是立即购买 + var bn_goods = this.data.bn_goods; + if (bn_goods && bn_goods.prom_type == 0) { + bn_goods.is_offline = 0; + this.setData({ is_offline_show: 0, bn_goods: bn_goods }); + this.calculatePrice2(); + } + //就是购物车结算时的 + else { + var index = this.data.pop_offline_index; + var txt = "cartlist[" + index + "].is_offline"; + this.setData({ [txt]: 0, is_offline_show: 0, }) + this.data.old_cartlist[index].is_offline = 0; + this.calculatePrice(); + } + }, + + //-- 弹出购物车选择是不是要店铺优惠 -- + cart_pop_offline: function (e) { + var index = e.currentTarget.dataset.index; + var item = this.data.cartlist[index]; + var off_price = item.offline_price; + //是不是线下 + var is_get_offline = item.is_offline; + this.setData({ + pop_offline_index: index, + is_offline_show: 1, + show_off_price: off_price.toFixed(2), + is_get_offline: is_get_offline + }); + }, + + go_url: function (e) { + var url = e.currentTarget.dataset.url; + getApp().goto(url); + }, + + //进行对商品的平摊g_item是单个商品,you_item是这个商品分多少优惠券的钱,goods是商品列表 + split_set_goods_quanprice: async function (you_item, t_item) { + var coupon_price = you_item.WareCashSum; + var goods = t_item.goods; + var arr = []; + //判断是不是有goods_id重复 + for (var i = 0; i < goods.length; i++) { + if (goods[i].erpwareid == you_item.WareId) { + var gg_ite = { + goods_id: goods[i].goods_id, + goods_num: goods[i].goods_num, + goods_price: goods[i].goods_price, + }; + if (goods[i].account) gg_ite.goods_price = goods[i].account; + gg_ite.idx = i; arr.push(gg_ite); + } + } - var is_ok = 1; - var error_arr = []; - for (let io in th.data.send_gf) { - let item_arr1 = th.data.send_gf[io]; - for (let ip1 in item_arr1) { - var item_b = item_arr1[ip1]; - if (!item_b.selected) { - is_ok = 0; - break; - } - } - if (!is_ok) break; - } + if (arr.length <= 0) return false; + if (arr.length == 1) { + var idx = arr[0].idx; + t_item.goods[idx].quan_num = Math.floor(coupon_price * 100) / 100; + t_item.goods[idx].quan_no = t_item.quan_no; + return false; + } - if (!is_ok) { - getApp().confirmBox("请选择赠品"); - th.setData({ - submit: 0, - }) - return false; - } - func(); - } + var pt_data = { + 'dis': parseFloat(coupon_price), + 'goods': arr, + } + var pt_res = null; + await getApp().request.promisePost("/api/weshop/order/getGoodsSplit", { + is_json: 1, + data: pt_data + }).then(res => { + if (res.data.code == 0) { + pt_res = res.data.data; + } + }) + if (pt_res) { + var q_s_num = 0; + for (var i in pt_res) { + var idx = pt_res[i].idx; + //有account的实收价,就要用account实收价 + var price = (t_item.goods[idx].account ? t_item.goods[idx].account : t_item.goods[idx].goods_price); + price = (price - pt_res[i].fisrt_account) * t_item.goods[idx].goods_num; + t_item.goods[idx].quan_num = price; + + t_item.goods[idx].quan_num = Math.floor(t_item.goods[idx].quan_num * 100) / 100; + t_item.goods[idx].quan_no = t_item.quan_no; + q_s_num += t_item.goods[idx].quan_num; + } + + if (q_s_num > parseFloat(coupon_price) || q_s_num < parseFloat(coupon_price)) { + for (var ik in arr) { + if (arr[ik].goods_num == 1) { + var id = arr[ik].idx; + var pri = Math.floor(coupon_price * 100) / 100 - Math.floor(q_s_num * 100) / 100 + t_item.goods[id].quan_num += pri; + break; + } + } + } + } + }, + //订阅消息提醒 + sendsm: function (func) { + let th = this; + var template_id = this.data.template_id; + // //授权订阅 + wx.requestSubscribeMessage({ + tmplIds: [template_id], + success(res) { + func(); + }, + fail(res) { + func(); + } + }) + + }, + + setexptype2: function (e) { + this.debounce(this.setexptype.bind(this, e), 400)(); + }, + + setexptype_w2: function (e) { + this.debounce(this.setexptype_w.bind(this, e), 400)(); + }, + + // 函数防抖 + debounce: function (func, wait) { + return () => { + clearTimeout(timer); + timer = setTimeout(func, wait); + }; + }, + + + //-- 判断是不是选中 -- + check_th_item: function (e) { + var th = this; + var idx = e.currentTarget.dataset.item; + var check = e.currentTarget.dataset.check; + var txt = "giftsinfo[" + idx + "].selected"; + var gift_item = this.data.giftsinfo[idx]; + + if (check) { + th.setData({ [txt]: 0 }); + } else { + + var is_true = th.check_out_num_cart(gift_item, this.data.gift_pkid, gift_item.goods_num); + if (!is_true) { return false; } + + th.setData({ [txt]: 1 }); + } + }, + + + //输入框输入数量的时候 + valueToNum: function (e) { + var th = this; + var idx = e.currentTarget.dataset.item; + var gift_item = this.data.giftsinfo[idx]; + var num = parseInt(e.detail.value); + var txt = "giftsinfo[" + idx + "].goods_num"; + var is_true = th.check_out_num_cart(gift_item, this.data.gift_pkid, num); + if (!is_true) { + th.setData({ [txt]: 1 }); + return false; + } + th.setData({ [txt]: num }); + + }, + + + + addNum: function (e) { + var th = this; + var idx = e.currentTarget.dataset.item; + var txt = "giftsinfo[" + idx + "].goods_num"; + var num = th.data.giftsinfo[idx].goods_num + 1; + var gift_item = this.data.giftsinfo[idx]; + var is_true = th.check_out_num_cart(gift_item, this.data.gift_pkid, num); + if (!is_true) { return false; } + th.setData({ [txt]: num }); + }, + + subNum: function (e) { + var th = this; + var idx = e.currentTarget.dataset.item; + var txt = "giftsinfo[" + idx + "].goods_num"; + var num = th.data.giftsinfo[idx].goods_num - 1; + var gift_item = this.data.giftsinfo[idx]; + var is_true = th.check_out_num_cart(gift_item, this.data.gift_pkid, num); + if (!is_true) { + return false; + } + if (num < 1) return false; + th.setData({ [txt]: num }); + }, + + //-- 点击选中赠品 -- + show_sele_gift: function (e) { + var index = e.currentTarget.dataset.index; + var pk = e.currentTarget.dataset.pk; + var giftsinfo = this.data.send_gf[pk][index].giftsinfo; + + for (let i in giftsinfo) { + let item = giftsinfo[i]; + if (!item.goods_num) giftsinfo[i].goods_num = 1; + } - } else { - func(); + this.setData({ + show_duo_gift: 1, + giftsinfo: giftsinfo, + gf_pr_name: this.data.send_gf[pk][index].gf_pr_name, + zp_num: this.data.send_gf[pk][index].zp_num, + gift_pkid: pk, + gf_prom_id: this.data.send_gf[pk][index].prom_id, + send_gf_index: index + }) + }, + + close_sele_gift: function () { + this.setData({ show_duo_gift: 0 }) + }, + + //购物车赠品有咩有超出库存。有灭有超出限购 + check_out_num_cart: function (discount, pick_id, num) { + var prom_id = discount.prom_id; + var alllist = this.data.cartlist; + var all_num = num; + var all_limit_num = num; + var gift_id = discount.gift_id; + for (var i in alllist) { + var list_item = alllist[i]; + //-- 门店相同,活动相同的时候 -- + if (pick_id == list_item.pickup_id && prom_id == list_item.prom_id) continue; + for (var j in list_item.goods) { + //如果赠品的ID一样,要进行统计数量 + if (list_item.goods[j].is_gift == 1 && + list_item.goods[j].gift_id == gift_id) { + all_num += list_item.goods[j].goods_num; } - }, + if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == gift_id && list_item.goods[j].prom_id == prom_id) { + all_limit_num += list_item.goods[j].limit_num; + } + } + } + //-- 赠品的数量超出库存数量和会员的限制, + // 这里是保证所有的赠品部会超出 -- + if (discount.gift_storecount < all_num) { + wx.showToast({ + title: "赠品库存不足", + icon: 'none', + duration: 2000 + }); + return false; + } + if (discount.limit_num < all_limit_num) { + wx.showToast({ + title: "超出赠品限购", + icon: 'none', + duration: 2000 + }); + return false; + } + return true; + }, + + //-- 确定赠品 -- + sure_this_gift: async function () { + var th = this; + var gf_pickup_id = this.data.gift_pkid; + + var zp_num = this.data.zp_num; + var giftsinfo = this.data.giftsinfo; + var all_num = 0; + for (let i in giftsinfo) { + let item = giftsinfo[i]; + if (!item.selected) continue; + all_num += item.goods_num; + } + if (all_num > zp_num) { + wx.showToast({ + title: "超出活动赠品赠送的数量" + zp_num + "件", + icon: 'none', + duration: 2000 + }); + return false; + } + if (all_num < zp_num) { + wx.showToast({ + title: "您还可以加" + (zp_num - all_num) + "件", + icon: 'none', + duration: 2000 + }); + return false; + } - //子组件返回的优化 - select_coll(e){ - console.log("--1111--aaa--"); - console.log(e); - //-- 如果是购物车的选择添加搭配商品 -- - if(e.detail.is_cart==1){ - this.select_coll_buy_cart(e.detail); - }else{ - this.select_coll_buy_now(e.detail); + //-- 当是购物车购买的时候 -- + if (this.data.cartlist && this.data.cartlist.length > 0) { + var alllist = this.data.cartlist; + var index = alllist.findIndex(function (e) { + return e.pickup_id == gf_pickup_id + }); + var pk_list_goods = alllist[index].goods; + + var url = "/api/weshop/cart/delGift?store_id=" + os.stoid + "&user_id=" + + getApp().globalData.user_id + "&is_gift=1&pick_id=" + this.data.gift_pkid + "&prom_id=" + this.data.prom_id; + await getApp().request.promiseDelete(url, {}); + + var new_pk_list_goods = []; + for (let i in pk_list_goods) { + let item = pk_list_goods[i]; + if (item.is_gift && item.prom_id == this.data.gf_prom_id) { + continue; } - }, + new_pk_list_goods.push(item) + } + + //-- 循环把赠品添加进去 -- + for (var i = 0; i < giftsinfo.length; i++) { + var gf_item = giftsinfo[i]; + if (!gf_item.selected) continue; + var add_data = null; + var newd = { + goods_id: gf_item.goodsinfo.goods_id, + goods_num: gf_item.goods_num, + pick_id: gf_pickup_id, + user_id: app.globalData.user_id, + store_id: os.stoid, + goods_price: 0, + member_goods_price: 0, + goods_name: gf_item.goodsinfo.goods_name, + goods_sn: gf_item.goodsinfo.goods_sn, + sku: gf_item.goodsinfo.sku, + is_gift: 1, + prom_id: th.data.gf_prom_id, + prom_type: 3, + selected: 1, + gift_id: gf_item.gift_id, + original_img: th.data.imgUrl + gf_item.goodsinfo.original_img, + exp_sum_type: gf_item.goodsinfo.exp_sum_type, + is_free_shipping: gf_item.goodsinfo.is_free_shipping, + weight: gf_item.goodsinfo.weight, + uniform_exp_sum: gf_item.goodsinfo.uniform_exp_sum, + goods_spec: gf_item.goodsinfo.goods_spec, + goods_color: gf_item.goodsinfo.goods_color, + }; - //立即购买的时候,选中和不选中搭配商品 - async select_coll_buy_now(e){ - var th=this; - //--按钮变灰色 -- - th.setData({submit:1}); - //如果是选中 - if(e.selected){ - var item=this.data.all_collocation_list[e.index]; - item.goods_num=1; - item.goods_price=item.price; - item.is_collocation=1; - item.prom_type=5; - - - var coll_arr=[]; - if(this.data.collocation_goods && this.data.collocation_goods.length){ - coll_arr=this.data.collocation_goods; - } - coll_arr.push(item); - this.setData({collocation_goods:coll_arr}); - //让主商品的活动变成5,搭配购 - this.setData({'bn_goods.prom_type':5, 'bn_goods.prom_id':coll_arr[0].prom_id }); - - var is_has_main=coll_arr.findIndex(function(e){ - return e.goods_id==th.data.bn_goods.goods_id; - }) - - //要进行深拷贝 - var coll_arr_new=JSON.parse(JSON.stringify(coll_arr)); - coll_arr_new.unshift(this.data.bn_goods); - - await th.get_collocation_list(coll_arr_new); - //计算价格 - th.calculatePrice2(); - th.get_cart_quan(); - - }else{ - var item=this.data.all_collocation_list[e.index]; - var coll_arr=this.data.collocation_goods; - var find=coll_arr.findIndex(function (e){ - return e.goods_id==item.goods_id; - }) - coll_arr.splice(find,1); - - //当coll_arr的长度等于1的时候,说明没有选中搭配商品,只有主商品了 - if(!coll_arr || coll_arr.length<1){ - //让主商品的活动变成0,取消搭配购 - this.setData({'bn_goods.prom_type':0, 'bn_goods.prom_id':0,collocation_goods:[] }); - //计算价格 - th.calculatePrice2(); - //获取优惠券 - th.get_buy_now_quan(); - - }else{ - this.setData({collocation_goods:coll_arr}); - //要进行深拷贝 - var coll_arr_new=JSON.parse(JSON.stringify(coll_arr)); - coll_arr_new.unshift(this.data.bn_goods); - await th.get_collocation_list(coll_arr); - //计算价格 - th.calculatePrice2(); - th.get_cart_quan(); - } + + //-- 如果是代发商品的时候 -- + if (gf_item.goodsinfo.whsle_id) { + newd.whsle_id = gf_item.goodsinfo.whsle_id; + } + 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; + new_pk_list_goods.push(newd); + } + } + + var set_data = this.data.send_gf[gf_pickup_id][this.data.send_gf_index]; + set_data.selected = 1; + var txt9 = "cartlist[" + index + "].goods"; + + th.setData({ [txt9]: new_pk_list_goods, send_gf: this.data.send_gf }); + this.data.old_cartlist[index].goods = new_pk_list_goods; + + console.log(this.data.send_gf, "----"); + th.calculatePrice(); + + } else { + var new_pk_list_goods = []; + //-- 当是立即购买的时候 -- + for (var i = 0; i < giftsinfo.length; i++) { + var gf_item = giftsinfo[i]; + if (!gf_item.selected) continue; + var newd = { + goods_id: gf_item.goodsinfo.goods_id, + buynum: gf_item.goods_num, + pick_id: gf_pickup_id, + user_id: app.globalData.user_id, + store_id: os.stoid, + goods_price: 0, + member_goods_price: 0, + goods_name: gf_item.goodsinfo.goods_name, + goods_sn: gf_item.goodsinfo.goods_sn, + sku: gf_item.goodsinfo.sku, + is_gift: 1, + prom_id: th.data.gf_prom_id, + prom_type: 3, + selected: 1, + gift_id: gf_item.gift_id, + original_img: th.data.imgUrl + gf_item.goodsinfo.original_img, + exp_sum_type: gf_item.goodsinfo.exp_sum_type, + is_free_shipping: gf_item.goodsinfo.is_free_shipping, + weight: gf_item.goodsinfo.weight, + uniform_exp_sum: gf_item.goodsinfo.uniform_exp_sum, + uniform_exp_sum: gf_item.goodsinfo.uniform_exp_sum, + goods_spec: gf_item.goodsinfo.goods_spec, + goods_color: gf_item.goodsinfo.goods_color, + }; + //-- 如果是代发商品的时候 -- + if (gf_item.goodsinfo.whsle_id) { + newd.whsle_id = gf_item.goodsinfo.whsle_id; } - }, - //购物车购买的时候,选中和不选中搭配商品 - async select_coll_buy_cart(e){ - var th=this; - var cart_index=e.cart_index; - var index=e.index; - - var collocationList=this.data.cartlist[cart_index].collocationList; - var item=collocationList[cart_index]; - var goods=this.data.cartlist[cart_index].goods; - var txt='cartlist['+cart_index+'].goods'; - var txt2='cartlist['+cart_index+'].collocationList['+index+'].selected'; - - //-- 如果是选中 -- - if(e.selected){ - item.goods_num=1; - item.goods_price=item.price; - item.prom_type=5; - item.is_collocation=1; - - goods.push(item); - - th.setData({[txt]:goods,[txt2]:1}); - - th.data.old_cartlist=JSON.parse(JSON.stringify(this.data.cartlist)); - th.calculatePrice(); - //th.get_cart_quan(); - }else{ - var fd=goods.findIndex(function (e){ - return e.goods_id ==item.goods_id && e.prom_type ==5; - }) + new_pk_list_goods.push(newd); + } + var set_data = this.data.send_gf[th.data.bn_pick][this.data.send_gf_index]; + set_data.selected = 1; + var txt1 = "send_gf[" + gf_pickup_id + "][" + this.data.send_gf_index + "]"; - goods.splice(fd,1); - th.setData({[txt]:goods,[txt2]:0}); - th.data.old_cartlist=JSON.parse(JSON.stringify(this.data.cartlist)); + th.setData({ buy_now_gift_goods: new_pk_list_goods, [txt1]: set_data }); + th.calculatePrice2(); - th.calculatePrice(); - //th.get_cart_quan(); + } + th.close_sele_gift(); + }, + + //获取输入 + getInput: function (e) { + this.data.gift_sear = e.detail.value; + }, + //-- 搜索赠品 -- + submitSearch: function () { + var giftsinfo = this.data.giftsinfo; + if (!this.data.gift_sear) { + for (let i in giftsinfo) { + let item = giftsinfo[i]; + item.hide_div = 0; + } + } else { + for (let i in giftsinfo) { + let item = giftsinfo[i]; + item.hide_div = 0; + if (item.goods_name.indexOf(this.data.gift_sear) == -1) { + item.hide_div = 1; } - }, - - //-- 搭配购的获取搭配商品的购物车计算价格的数组格式 -- - async get_collocation_list(narr){ - var gg = to.get_b_now(); - var th=this; - var cart_arr = new Array(); - //-- 搭配促销的门店配送方式的修复 -- - var et = 1; - var distr_t = 0; // 配送方式 0=用户自选 1=自提 2=物流 - for (var hi in narr) { - var dis_t = narr[hi].distr_type; - if (dis_t == 2) { - th.setData({ is_all_zt: 0 }); - et = 0; + } + } + this.setData({ giftsinfo: giftsinfo }) + + }, + + //-- 赠品的验证 -- + sub_check_gift(func) { + var th = this; + if (th.data.send_gf) { + var error_arr = []; + for (let io in th.data.send_gf) { + let item_arr = th.data.send_gf[io]; + for (let ip in item_arr) { + var gf_pr_name = item_arr[ip].gf_pr_name; + var zp_num = item_arr[ip].zp_num; + var giftsinfo = item_arr[ip].giftsinfo; + var limit_all = 0; + var stock_all = 0; + for (let iu in giftsinfo) { + let gf_item = giftsinfo[iu]; + limit_all += gf_item.limit_num; + stock_all += gf_item.gift_storecount; + } + if (limit_all < zp_num) { + error_arr.push(gf_pr_name + "限购不足"); + } + if (stock_all < zp_num) { + error_arr.push(gf_pr_name + "赠品库存不足"); + } + } + } + + //-- 有赠品错误的时候,是不是继续下单 -- + if (error_arr.length) { + var err = error_arr.join(","); + wx.showModal({ + title: '提示', + content: err + ',无法赠送赠品,是否继续下单', + success(res) { + if (res.confirm) { + func(); + } else if (res.cancel) { + console.log('用户点击取消'); + th.setData({ + submit: 0, + }) } - if (dis_t > 0) { - distr_t = dis_t; + } + }) + } else { + + var is_ok = 1; + var error_arr = []; + for (let io in th.data.send_gf) { + let item_arr1 = th.data.send_gf[io]; + for (let ip1 in item_arr1) { + var item_b = item_arr1[ip1]; + if (!item_b.selected) { + is_ok = 0; + break; } + } + if (!is_ok) break; + } - //-- 如果有一件代发的商品或者不是同城配送的配送 -- - if(narr[hi].is_same_city!=1 || narr[hi].whsle_id>0){ - th.setData({show_same_city:0}) - } + if (!is_ok) { + getApp().confirmBox("请选择赠品"); + th.setData({ + submit: 0, + }) + return false; } - //自选的时候,系统配置了默认的配送方式是物流的时候 - if (distr_t == 0 && th.data.json_d.pickupway && th.data.json_d.pickupway == 1) { - et = 0; th.setData({ is_all_zt: 0 }); - } - - var m_wind=th.data.m_wind; - var ie = { - pickup_id: gg.pick_id, - pname: gg.pick_name, - goods: narr, - exp_type: et, - wind: m_wind, - distr_t: distr_t, - bn_t_exp_t: distr_t, - goods_price: 0, - shipping_price: 0, - user_money: 0, - total_amount: 0, - order_amount: 0, - user_note: "" - }; + func(); + } - var cart_commission=0; - //-- 循环计算一下线下取价 -- - //计算佣金的商品 - var commission_gds=[]; - for (var c = 0; c < narr.length; c++) { - var hr={ - goods_id:narr[c].goods_id, - goods_num:narr[c].goods_num, - prom_type:0, - prom_id:0, - } - commission_gds.push(hr); - } + } else { + func(); + } + }, + + //子组件返回的优化 + select_coll(e) { + console.log("--1111--aaa--"); + console.log(e); + //-- 如果是购物车的选择添加搭配商品 -- + if (e.detail.is_cart == 1) { + this.select_coll_buy_cart(e.detail); + } else { + this.select_coll_buy_now(e.detail); + } + }, + + //立即购买的时候,选中和不选中搭配商品 + async select_coll_buy_now(e) { + var th = this; + //--按钮变灰色 -- + th.setData({ submit: 1 }); + //如果是选中 + if (e.selected) { + var item = this.data.all_collocation_list[e.index]; + item.goods_num = 1; + item.goods_price = item.price; + item.is_collocation = 1; + item.prom_type = 5; + + + var coll_arr = []; + if (this.data.collocation_goods && this.data.collocation_goods.length) { + coll_arr = this.data.collocation_goods; + } + coll_arr.push(item); + this.setData({ collocation_goods: coll_arr }); + //让主商品的活动变成5,搭配购 + this.setData({ 'bn_goods.prom_type': 5, 'bn_goods.prom_id': coll_arr[0].prom_id }); + + var is_has_main = coll_arr.findIndex(function (e) { + return e.goods_id == th.data.bn_goods.goods_id; + }) + + //要进行深拷贝 + var coll_arr_new = JSON.parse(JSON.stringify(coll_arr)); + coll_arr_new.unshift(this.data.bn_goods); + + await th.get_collocation_list(coll_arr_new); + //计算价格 + th.calculatePrice2(); + th.get_cart_quan(); + + } else { + var item = this.data.all_collocation_list[e.index]; + var coll_arr = this.data.collocation_goods; + var find = coll_arr.findIndex(function (e) { + return e.goods_id == item.goods_id; + }) + coll_arr.splice(find, 1); + + //当coll_arr的长度等于1的时候,说明没有选中搭配商品,只有主商品了 + if (!coll_arr || coll_arr.length < 1) { + //让主商品的活动变成0,取消搭配购 + this.setData({ 'bn_goods.prom_type': 0, 'bn_goods.prom_id': 0, collocation_goods: [] }); + //计算价格 + th.calculatePrice2(); + //获取优惠券 + th.get_buy_now_quan(); + + } else { + this.setData({ collocation_goods: coll_arr }); + //要进行深拷贝 + var coll_arr_new = JSON.parse(JSON.stringify(coll_arr)); + coll_arr_new.unshift(this.data.bn_goods); + await th.get_collocation_list(coll_arr); + //计算价格 + th.calculatePrice2(); + th.get_cart_quan(); + } + } + }, + //购物车购买的时候,选中和不选中搭配商品 + async select_coll_buy_cart(e) { + var th = this; + var cart_index = e.cart_index; + var index = e.index; + + var collocationList = this.data.cartlist[cart_index].collocationList; + var item = collocationList[cart_index]; + var goods = this.data.cartlist[cart_index].goods; + var txt = 'cartlist[' + cart_index + '].goods'; + var txt2 = 'cartlist[' + cart_index + '].collocationList[' + index + '].selected'; + + //-- 如果是选中 -- + if (e.selected) { + item.goods_num = 1; + item.goods_price = item.price; + item.prom_type = 5; + item.is_collocation = 1; + + goods.push(item); + + th.setData({ [txt]: goods, [txt2]: 1 }); + + th.data.old_cartlist = JSON.parse(JSON.stringify(this.data.cartlist)); + th.calculatePrice(); + //th.get_cart_quan(); + + } else { + var fd = goods.findIndex(function (e) { + return e.goods_id == item.goods_id && e.prom_type == 5; + }) + + goods.splice(fd, 1); + th.setData({ [txt]: goods, [txt2]: 0 }); + th.data.old_cartlist = JSON.parse(JSON.stringify(this.data.cartlist)); + + th.calculatePrice(); + //th.get_cart_quan(); + } + }, + + //-- 搭配购的获取搭配商品的购物车计算价格的数组格式 -- + async get_collocation_list(narr) { + var gg = to.get_b_now(); + var th = this; + var cart_arr = new Array(); + //-- 搭配促销的门店配送方式的修复 -- + var et = 1; + var distr_t = 0; // 配送方式 0=用户自选 1=自提 2=物流 + for (var hi in narr) { + var dis_t = narr[hi].distr_type; + if (dis_t == 2) { + th.setData({ is_all_zt: 0 }); + et = 0; + } + if (dis_t > 0) { + distr_t = dis_t; + } + + //-- 如果有一件代发的商品或者不是同城配送的配送 -- + if (narr[hi].is_same_city != 1 || narr[hi].whsle_id > 0) { + th.setData({ show_same_city: 0 }) + } + } + //自选的时候,系统配置了默认的配送方式是物流的时候 + if (distr_t == 0 && th.data.json_d.pickupway && th.data.json_d.pickupway == 1) { + et = 0; th.setData({ is_all_zt: 0 }); + } - //获取购物车的佣金,此处要优化调用接口,获取佣金 - var req_d = { - user_id:getApp().globalData.user_id,goods_ids:commission_gds,store_id: os.stoid - } - var back_data=null; - await getApp().request.promisePost("/api/weshop/order/getrebateSum", { - is_json: 1, data: req_d - }).then(rs => { - if (rs.data.code == 0) back_data =rs.data.data; - }); + var m_wind = th.data.m_wind; + var ie = { + pickup_id: gg.pick_id, + pname: gg.pick_name, + goods: narr, + exp_type: et, + wind: m_wind, + distr_t: distr_t, + bn_t_exp_t: distr_t, + goods_price: 0, + shipping_price: 0, + user_money: 0, + total_amount: 0, + order_amount: 0, + user_note: "" + }; + + var cart_commission = 0; + //-- 循环计算一下线下取价 -- + //计算佣金的商品 + var commission_gds = []; + for (var c = 0; c < narr.length; c++) { + var hr = { + goods_id: narr[c].goods_id, + goods_num: narr[c].goods_num, + prom_type: 0, + prom_id: 0, + } + commission_gds.push(hr); - if(back_data && parseFloat(back_data)) { - ie.can_usecommise =parseFloat(back_data); - cart_commission = ie.can_usecommise; - } + } - cart_arr.push(ie); - if(cart_commission){ - th.setData({cart_commission}); - } + //获取购物车的佣金,此处要优化调用接口,获取佣金 + var req_d = { + user_id: getApp().globalData.user_id, goods_ids: commission_gds, store_id: os.stoid + } + var back_data = null; + await getApp().request.promisePost("/api/weshop/order/getrebateSum", { + is_json: 1, data: req_d + }).then(rs => { + if (rs.data.code == 0) back_data = rs.data.data; + }); + + if (back_data && parseFloat(back_data)) { + ie.can_usecommise = parseFloat(back_data); + cart_commission = ie.can_usecommise; + } - th.data.old_cartlist = cart_arr; + cart_arr.push(ie); + if (cart_commission) { + th.setData({ cart_commission }); } + th.data.old_cartlist = cart_arr; + } + diff --git a/pages/cart/cart2_inte/cart2_inte.js b/pages/cart/cart2_inte/cart2_inte.js index ece1c07..daebd2f 100644 --- a/pages/cart/cart2_inte/cart2_inte.js +++ b/pages/cart/cart2_inte/cart2_inte.js @@ -31,7 +31,7 @@ Page({ couponCode: "",//使用优惠券(多单就用逗号隔开) shipping_price: 0,//物流费用 }, - + inv_is_post:0,//积分购是否包邮 /*----------------立即购买---------------------*/ is_b_now: 1, //0是购物车结算 1立即购买 @@ -410,7 +410,7 @@ Page({ th.setData({ bn_goods: t.data.data, bn_pickname: gg.pick_name, bn_exp_type: et, index: m_wind, - bn_pick: gg.pick_id, bn_t_exp_t: distr_t, bn_exp_type: et + bn_pick: gg.pick_id, bn_t_exp_t: distr_t, bn_exp_type: et,inv_is_post:inte_data.is_post }); //计算价格 th.calculatePrice2(); @@ -490,7 +490,7 @@ Page({ var out_of_weight = null; //超出多少重量 //-----------当地址不为空,且是物流时,计算物流费用,并同时商品不是优惠活动的包邮---------- - if (th.data.user_addr != null && th.data.bn_exp_type == 0 && good.is_free_shipping == 0 && good.is_past != 1) { + if (th.data.user_addr != null && th.data.bn_exp_type == 0 && good.is_free_shipping == 0 && good.is_past != 1 && !th.data.inv_is_post) { var user_addr=th.data.user_addr; var req_d = { diff --git a/pages/goods/goodsInfo/goodsInfo.js b/pages/goods/goodsInfo/goodsInfo.js index 8f47225..6b4a18a 100644 --- a/pages/goods/goodsInfo/goodsInfo.js +++ b/pages/goods/goodsInfo/goodsInfo.js @@ -37,7 +37,7 @@ Page({ resourceUrl: o.h5_url, //公众号那边的图片文件域名 iurl: o.imghost, defaultAvatar: o.resourceUrl + "/static/images/user68.jpg", - + userbuynum:0,//用户组合购购买的次数 data: null, content: "", //商品详情 comments: null, //商品评论 @@ -965,6 +965,7 @@ Page({ th.setData({ zh_act: e.data.data }); + th.getUserBuyPromNum(e.data.data.id) } } @@ -1422,7 +1423,21 @@ Page({ }) }, - + 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 + } + this.setData({ + userbuynum + }) + // return userbuynum + }, //-- 加入购物的函数 -- add_cart_func: function (t) { var i = getApp().request; @@ -2050,33 +2065,80 @@ Page({ //这一步主要是要让立即购买 走 购物车的逻辑 参与活动 if (newd.prom_type == 10 || newd.prom_type == 7) { - //----先看会员在购物车中是否加入了该商品,立即购买的----- - getApp().request.get("/api/weshop/cart/page", { - data: { - store_id: e.data.stoid, - user_id: oo.user_id, - state: 1 - }, - success: function (res) { - //-------如果购物车中有相关的数据--------- - if (res.data.code == 0 && res.data.data.total > 0) { - for (let j in res.data.data.pageData) { - let item_j = res.data.data.pageData[j]; - var url = '/api/weshop/cart/del/' + e.data.stoid + '/' + item_j.id; - getApp().request.delete(url, {}); - } + if(newd.prom_type==7 && th.data.zh_act && th.data.zh_act.buy_limit !=0 && th.data.zh_act.buy_limit <= th.data.userbuynum && th.data.zh_act.zhbuyqty <= th.data.goodsInputNum){ + wx.hideLoading() + + wx.showModal({ + title: '提示', + // content: `商品${str},组合购活动,购买次数已超,将以普通商品购买?`, + content: `${th.data.data.goods_name}超出组合购限购次数,将以普通商品购买`, + success:res=>{ + if (res.confirm) { + console.log('用户点击确定') + //----先看会员在购物车中是否加入了该商品,立即购买的----- + getApp().request.get("/api/weshop/cart/page", { + data: { + store_id: e.data.stoid, + user_id: oo.user_id, + state: 1 + }, + success: function (res) { + //-------如果购物车中有相关的数据--------- + if (res.data.code == 0 && res.data.data.total > 0) { + for (let j in res.data.data.pageData) { + let item_j = res.data.data.pageData[j]; + var url = '/api/weshop/cart/del/' + e.data.stoid + '/' + item_j.id; + getApp().request.delete(url, {}); + } + } + newd.state = 1; + newd.prom_type=0; + newd.prom_id=0 + getApp().request.post("/api/weshop/cart/save", { + data: newd, + success: function (t) { + th.closeSpecModal(); + getApp().goto("/pages/cart/cart2/cart2?state=1"); + } + }); + } + }) + } else if (res.cancel) { + + console.log('用户点击取消') } - newd.state = 1; - getApp().request.post("/api/weshop/cart/save", { - data: newd, - success: function (t) { - th.closeSpecModal(); - getApp().goto("/pages/cart/cart2/cart2?state=1"); + } + }) + return false + }else{ + //----先看会员在购物车中是否加入了该商品,立即购买的----- + getApp().request.get("/api/weshop/cart/page", { + data: { + store_id: e.data.stoid, + user_id: oo.user_id, + state: 1 + }, + success: function (res) { + //-------如果购物车中有相关的数据--------- + if (res.data.code == 0 && res.data.data.total > 0) { + for (let j in res.data.data.pageData) { + let item_j = res.data.data.pageData[j]; + var url = '/api/weshop/cart/del/' + e.data.stoid + '/' + item_j.id; + getApp().request.delete(url, {}); + } } - }); - } - }) - return false; + newd.state = 1; + getApp().request.post("/api/weshop/cart/save", { + data: newd, + success: function (t) { + th.closeSpecModal(); + getApp().goto("/pages/cart/cart2/cart2?state=1"); + } + }); + } + }) + return false; + } } if (th.data.prom_goods) { diff --git a/pages/goods/goodsInfo/goodsInfo.wxml b/pages/goods/goodsInfo/goodsInfo.wxml index a612018..7d5b45d 100644 --- a/pages/goods/goodsInfo/goodsInfo.wxml +++ b/pages/goods/goodsInfo/goodsInfo.wxml @@ -6,7 +6,7 @@ - + 规则 @@ -16,21 +16,21 @@ - - + + @@ -273,7 +273,7 @@ - + 零售价:¥{{filters.toFix(data.market_price,2)}} - ¥{{filters.toFix(data.shop_price,2)}} + ¥{{filters.toFix(data.shop_price,2)}} - - - + + + {{sele_g.goods_name}} - - - {{sele_g.goods_name}} - - - - + + + {{sele_g.goods_name}} + + + + @@ -468,7 +468,7 @@ - + 总数量:{{prom_act.goods_num+prom_act.virtualNum}}件 @@ -492,62 +492,65 @@ - + - - - 阶梯促 - - - - {{jieti_prom}} + + + 阶梯促 + + + + {{jieti_prom}} + + + + - - - - @@ -590,12 +593,11 @@ - + 秒杀 - + @@ -614,7 +616,7 @@ - + 领券 @@ -625,20 +627,20 @@ - + - - - + + + 选择门店 - + @@ -671,7 +673,7 @@ - {{bconfig.service_bz}} + {{bconfig.service_bz}} {{bconfig.service_bz}} @@ -1029,11 +1031,11 @@ 客服 --> - - - - 客服 - + + + + 客服 + @@ -1071,11 +1073,11 @@ - 单独购买 - 即将开始 + 单独购买 + 即将开始 - 即将开始 + 即将开始 @@ -1255,11 +1257,11 @@ - + 选择门店 - + (库存不足) @@ -1530,7 +1532,8 @@ - {{choice_sort_store==0?'更多门店':'返回'}} + {{choice_sort_store==0?'更多门店':'返回'}} + @@ -1696,12 +1699,12 @@ 提示 - - 该商品有参与{{item.act_name}} {{tool.act_type(item.prom_type)}} 活动 - 去参与 - + + 该商品有参与{{item.act_name}} {{tool.act_type(item.prom_type)}} 活动 + 去参与 + + - @@ -1712,30 +1715,30 @@ - 规则详情 - - - - 活动时间 - {{filters.format_time(prom_act.start_time,1)}} 至 {{filters.format_time(prom_act.end_time,1)}} - - - - 活动内容: - - {{prom_act.remark?prom_act.remark:'暂无'}} - - - - - - 我知道了 - - + 规则详情 + + + + 活动时间 + {{filters.format_time(prom_act.start_time,1)}} 至 {{filters.format_time(prom_act.end_time,1)}} + + + + 活动内容: + + {{prom_act.remark?prom_act.remark:'暂无'}} + + + + + + 我知道了 + + - + \ No newline at end of file diff --git a/pages/user/order_detail/order_detail.js b/pages/user/order_detail/order_detail.js index 6de7ccf..1df2a5c 100644 --- a/pages/user/order_detail/order_detail.js +++ b/pages/user/order_detail/order_detail.js @@ -391,9 +391,11 @@ Page({ if(good.prom_type==7){ //如果有组合购 var isok = 1; + let zh_buy_info=null var url="/api/weshop/prom/zhbuy/get/"+os.stoid+"/"+good.prom_id+"/"+getApp().globalData.userInfo.user_id; await getApp().request.promiseGet(url, {}).then(res => { if(res.data.code==0 && res.data.data){ + zh_buy_info = res.data.data if(res.data.data.is_show!=1){ isok=0; } @@ -423,6 +425,15 @@ Page({ return false; } + //增加组合购次数判断 + let userbuynum = await th.getUserBuyPromNum(good.prom_id) + if (zh_buy_info && userbuynum >= zh_buy_info.buy_limit) { + var content = gg.goods_name + '超出组合购限购次数,请取消订单'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + var url1 = "/api/weshop/prom/zhbuyGoods/page"; var req_data = { page: 1, @@ -999,7 +1010,19 @@ Page({ } func(ob) }, - + //获取用户参与组合购的次数 + 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 + }, //再来一单的功能的实现 moreOrder:function(e){ diff --git a/pages/user/order_list/order_list.js b/pages/user/order_list/order_list.js index 03ccf24..a69f292 100644 --- a/pages/user/order_list/order_list.js +++ b/pages/user/order_list/order_list.js @@ -1,19 +1,19 @@ const app = getApp(); let self = null; -var t = function(t) { - return t && t.__esModule ? t : { - default: t - }; - }(require("../../../utils/LoadMore.js")), +var t = function (t) { + return t && t.__esModule ? t : { + default: t + }; +}(require("../../../utils/LoadMore.js")), e = getApp(), os = e.globalData.setting, oo = e.globalData, r = e.request, rq = r, - a = require("../../../utils/common.js"), + a = require("../../../utils/common.js"), s = new t.default(); var regeneratorRuntime = require('../../../utils/runtime.js'); -var ut= require('../../../utils/util.js'); +var ut = require('../../../utils/util.js'); var t = require("../../../utils/pay.js"); Page({ @@ -37,13 +37,13 @@ Page({ name: "待评价", id: 4 }], - tab_serviceCard: [{ + tab_serviceCard: [{ name: "全部", id: 0, - },{ + }, { name: "待付款", id: 1, - },{ + }, { name: "待评价", id: 2, }], @@ -54,376 +54,351 @@ Page({ is_get: 0, conf: null, iscodeall: null, - sales_rules:1, //默认是显示线上库存 - - //会员的等级价位 - card_field:null, - - back_goods_arr:null, //返回商品的列表 - currentIndex: 0, - tabIndex: 0, - - startDate: '', - endDate: '', - list2: [], - currentPage2: 1, - currentDate: '', - total: 0, //读取时段内记录数量 - is_no_data2: 0, - is_no_more2: 0, - - cardList: [], - // 搜索内容 - searchContent: '', + sales_rules: 1, //默认是显示线上库存 + + //会员的等级价位 + card_field: null, + + back_goods_arr: null, //返回商品的列表 + currentIndex: 0, + tabIndex: 0, + + startDate: '', + endDate: '', + list2: [], + currentPage2: 1, + currentDate: '', + total: 0, //读取时段内记录数量 + is_no_data2: 0, + is_no_more2: 0, + + cardList: [], + // 搜索内容 + searchContent: '', }, onLoad: function (t) { - self = this; - // 设置日期选择器的结束时间为当前日期 - var now = new Date(); - var nowDate = now.getFullYear() + '-' + (now.getMonth() + 1) + '-' + now.getDate(); - var date = new Date(now.getTime() - 7 * 24 * 3600 * 1000); - var startDate = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate(); - - - if (t.index && t.tabindex) { - this.setData({ - currentIndex: t.index, - tabIndex: t.tabindex, - }); - this.clickTab(); - } - - this.setData({ - currentDate: this.currentDate(), - startDate: startDate, - endDate: nowDate, - }); - - var th = this; - if (t.type != undefined) this.setData({ - activeCategoryId: t.type - }); - - s.init(this, "", "orderList"); - - if(!getApp().globalData.user_id){ - - - wx.showModal({ - title: '提示', - content: '当前账号未登录,请先登录!', - success (res) { - if (res.confirm) { - getApp().goto('/packageE/pages/togoin/togoin'); - } else if (res.cancel) { - console.log('用户点击取消') - } - } - }) - + self = this; + // 设置日期选择器的结束时间为当前日期 + var now = new Date(); + var nowDate = now.getFullYear() + '-' + (now.getMonth() + 1) + '-' + now.getDate(); + var date = new Date(now.getTime() - 7 * 24 * 3600 * 1000); + var startDate = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate(); + + + if (t.index && t.tabindex) { + this.setData({ + currentIndex: t.index, + tabIndex: t.tabindex, + }); + this.clickTab(); + }; - } + this.setData({ + currentDate: this.currentDate(), + startDate: startDate, + endDate: nowDate, + }); + var th = this; + if (t.type != undefined) this.setData({ + activeCategoryId: t.type + }); + s.init(this, "", "orderList"); }, + onShow: function () { + var th = this; + //---查看会员的等级价--- + getApp().getConfig2(function (e) { + + + + th.setData({ conf: e, sales_rules: e.sales_rules }); + //--- 看后台是不是有开通等级卡 --- + if (e.switch_list) { + var s_list = JSON.parse(e.switch_list); + th.setData({ appoint_pick_keyid: s_list.appoint_pick_keyid }) + + var user = getApp().globalData.userInfo; + var is_open_offline = s_list.is_pricing_open; + //-- 如果后台有开启等级价的功能 -- + if (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 }) + } + } + //-- 判断有没有过期 -- + 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; + } + } - onShow: function() { - - if(!getApp().globalData.user_id){ - return false; - } - + th.data.is_open_offline = is_open_offline; + }) + } + }, 1) - var th=this; - //---查看会员的等级价--- - getApp().getConfig2(function(e) { - - th.setData({conf: e,sales_rules:e.sales_rules }); - //--- 看后台是不是有开通等级卡 --- - if(e.switch_list){ - var s_list=JSON.parse(e.switch_list); - th.setData({appoint_pick_keyid:s_list.appoint_pick_keyid}) - - var user=getApp().globalData.userInfo; - var is_open_offline=s_list.is_pricing_open; - //-- 如果后台有开启等级价的功能 -- - if(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{ - //未购买 - 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 (res.data.code == 0) { + data[ind]['presell'] = res.data.data; + data[ind]['ord_url'] = '/packageC/pages/presell/cart/cart'; + } + }) } - this.setData({activeCategoryId: t}); - r = r + "&page=" + e.data.currentPage; - s.request(r, function (t) { - - th.setData({is_get: 1}); - var data = e.data.orderList; - data.forEach(async function (item, ind) { - var tt = null; - await getApp().request.promiseGet('/api/weshop/ordergoods/list', { - data: {order_id: item.order_id, store_id: os.stoid, pageSize: 600}, - }).then(res => { - tt = res; - }) - var glist = tt.data.data.pageData; - for (var i in glist) { - if (glist[i].is_gift) { - data[ind].is_prom = 1; - } + // 如果是幸运购活动 + if (glist[0].prom_type == 9) { + await getApp().request.promiseGet('/api/weshop/prom/luckyOrder/list', { + data: { + store_id: os.stoid, + user_id: oo.user_id, + order_id: item.order_id, + } + }).then(res => { + if (res.data.code == 0) { + // console.log('luckyGo+++++++++>>>', res.data.data); + // data[ind]['team_status'] = res.data.data[0]['team_status']; + if (res.data.data[0] && res.data.data[0]['team_status']) { + data[ind]['team_status'] = res.data.data[0]['team_status']; + } else { + data[ind]['team_status'] = 0; + }; + + // data[ind]['ord_url']='/packageC/pages/presell/cart/cart'; + } + }) + } + //------------对比一下有没有退款记录------------ + await getApp().request.promiseGet("/api/weshop/order/returngoods/page", { + data: { + order_id: item.order_id, store_id: os.stoid, + user_id: oo.user_id, pageSize: 20 + } + }).then(rs => { + var ttd = rs; + //--看一下订单的总数量-- + var gtype_num = tt.data.data.total; + if (ttd.data.data.pageData == undefined) return false; + var goodslist = tt.data.data.pageData; + + //----没有相关的退款记录---- + if (ttd.data.data.total == 0) { + data[ind]['is_all_return'] = 0; + goodslist.forEach(function (ee, ii) { + if (data[ind]['order_status'] == 1 && data[ind]['pay_status'] == 1 && gtype_num > 1) { + item.goodslist = goodslist; + if (th.check_for_return_btn(item)) { + goodslist[ii]['return_btn'] = 1; } + } - data[ind]['ord_url']='/pages/user/order_detail/order_detail'; - //-- 如果是优惠活动 -- - if(glist[0].prom_type==8){ - await getApp().request.promiseGet('/api/weshop/order/orderPresell/get/'+os.stoid+'/'+item.order_id, { - }).then(res => { - if(res.data.code==0){ - data[ind]['presell'] = res.data.data; - data[ind]['ord_url']='/packageC/pages/presell/cart/cart'; - } - }) + }); + } else { + //--------整单退-------- + if (ttd.data.data.pageData[0]['goods_id_list'] != null + && ttd.data.data.pageData[0]['goods_id_list'] != '') { + var eea = ttd.data.data.pageData[0]; + //1.退款正在进行中, + //2.退款被拒绝就要显示可以退款 + //3.退款已经完成 + data[ind]['is_all_return'] = 1; + data[ind]['is_all_return_status'] = ttd.data.data.pageData[0].status; + + if (data[ind]['order_status'] == 1 && data[ind]['pay_status'] == 1) { + switch (eea.status) { + case 0: + case 1: + data[ind]['return_btn'] = 2; + break; + case 2: + data[ind]['return_btn'] = 4; + break; + case 3: + data[ind]['return_btn'] = 3; + break; + default: + data[ind]['return_btn'] = 0; } - // 如果是幸运购活动 - if(glist[0].prom_type==9){ - await getApp().request.promiseGet('/api/weshop/prom/luckyOrder/list', { - data: { - store_id: os.stoid, - user_id: oo.user_id, - order_id: item.order_id, - } - }).then(res => { - if(res.data.code==0){ - // console.log('luckyGo+++++++++>>>', res.data.data); - // data[ind]['team_status'] = res.data.data[0]['team_status']; - if(res.data.data[0] && res.data.data[0]['team_status']) { - data[ind]['team_status'] = res.data.data[0]['team_status']; - } else { - data[ind]['team_status'] = 0; - }; - - // data[ind]['ord_url']='/packageC/pages/presell/cart/cart'; - } - }) - } - //------------对比一下有没有退款记录------------ - await getApp().request.promiseGet("/api/weshop/order/returngoods/page", { - data: { - order_id: item.order_id, store_id: os.stoid, - user_id: oo.user_id, pageSize: 20 - } - }).then(rs => { - var ttd = rs; - //--看一下订单的总数量-- - var gtype_num = tt.data.data.total; - if (ttd.data.data.pageData == undefined) return false; - var goodslist = tt.data.data.pageData; - - //----没有相关的退款记录---- - if (ttd.data.data.total == 0) { - data[ind]['is_all_return'] = 0; - goodslist.forEach(function (ee, ii) { - if (data[ind]['order_status'] == 1 && data[ind]['pay_status'] == 1 && gtype_num > 1) { - item.goodslist = goodslist; - if (th.check_for_return_btn(item)) { - goodslist[ii]['return_btn'] = 1; - } - } - - }); - } else { - //--------整单退-------- - if (ttd.data.data.pageData[0]['goods_id_list'] != null - && ttd.data.data.pageData[0]['goods_id_list'] != '') { - var eea = ttd.data.data.pageData[0]; - //1.退款正在进行中, - //2.退款被拒绝就要显示可以退款 - //3.退款已经完成 - data[ind]['is_all_return'] = 1; - data[ind]['is_all_return_status'] = ttd.data.data.pageData[0].status; - - if (data[ind]['order_status'] == 1 && data[ind]['pay_status'] == 1) { - switch (eea.status) { - case 0: - case 1: - data[ind]['return_btn'] = 2; - break; - case 2: - data[ind]['return_btn'] = 4; - break; - case 3: - data[ind]['return_btn'] = 3; - break; - default: - data[ind]['return_btn'] = 0; - } - } - } else { - //1.退款正在进行中, - //2.退款被拒绝就要显示可以退款 - //3.退款已经完成 - data[ind]['is_all_return'] = 0; - var rt_ok_num = 0; - //if(data[ind]['order_status'] == 1 && data[ind]['pay_status'] == 1) { - goodslist.forEach(function (eeb, iii) { - if (data[ind]['order_status'] == 1 && data[ind]['pay_status'] == 1) - goodslist[iii]['return_btn'] = 1; //申请退款 - ttd.data.data.pageData.forEach(function (eea, ii) { - var st = eea.status; - if (eea.goods_id == eeb.goods_id) { - switch (eea.status) { - case 0: - case 1://退款处理中 - data[ind]['has_rt'] = 1; //有部分退 - goodslist[iii]['return_btn'] = 2; - break; - case 2://退款完成 - data[ind]['has_rt'] = 1; //有部分退 - goodslist[iii]['return_btn'] = 4; - rt_ok_num++; - break; - case 3://已拒绝,重新退款 - goodslist[iii]['return_btn'] = 3; - break; - default: - if (data[ind]['order_status'] == 1 && data[ind]['pay_status'] == 1) - goodslist[iii]['return_btn'] = 1; //申请退款 - } - return; - } - }); - }); - //} - } + } + } else { + //1.退款正在进行中, + //2.退款被拒绝就要显示可以退款 + //3.退款已经完成 + data[ind]['is_all_return'] = 0; + var rt_ok_num = 0; + //if(data[ind]['order_status'] == 1 && data[ind]['pay_status'] == 1) { + goodslist.forEach(function (eeb, iii) { + if (data[ind]['order_status'] == 1 && data[ind]['pay_status'] == 1) + goodslist[iii]['return_btn'] = 1; //申请退款 + ttd.data.data.pageData.forEach(function (eea, ii) { + var st = eea.status; + if (eea.goods_id == eeb.goods_id) { + switch (eea.status) { + case 0: + case 1://退款处理中 + data[ind]['has_rt'] = 1; //有部分退 + goodslist[iii]['return_btn'] = 2; + break; + case 2://退款完成 + data[ind]['has_rt'] = 1; //有部分退 + goodslist[iii]['return_btn'] = 4; + rt_ok_num++; + break; + case 3://已拒绝,重新退款 + goodslist[iii]['return_btn'] = 3; + break; + default: + if (data[ind]['order_status'] == 1 && data[ind]['pay_status'] == 1) + goodslist[iii]['return_btn'] = 1; //申请退款 } + return; + } + }); + }); + //} + } + } + + //--如果是全部退款,也就可以删除-- + if (rt_ok_num == goodslist.length) { + data[ind]['is_all_return_status'] = 2; + } - //--如果是全部退款,也就可以删除-- - if (rt_ok_num == goodslist.length) { - data[ind]['is_all_return_status'] = 2; - } + data[ind]['order_goods'] = goodslist; + var g_num = 0; + goodslist.forEach(function (ee, ii) { + if (ee.return_btn != 4) + g_num += ee.goods_num; + }); + data[ind]['g_num'] = g_num; + }) - data[ind]['order_goods'] = goodslist; - var g_num = 0; - goodslist.forEach(function (ee, ii) { - if (ee.return_btn != 4) - g_num += ee.goods_num; - }); - data[ind]['g_num'] = g_num; - }) + data[ind].use_commission = 0; + //-- 如果有数据的话 -- + await getApp().request.promiseGet("/api/weshop/orderMore/get/" + os.stoid + "/" + item.order_sn, { - data[ind].use_commission=0; - //-- 如果有数据的话 -- - await getApp().request.promiseGet("/api/weshop/orderMore/get/"+os.stoid + "/"+item.order_sn, { + }).then(res => { + if (res.data.code == 0 && res.data.data) { + data[ind].use_commission = res.data.data.use_commission; + } + }) - }).then(res=>{ - if(res.data.code == 0 && res.data.data){ - data[ind].use_commission=res.data.data.use_commission; - } - }) + th.setData({ orderList: data, }); - th.setData({orderList: data,}); + }); - }); + e.data.currentPage++, + wx.stopPullDownRefresh(); + }, null, { store_id: os.stoid, user_id: oo.user_id }); + }, - e.data.currentPage++ , - wx.stopPullDownRefresh(); - }, null, {store_id: os.stoid, user_id: oo.user_id}); - }, - //滑倒底部 - onReachBottom: function() { - if(this.data.currentIndex == 0) { - if (s.data.goodsLoadFinishFlag) { - this.setData({ - iscodeall: 1 - }) - } - s.canloadMore() && this.requestOrderList(this.data.activeCategoryId); - } else { - if(this.data.currentIndex == 1) { - this.request_list({ - store_id: os.stoid, - user_id: oo.user_id, - page: this.data.currentPage2, - }); - } else { // 卡项订单 - this.request_list({ - store_id: os.stoid, - user_id: oo.user_id, - page: this.data.currentPage2, - }); - } - - } + onReachBottom: function () { + if (this.data.currentIndex == 0) { + if (s.data.goodsLoadFinishFlag) { + this.setData({ + iscodeall: 1 + }) + } + s.canloadMore() && this.requestOrderList(this.data.activeCategoryId); + } else { + if (this.data.currentIndex == 1) { + this.request_list({ + store_id: os.stoid, + user_id: oo.user_id, + page: this.data.currentPage2, + }); + } else { // 卡项订单 + this.request_list({ + store_id: os.stoid, + user_id: oo.user_id, + page: this.data.currentPage2, + }); + } + + } }, - - onPullDownRefresh: function(t) { - // sty取消 + + onPullDownRefresh: function (t) { + // sty取消 // this.resetData(), this.requestOrderList(this.data.activeCategoryId); }, /*-----------取消订单-----------*/ - cancelOrder: function(t) { + cancelOrder: function (t) { var e = this, a = t.currentTarget.dataset.id, th = this; @@ -433,7 +408,7 @@ Page({ var is_skill = 0; var order_goods = order.order_goods; //--判断是不是秒杀-- - order_goods.forEach(function(val, ind) { + order_goods.forEach(function (val, ind) { if (val.prom_type == 1) { is_skill = 1; return false; @@ -442,13 +417,13 @@ Page({ wx.showModal({ title: "是否取消订单?", - success: function(t) { + success: function (t) { //如果是秒杀和拼单的商品,取消订单要返回redis,并取消订单 if (t.confirm) { //if(is_skill==1 || is_zsorder>=2){ - getApp().request.post("/api/weshop/order/cancelOrder/"+os.stoid+"/"+a+"/"+getApp().globalData.user_id, { + getApp().request.post("/api/weshop/order/cancelOrder/" + os.stoid + "/" + a + "/" + getApp().globalData.user_id, { data: {}, - success: function(t) { + success: function (t) { if (t.data.code == 0) { 0 == e.data.activeCategoryId ? (e.resetData(), e.requestOrderList(e.data.activeCategoryId)) : e.deleteOrderData2(a); @@ -463,42 +438,42 @@ Page({ }, /*-----------确认收货-----------*/ - confirmOrder: function(t) { - var e = this,a = t.currentTarget.dataset.id; + confirmOrder: function (t) { + var e = this, a = t.currentTarget.dataset.id; var is_zsorder = t.currentTarget.dataset.zsorder; var th = this; wx.showModal({ title: "是否确认收货?", - success: function(t) { - t.confirm && rq.post("/api/weshop/order/confirmOrder/"+os.stoid+"/"+a+"/"+getApp().globalData.user_id,{ - success:function (e) { - if(e.data.code==0){ - th.deleteOrderData2(a); - getApp().confirmBox( "确认收货成功!"); - } + success: function (t) { + t.confirm && rq.post("/api/weshop/order/confirmOrder/" + os.stoid + "/" + a + "/" + getApp().globalData.user_id, { + success: function (e) { + if (e.data.code == 0) { + th.deleteOrderData2(a); + getApp().confirmBox("确认收货成功!"); } - }) + } + }) } }); }, //-----删除订单----- - deleteOrderData: function(t) { + deleteOrderData: function (t) { var th = this; var order_id = t.currentTarget.dataset.order_id; var index = t.currentTarget.dataset.index; - var up_data={order_id: order_id,isdel:1}; - var order=th.data.orderList[index]; - if(order.order_status!=6){ - up_data.order_status=5; - } + var up_data = { order_id: order_id, isdel: 1 }; + var order = th.data.orderList[index]; + if (order.order_status != 6) { + up_data.order_status = 5; + } wx.showModal({ title: "是否删除订单?", - success: function(tt) { + success: function (tt) { tt.confirm && rq.put("/api/weshop/order/updatebyId", { data: up_data, - success: function(t) { + success: function (t) { for (var e = 0; e < th.data.orderList.length; e++) if (th.data.orderList[e].order_id == order_id) { th.data.orderList.splice(e, 1), th.setData({ @@ -513,47 +488,47 @@ Page({ }, //-----删除订单(完成和带评价的)----- - deleteOrderData_: function(t) { - var th = this; - var order_id = t.currentTarget.dataset.order_id; - var index = t.currentTarget.dataset.index; - var up_data={order_id: order_id,isdel:1}; + deleteOrderData_: function (t) { + var th = this; + var order_id = t.currentTarget.dataset.order_id; + var index = t.currentTarget.dataset.index; + var up_data = { order_id: order_id, isdel: 1 }; - wx.showModal({ - title: "是否删除订单?", - success: function(tt) { - tt.confirm && rq.put("/api/weshop/order/updatebyId", { - data: up_data, - success: function(t) { - for (var e = 0; e < th.data.orderList.length; e++) - if (th.data.orderList[e].order_id == order_id) { - th.data.orderList.splice(e, 1), th.setData({ - orderList: th.data.orderList - }); - break; - } - } - }) - } - }); - }, + wx.showModal({ + title: "是否删除订单?", + success: function (tt) { + tt.confirm && rq.put("/api/weshop/order/updatebyId", { + data: up_data, + success: function (t) { + for (var e = 0; e < th.data.orderList.length; e++) + if (th.data.orderList[e].order_id == order_id) { + th.data.orderList.splice(e, 1), th.setData({ + orderList: th.data.orderList + }); + break; + } + } + }) + } + }); + }, //-----删除订单----- - deleteSerOrderData: function(t) { + deleteSerOrderData: function (t) { var th = this; var order_id = t.currentTarget.dataset.orderid; let order_sn = t.currentTarget.dataset.ordersn; var index = t.currentTarget.dataset.index; - // var up_data={order_id: order_id,isdel:1}; - // var order=th.data.orderList[index]; - // if(order.order_status!=6){ - // up_data.order_status=5; - // } + // var up_data={order_id: order_id,isdel:1}; + // var order=th.data.orderList[index]; + // if(order.order_status!=6){ + // up_data.order_status=5; + // } wx.showModal({ title: "是否删除订单?", - success: function(tt) { + success: function (tt) { tt.confirm && rq.put("/api/weshop/recharge/update", { data: { store_id: os.stoid, @@ -561,9 +536,9 @@ Page({ order_sn: order_sn, order_status: 5, }, - success: function(t) { + success: function (t) { let cardList = th.data.cardList - cardList.splice(index,1) + cardList.splice(index, 1) th.setData({ cardList }) @@ -580,7 +555,7 @@ Page({ }); }, - deleteOrderData2: function(order_id) { + deleteOrderData2: function (order_id) { var th = this; for (var e = 0; e < th.data.orderList.length; e++) if (th.data.orderList[e].order_id == order_id) { @@ -592,7 +567,7 @@ Page({ }, //---判断是不是有退款----- - checkReturnGoodsStatus: function(t) { + checkReturnGoodsStatus: function (t) { var e = t.currentTarget.dataset.recid; var oid = t.currentTarget.dataset.oid; r.get("/api/weshop/order/returngoods/page", { @@ -601,7 +576,7 @@ Page({ order_id: oid, store_id: os.stoid }, - success: function(t) { + success: function (t) { if (t.data.code == 0) { var r = t.data.data.total; if (0 == r) return wx.navigateTo({ @@ -621,668 +596,661 @@ Page({ } }); }, - /*----------跳转支付-----------*/ - async jumpToCart4(t) { - - if(this.data.paying) return false; - //this.setData({paying:1}); - var o_index = t.currentTarget.dataset.idx; - var txt="paying["+o_index+"]"; - this.setData({[txt]:1}); - - - var e = this.data.orderList[o_index]; - var th = this; - var order = e; - var order_goods = e.order_goods; - var user_id=getApp().globalData.userInfo.user_id; - - // 幸运购检查库存量 api/weshop/activitylist/getActLen/{store_id}/{prom_type}/{prom_id} - if (parseInt(order_goods['0']['prom_type']) == 9) { - var aid = order_goods['0']['prom_id']; - var knum = 0; - await r.promiseGet('/api/weshop/activitylist/getActLen/' + os.stoid + '/9/' + aid, { - }).then(res => { - if (res.data.code == 0) { - knum = res.data.data; - } - - }); + /*----------跳转支付-----------*/ + async jumpToCart4(t) { - if (knum <= 0) { - getApp().confirmBox("库存为0,支付失败"); - th.setData({paying:0}); - return false; - } + if (this.data.paying) return false; + // this.setData({ paying: 1 }); + var o_index = t.currentTarget.dataset.idx; + var txt="paying["+o_index+"]"; + this.setData({[txt]:1}); + var e = this.data.orderList[o_index]; + var th = this; + var order = e; + var order_goods = e.order_goods; + var user_id = getApp().globalData.userInfo.user_id; + + // 幸运购检查库存量 api/weshop/activitylist/getActLen/{store_id}/{prom_type}/{prom_id} + if (parseInt(order_goods['0']['prom_type']) == 9) { + var aid = order_goods['0']['prom_id']; + var knum = 0; + await r.promiseGet('/api/weshop/activitylist/getActLen/' + os.stoid + '/9/' + aid, { + }).then(res => { + if (res.data.code == 0) { + knum = res.data.data; } - var wlist = ""; - for (var i in order_goods) { - var good = order_goods[i]; - //线下取价功能已经关闭或者过期 - if (!th.data.is_open_offline && good.offline_cut > 0) { - wx.showModal({ - title: '提示', - content: '线下取价功能已经关闭或者过期!' - }); - th.setData({paying:0}); - return false; - } - - //要每件每件的商品进行检查,看有么有超出库存,超出限购 - var good = order_goods[i], goodsbuynum = 0, promgoodsbuynum = 0, gg = null,presellList=null; + }); - //获取单品的现在的活动状态 - await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + good.goods_id, {}).then(res => { - gg = res.data.data; - }) - var limit = gg.viplimited; - var store_count = gg.store_count; - good.erpwareid = gg.erpwareid; - - //---要获得商品,该用户买了多少件,同步应用--- - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { - data: { - store_id: os.stoid, - user_id: user_id, - goods_id: good.goods_id, - prom_type: good.prom_type, - prom_id: good.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; - }) + if (knum <= 0) { + getApp().confirmBox("库存为0,支付失败"); + th.setData({ paying: 0 }); + return false; + } - var buyed_mum2 = goodsbuynum + good.goods_num; - if (buyed_mum2 > limit && limit > 0) { - var content = gg.goods_name + '购买数量超出商品限购,请取消订单'; - th.toast(content); - th.setData({paying:0}); - return false; - } + } - - //当是组合优惠的时候 - if (good.prom_type == 7) { - //如果有组合购 - var isok = 1; - var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + good.prom_id + "/" + getApp().globalData.userInfo.user_id; - await getApp().request.promiseGet(url, {}).then(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; - } - - } else { - //未找到商品的活动 - isok = 0; - } + var wlist = ""; + for (var i in order_goods) { + var good = order_goods[i]; - }) - if (!isok) { - var content = gg.goods_name + '活动已经结束,请取消订单'; - th.toast(content); - th.setData({paying:0}); - return false; - } - var url1 = "/api/weshop/prom/zhbuyGoods/page"; - var req_data = { - page: 1, - pageSize: 1, - store_id: os.stoid, - zh_id: good.prom_id, - goods_id: good.goods_id - } - await getApp().request.promiseGet(url1, { - data: req_data - }).then(res => { - if (ut.ajax_ok(res)) { - var gdlist = res.data.data.pageData[0]; - good.buyqty = gdlist.buyqty; - } - }) - - var num = good['buyqty']; - //---- 要计算商品的限购 ----- - if (good['buyqty'] > 0) { - if (good.goods_num + promgoodsbuynum > good['buyqty']) { - var content = good['goods_name'] + "超出活动限购\n"; - th.toast(content); - th.setData({paying:0}); - return false; - } - } + //线下取价功能已经关闭或者过期 + if (!th.data.is_open_offline && good.offline_cut > 0) { + wx.showModal({ + title: '提示', + content: '线下取价功能已经关闭或者过期!' + }); + th.setData({ paying: 0 }); + return false; + } + + //要每件每件的商品进行检查,看有么有超出库存,超出限购 + var good = order_goods[i], goodsbuynum = 0, promgoodsbuynum = 0, gg = null, presellList = null; + + //获取单品的现在的活动状态 + await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + good.goods_id, {}).then(res => { + gg = res.data.data; + }) + var limit = gg.viplimited; + var store_count = gg.store_count; + good.erpwareid = gg.erpwareid; + + //---要获得商品,该用户买了多少件,同步应用--- + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { + data: { + store_id: os.stoid, + user_id: user_id, + goods_id: good.goods_id, + prom_type: good.prom_type, + prom_id: good.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 buyed_mum2 = goodsbuynum + good.goods_num; + if (buyed_mum2 > limit && limit > 0) { + var content = gg.goods_name + '购买数量超出商品限购,请取消订单'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + + //当是组合优惠的时候 + if (good.prom_type == 7) { + //如果有组合购 + var isok = 1; + var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + good.prom_id + "/" + getApp().globalData.userInfo.user_id; + let zh_buy_info=null + await getApp().request.promiseGet(url, {}).then(res => { + if (res.data.code == 0 && res.data.data) { + zh_buy_info = res.data.data + if (res.data.data.is_show != 1) { + isok = 0; + } + //如果活动已经结束 + if (res.data.data.is_end == 1) { + isok = 0; + } + //已经结束 + if (ut.gettimestamp() > res.data.data.end_time) { + isok = 0; + } + //还未开始 + if (ut.gettimestamp() < res.data.data.start_time) { + isok = 0; } - - //如果是预售的时候, - if(good.prom_type==8) { - await getApp().request.promiseGet("/api/weshop/order/orderPresell/countBuyGoodsSum",{ - data: {store_id: os.stoid, user_id: user_id, goods_id: good.goods_id, prom_id: good.prom_id}, - }).then(e=>{ - if (e.data.code == 0) { - promgoodsbuynum=e.data.data.sumgoodsnum; - } - }) - - var presell_id =good.prom_id; - var url = "/api/weshop/marketing/marketingPresellList/list" - var rd = { - store_id: os.stoid, - presell_id: presell_id, - goods_id: good.goods_id - } - //------获取预售从表---------- - await getApp().request.promiseGet(url, { - data: rd - }).then(res => { - if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { - var arr = res.data.data[0]; - presellList=arr - } - }) + } else { + //未找到商品的活动 + isok = 0; + } - if(presellList){ + }) + if (!isok) { + var content = gg.goods_name + '活动已经结束,请取消订单'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + //增加组合购次数判断 + let userbuynum = await th.getUserBuyPromNum(good.prom_id) + if (zh_buy_info && userbuynum >= zh_buy_info.buy_limit) { + var content = gg.goods_name + '超出组合购限购次数,请取消订单'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + + var url1 = "/api/weshop/prom/zhbuyGoods/page"; + var req_data = { + page: 1, + pageSize: 1, + store_id: os.stoid, + zh_id: good.prom_id, + goods_id: good.goods_id + } + await getApp().request.promiseGet(url1, { + data: req_data + }).then(res => { + if (ut.ajax_ok(res)) { + var gdlist = res.data.data.pageData[0]; + good.buyqty = gdlist.buyqty; + } + }) - if(good.goods_num>presellList.presell_sumqty-presellList.buy_goodnum){ - var content = good.goods_name + '购买数量超出商品库存,请取消订单'; - th.toast(content); - th.setData({paying:0}); - return false; - } - var buyed_mum3 = promgoodsbuynum + good.goods_num; - if (buyed_mum3 > presellList.vip_butyqty && presellList.vip_butyqty > 0) { - var content = good.goods_name + '购买数量超出商品限购,请取消订单'; - th.toast(content); - th.setData({paying:0}); - return false; - } + var num = good['buyqty']; + //---- 要计算商品的限购 ----- + if (good['buyqty'] > 0) { + if (good.goods_num + promgoodsbuynum > good['buyqty']) { + var content = good['goods_name'] + "超出活动限购\n"; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + } + } - } - } + //如果是预售的时候, + if (good.prom_type == 8) { + await getApp().request.promiseGet("/api/weshop/order/orderPresell/countBuyGoodsSum", { + data: { store_id: os.stoid, user_id: user_id, goods_id: good.goods_id, prom_id: good.prom_id }, + }).then(e => { + if (e.data.code == 0) { + promgoodsbuynum = e.data.data.sumgoodsnum; + } + }) - - //如果优惠促销和搭配购的时候 - if ((good.prom_type == 3 || good.prom_type == 5) && good.is_gift != 1 && good.is_collocation != 1) { - var p_ok = 1,is_g_prom=0; - //因为有全场优惠活动,商品参加的活动还未开始 - var url="/api/weshop/activitylist/getGoodActInfo"; - var req_data={ - store_id:os.stoid,goodsidlist:good.goods_id,is_detail:1,user_id:user_id - }; - await getApp().request.promiseGet(url, {data:req_data}).then(async function (res) { - debugger - 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 || item.prom_type==5){ - is_g_prom=1; break; - } - } - } - }) - - - if(is_g_prom){ - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + good.goods_id + "/0"+"/"+getApp().globalData.user_id, {}).then(res => { - if (res.data.code == 0) { - var r_data = res.data.data; - if (!r_data.collocationPromList && good.prom_type == 5) { - - var content = good.goods_name + '未找到活动,请取消订单重新购买'; - th.toast(content) - p_ok = 0; - } - if (!r_data.promGoodsLists && good.prom_type == 3) { - - var content = good.goods_name + '未找到活动,请取消订单重新购买'; - th.toast(content); - p_ok = 0; - } - } else { - - var content = good.goods_name + '未找到活动,请取消订单重新购买' - th.toast(content); - p_ok = 0; - } - }) - }else{ - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromNormal/" + os.stoid + "/" + good.goods_id, {}).then(res => { - if (res.data.code == 0) { - var r_data = res.data.data; - if (!r_data.collocationPromList && good.prom_type == 5) { - - var content = good.goods_name + '未找到活动,请取消订单重新购买'; - th.toast(content) - - p_ok = 0; - } - if (!r_data.promGoodsLists && good.prom_type == 3) { - - var content = good.goods_name + '未找到活动,请取消订单重新购买'; - th.toast(content); - p_ok = 0; - } - } else { - - var content = good.goods_name + '未找到活动,请取消订单重新购买' - th.toast(content); - p_ok = 0; - } - }) + var presell_id = good.prom_id; + var url = "/api/weshop/marketing/marketingPresellList/list" + var rd = { + store_id: os.stoid, + presell_id: presell_id, + goods_id: good.goods_id + } + //------获取预售从表---------- + await getApp().request.promiseGet(url, { + data: rd + }).then(res => { + if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { + var arr = res.data.data[0]; + presellList = arr + } + }) - } + if (presellList) { + if (good.goods_num > presellList.presell_sumqty - presellList.buy_goodnum) { + var content = good.goods_name + '购买数量超出商品库存,请取消订单'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + var buyed_mum3 = promgoodsbuynum + good.goods_num; + if (buyed_mum3 > presellList.vip_butyqty && presellList.vip_butyqty > 0) { + var content = good.goods_name + '购买数量超出商品限购,请取消订单'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + } + } - if (!p_ok){ - th.setData({paying:0}); - return false; - } + //如果优惠促销和搭配购的时候 + if ((good.prom_type == 3 || good.prom_type == 5) && good.is_gift != 1 && good.is_collocation != 1) { + var p_ok = 1, is_g_prom = 0; + //因为有全场优惠活动,商品参加的活动还未开始 + var url = "/api/weshop/activitylist/getGoodActInfo"; + var req_data = { + store_id: os.stoid, goodsidlist: good.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 + "/" + good.goods_id + "/0" + "/" + getApp().globalData.user_id, {}).then(res => { + if (res.data.code == 0) { + var r_data = res.data.data; + if (!r_data.collocationPromList && good.prom_type == 5) { + + var content = good.goods_name + '未找到活动,请取消订单重新购买'; + th.toast(content) + p_ok = 0; + } + if (!r_data.promGoodsLists && good.prom_type == 3) { - + var content = good.goods_name + '未找到活动,请取消订单重新购买'; + th.toast(content); + p_ok = 0; + } + } else { - //商品的普通购买 ,不要进行判断 - if ((good.prom_type == 1 || good.prom_type == 2 || good.prom_type == 6 || good.prom_type == 4 || good.prom_type == 8) - && !good.is_gift && !good.is_collocation && !good.is_integral_normal && !good.is_pd_normal) { - if (gg.prom_type != good.prom_type && gg.prom_type>0) { - var content = gg.goods_name + '商品的活动发生了变化,请取消订单重新购买'; - th.toast(content); - th.setData({paying:0}); - return false; - } + var content = good.goods_name + '未找到活动,请取消订单重新购买' + th.toast(content); + p_ok = 0; + } + }) + } else { + await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromNormal/" + os.stoid + "/" + good.goods_id, {}).then(res => { + if (res.data.code == 0) { + var r_data = res.data.data; + if (!r_data.collocationPromList && good.prom_type == 5) { - } else { - - - if ((gg.prom_type == 1 || good.prom_type == 2 || gg.prom_type == 3 || gg.prom_type == 5 || gg.prom_type == 6 || gg.prom_type == 4) - && !good.is_collocation && !good.is_gift && !good.is_integral_normal && !good.is_pd_normal) { - var prom = null; - //---如果是活动的时候--- - var prom = null, th = this; - if (gg.prom_type == 1) { - await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + os.stoid + "/"+ user_id + "/" + gg.prom_id, {}).then(res => { - if (res.data.code == 0) { - prom = res.data.data; - prom.price=prom.user_price; - } - }) - } - - - - if (gg.prom_type == 2) { - await getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/"+ gg.goods_id + "/" + gg.prom_id, {}).then(res => { - if (res.data.code == 0) { - prom = res.data.data; - prom.price=prom.price; - } - }) - } - - - - if (gg.prom_type == 6) { - await getApp().request.promiseGet("/api/weshop/teamlist/get/" + os.stoid + "/" + gg.prom_id, {}).then(res => { - if (res.data.code == 0) { - prom = res.data.data; - } - }) - } + var content = good.goods_name + '未找到活动,请取消订单重新购买'; + th.toast(content) - if (gg.prom_type == 4) { - await getApp().request.promiseGet("/api/weshop/integralbuy/pageIntegralBuyGoodsList?stype=1&stypeup=1", { - data: {store_id: os.stoid, goods_id: gg.goods_id} - }).then(res => { - if (res.data.code == 0 && res.data.data && res.data.data.pageData) { - prom = res.data.data.pageData[0]; - } - }) - } + p_ok = 0; + } + if (!r_data.promGoodsLists && good.prom_type == 3) { - if (prom) { - var t_now = ut.gettimestamp(); - if (prom.is_end == 0 && prom.start_time < t_now && prom.end_time > t_now) { + var content = good.goods_name + '未找到活动,请取消订单重新购买'; + th.toast(content); + p_ok = 0; + } + } else { - var content = gg.goods_name + '商品的活动发生了变化,请取消订单重新购买'; - th.toast(content); - th.setData({paying:0}); - return false; - } - } - } - else { - if (!good.is_gift && good.prom_type != 3 && !good.is_collocation) { - var t_ok = 1; - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + good.goods_id + "/0"+"/"+getApp().globalData.user_id, {}).then(res => { - if (res.data.code == 0) { - var r_data = res.data.data; - //-- 参加了全局的优惠活动 -- - if (r_data.promGoodsLists) { - var content = gg.goods_name + '商品的活动发生了变化,请取消订单重新购买'; - th.toast(content); - t_ok = 0; - } - } - }) - if (!t_ok){ - th.setData({paying:0}); return false; - } - } - //-- 如果有参加线下取价 -- - if (good.offline_cut > 0) wlist += encodeURIComponent(gg.erpwareid) + ","; - } + var content = good.goods_name + '未找到活动,请取消订单重新购买' + th.toast(content); + p_ok = 0; + } + }) - - //赠品和搭配购不判断商品金额 - var isok = 1; - var card_field = th.data.card_field; + } + if (!p_ok) { + th.setData({ paying: 0 }); + return false; + } + } - //-- 如果会员是等级会员,商品有等级价,且不是活动商品,同时线下取价的要放在最后来判断 -- - if (!good.is_gift && !good.is_collocation && gg.prom_type != 9) { - if (card_field && gg[card_field] > 0) { - if (good.goods_price != gg[card_field] && good.offline_cut <= 0) isok = 0; - if (good.goods_price > gg[card_field] && good.offline_cut > 0) isok = 0; //如果线下价格比较贵,则不通过 + //商品的普通购买 ,不要进行判断 + if ((good.prom_type == 1 || good.prom_type == 2 || good.prom_type == 6 || good.prom_type == 4 || good.prom_type == 8) + && !good.is_gift && !good.is_collocation && !good.is_integral_normal && !good.is_pd_normal) { + if (gg.prom_type != good.prom_type && gg.prom_type > 0) { + var content = gg.goods_name + '商品的活动发生了变化,请取消订单重新购买'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } - } else { - if (good.goods_price != gg.shop_price && good.offline_cut <= 0) isok = 0; - if (good.goods_price > gg.shop_price && good.offline_cut > 0) isok = 0; //如果线下价格比较贵,则不通过 - } - var is_h = 0; - if (!isok) { + } else { + if ((gg.prom_type == 1 || good.prom_type == 2 || gg.prom_type == 3 || gg.prom_type == 5 || gg.prom_type == 6 || gg.prom_type == 4) + && !good.is_collocation && !good.is_gift && !good.is_integral_normal && !good.is_pd_normal) { + var prom = null; + //---如果是活动的时候--- + var prom = null, th = this; + if (gg.prom_type == 1) { + await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + os.stoid + "/" + user_id + "/" + gg.prom_id, {}).then(res => { + if (res.data.code == 0) { + prom = res.data.data; + prom.price = prom.user_price; + } + }) + } - var content = gg.goods_name + '商品的价格发生了变化,请取消订单重新购买1' - th.toast(content); - th.setData({paying:0}); - return false; - } - } + if (gg.prom_type == 2) { + await getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + gg.goods_id + "/" + gg.prom_id, {}).then(res => { + if (res.data.code == 0) { + prom = res.data.data; + prom.price = prom.price; + } + }) + } - //--如果是线下库存的时候-- - if (th.data.conf.sales_rules >= 2 && !gg.whsle_id) { - var ob = {}; - await th.check_down_line_next(gg, good.goods_num, order.pickup_id, function (obj) { - ob = obj; - }) - if (ob.code == -1) { - - var content = gg.goods_name + '门店库存不足,请取消订单'; - th.toast(content); - th.setData({paying:0}); - return false; - } - } else { - if (good.goods_num > store_count) { + if (gg.prom_type == 6) { + await getApp().request.promiseGet("/api/weshop/teamlist/get/" + os.stoid + "/" + gg.prom_id, {}).then(res => { + if (res.data.code == 0) { + prom = res.data.data; + } + }) + } - var content = gg.goods_name + '商品的库存不足,请取消订单'; - th.toast(content); - th.setData({paying:0}); - return false; - } + if (gg.prom_type == 4) { + await getApp().request.promiseGet("/api/weshop/integralbuy/pageIntegralBuyGoodsList?stype=1&stypeup=1", { + data: { store_id: os.stoid, goods_id: gg.goods_id } + }).then(res => { + if (res.data.code == 0 && res.data.data && res.data.data.pageData) { + prom = res.data.data.pageData[0]; + } + }) + } - } - } + if (prom) { + var t_now = ut.gettimestamp(); + if (prom.is_end == 0 && prom.start_time < t_now && prom.end_time > t_now) { - //---如果是活动的时候--- - var prom = null, goodsinfo = good, th = this; - if (goodsinfo.prom_type == 1) { - await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + os.stoid + "/"+ user_id + "/" + goodsinfo.prom_id, {}).then(res => { - if (res.data.code == 0) { - prom = res.data.data; - prom.price=prom.user_price; - } - }) + var content = gg.goods_name + '商品的活动发生了变化,请取消订单重新购买'; + th.toast(content); + th.setData({ paying: 0 }); + return false; } - - if (goodsinfo.prom_type == 2) { - await getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/"+ good.goods_id + "/" + goodsinfo.prom_id, {}).then(res => { - if (res.data.code == 0) { - prom = res.data.data; - prom.price=prom.price; - } - }) - } - - - if (goodsinfo.prom_type == 6 && !good.is_pd_normal) { - await getApp().request.promiseGet("/api/weshop/teamlist/get/" + os.stoid + "/" + goodsinfo.prom_id, {}).then(res => { - if (res.data.code == 0) { - prom = res.data.data; - } - }) - } - - if (goodsinfo.prom_type == 4 && !good.is_integral_normal) { - await getApp().request.promiseGet("/api/weshop/integralbuy/pageIntegralBuyGoodsList?stype=1&stypeup=1", { - data: {store_id: os.stoid, goods_id: goodsinfo.goods_id} - }).then(res => { - if (res.data.code == 0 && res.data.data && res.data.data.pageData) { - prom = res.data.data.pageData[0]; - } - }) + } + } + else { + if (!good.is_gift && good.prom_type != 3) { + var t_ok = 1; + await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + good.goods_id + "/0" + "/" + getApp().globalData.user_id, {}).then(res => { + if (res.data.code == 0) { + var r_data = res.data.data; + //-- 参加了全局的优惠活动 -- + if (r_data.promGoodsLists) { + var content = gg.goods_name + '商品的活动发生了变化,请取消订单重新购买'; + th.toast(content); + t_ok = 0; + } + } + }) + if (!t_ok) { + th.setData({ paying: 0 }); return false; } + } + //-- 如果有参加线下取价 -- + if (good.offline_cut > 0) wlist += encodeURIComponent(gg.erpwareid) + ","; + } + //赠品和搭配购不判断商品金额 + var isok = 1; + var card_field = th.data.card_field; + + //-- 如果会员是等级会员,商品有等级价,且不是活动商品,同时线下取价的要放在最后来判断 -- + if (!good.is_gift && !good.is_collocation && gg.prom_type != 9) { + if (card_field && gg[card_field] > 0) { + if (good.goods_price != gg[card_field] && good.offline_cut <= 0) isok = 0; + if (good.goods_price > gg[card_field] && good.offline_cut > 0) isok = 0; //如果线下价格比较贵,则不通过 + + } else { + if (good.goods_price != gg.shop_price && good.offline_cut <= 0) isok = 0; + if (good.goods_price > gg.shop_price && good.offline_cut > 0) isok = 0; //如果线下价格比较贵,则不通过 + } + var is_h = 0; + if (!isok) { - //----------如果有活动,并且在进行中,就不计算线下库存--------------- - if (prom) { - var now = ut.gettimestamp(); - if (prom.is_end == 1 && prom.end_time < now) { - var content = goodsinfo.goods_name + '商品的活动已经结束,请取消订单' - th.toast(content); - th.setData({paying:0}); - return false; - } + var content = gg.goods_name + '商品的价格发生了变化,请取消订单重新购买1' + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + } - buyed_mum2 = promgoodsbuynum + good.goods_num; - if (buyed_mum2 > prom.buy_limit && prom.buy_limit > 0) { + //--如果是线下库存的时候-- + if (th.data.conf.sales_rules >= 2 && !gg.whsle_id) { + var ob = {}; + await th.check_down_line_next(gg, good.goods_num, order.pickup_id, function (obj) { + ob = obj; + }) + if (ob.code == -1) { - var content = goodsinfo.goods_name + '购买数量超出商品活动限购,请取消订单' - th.toast(content); - th.setData({paying:0}); - return false; - } + var content = gg.goods_name + '门店库存不足,请取消订单'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } - // --看一下会员的秒杀价格是不是发生了变化,因为会员的身份发生了变化 - if(goodsinfo.prom_type==1 && goodsinfo.goods_price!=prom.price){ - var content=goodsinfo.goods_name+'秒杀活动的价格发生了变化'; - th.toast(content); - th.setData({paying:0}); - return false; - } - - // --看一下会员的团购价格是不是发生了变化 - if(goodsinfo.prom_type==2 && goodsinfo.goods_price!=prom.price){ - var content=goodsinfo.goods_name+'秒杀活动的价格发生了变化'; - th.toast(content); - th.setData({paying:0}); - return false; - } - - if (goodsinfo.prom_type == 4) { - if (good.goods_num > prom.limitqty - prom.buy_num) { - - var content = goodsinfo.goods_name + '购买数量超出商品活动库存,请取消订单' - th.toast(content); - th.setData({paying:0}); - return false; - } - } else if(goodsinfo.prom_type == 1 || goodsinfo.prom_type == 2 || goodsinfo.prom_type == 6 ) { - if(order.add_time+5*60 store_count) { + + var content = gg.goods_name + '商品的库存不足,请取消订单'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } - } } + } - //-- 要判断一下线下取价价格是不是发生改变 -- - if (wlist != "" && th.data.is_open_offline && th.data.is_open_offline > 0) { - wlist = ut.sub_last(wlist); - var keyid = order.pickup_id; - var user_info = getApp().globalData.userInfo; - if (!keyid){ - th.setData({paying:0});return false; - } - var offarr = null; - await getApp().request.promiseGet("/api/weshop/goods/listWarePrice", { - data: { - VIPId: encodeURIComponent(user_info.erpvipid), - store_id: os.stoid, - PickupId: keyid, - WareIds: wlist - }, - }, - ).then(res => { - if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { - offarr = res.data.data; - } - }) - if (!offarr && offarr.length <= 0) { - th.toast('获取线下取价失败'); - } - var newarr = ut.convert_arr_key(offarr, 'WareId'); - //-- 循环判断线下的价格 -- - for (var k in order_goods) { - var good = order_goods[k]; - //判断线下取价是不是一样 - if (newarr[good.erpwareid] && - parseFloat(newarr[good.erpwareid].WarePrice) != parseFloat(good.goods_price)) { - - var content = good.goods_name + '商品的价格发生了变化,请取消订单重新购买'; - th.toast(content); - th.setData({paying:0}); - return false; - } - } + //---如果是活动的时候--- + var prom = null, goodsinfo = good, th = this; + if (goodsinfo.prom_type == 1) { + await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + os.stoid + "/" + user_id + "/" + goodsinfo.prom_id, {}).then(res => { + if (res.data.code == 0) { + prom = res.data.data; + prom.price = prom.user_price; + } + }) + } + + if (goodsinfo.prom_type == 2) { + await getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + good.goods_id + "/" + goodsinfo.prom_id, {}).then(res => { + if (res.data.code == 0) { + prom = res.data.data; + prom.price = prom.price; + } + }) + } + + + if (goodsinfo.prom_type == 6 && !good.is_pd_normal) { + await getApp().request.promiseGet("/api/weshop/teamlist/get/" + os.stoid + "/" + goodsinfo.prom_id, {}).then(res => { + if (res.data.code == 0) { + prom = res.data.data; + } + }) + } + + if (goodsinfo.prom_type == 4 && !good.is_integral_normal) { + await getApp().request.promiseGet("/api/weshop/integralbuy/pageIntegralBuyGoodsList?stype=1&stypeup=1", { + data: { store_id: os.stoid, goods_id: goodsinfo.goods_id } + }).then(res => { + if (res.data.code == 0 && res.data.data && res.data.data.pageData) { + prom = res.data.data.pageData[0]; + } + }) + } + + //----------如果有活动,并且在进行中,就不计算线下库存--------------- + if (prom) { + var now = ut.gettimestamp(); + if (prom.is_end == 1 && prom.end_time < now) { + var content = goodsinfo.goods_name + '商品的活动已经结束,请取消订单' + th.toast(content); + th.setData({ paying: 0 }); + return false; } - th.pay_next(e, o_index); - }, - - - pay_next(e,o_index){ - var th=this; - if (e.order_amount == 0) { - var dd = { - parent_sn: e.order_sn, - store_id: e.store_id, - type: 1, - }; - getApp().request.post("/api/weshop/order/pay/createOrder", { - data: dd, - success: function(t) { - th.setData({paying:0}); - if (t.data.code == 0) { - th.onload(); - } else { - getApp().confirmBox(t.data.msg + "请您取消该订单"); - } - } - }) - - return false; - } - - /*--- - a.jumpToCart4({ - order_sn: e.order_sn, - order_amount: e.order_amount, - type: 1 //正常单 - });--*/ - - t.pay(e.order_sn, function() { - th.setData({paying:0}); - wx.showToast({title: '支付成功'}) - th.data.orderList.splice(o_index,1); - th.setData({orderList:th.data.orderList}); - },function () { - th.setData({paying:0}); - },os.stoid,1); + buyed_mum2 = promgoodsbuynum + good.goods_num; + if (buyed_mum2 > prom.buy_limit && prom.buy_limit > 0) { + + var content = goodsinfo.goods_name + '购买数量超出商品活动限购,请取消订单' + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + + // --看一下会员的秒杀价格是不是发生了变化,因为会员的身份发生了变化 + if (goodsinfo.prom_type == 1 && goodsinfo.goods_price != prom.price) { + var content = goodsinfo.goods_name + '秒杀活动的价格发生了变化'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + + // --看一下会员的团购价格是不是发生了变化 + if (goodsinfo.prom_type == 2 && goodsinfo.goods_price != prom.price) { + var content = goodsinfo.goods_name + '秒杀活动的价格发生了变化'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + + if (goodsinfo.prom_type == 4) { + if (good.goods_num > prom.limitqty - prom.buy_num) { + + var content = goodsinfo.goods_name + '购买数量超出商品活动库存,请取消订单' + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + } else if (goodsinfo.prom_type == 1 || goodsinfo.prom_type == 2 || goodsinfo.prom_type == 6) { + if (order.add_time + 5 * 60 < ut.gettimestamp()) { + var content = gg.goods_name + '该订单已经超时无法支付,请取消订单'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } + } - }, - - //---检验线下库存的数量的子函数--- - async check_down_line_next(gg,num,pick_id,func){ - - var lock=0,pick_no,plist; - var log_rq={store_id:os.stoid,wareId:gg.goods_id,storageId:pick_id}; - if(this.data.sales_rules==3){ - log_rq.appoint_pick_keyid=this.data.appoint_pick_keyid; - delete log_rq.storageId } - //先读取门店的lock - await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ - data:log_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 + "/" + pick_id, { - data: {storeId: os.stoid, goodsId: gg.goods_id, pickupId: pick_id} - }).then(res => { - if (res.data.code == 0) { - pick_no = res.data.data.pickup_no; - } - }) + } + + //-- 要判断一下线下取价价格是不是发生改变 -- + if (wlist != "" && th.data.is_open_offline && th.data.is_open_offline > 0) { + wlist = ut.sub_last(wlist); + var keyid = order.pickup_id; + var user_info = getApp().globalData.userInfo; + if (!keyid) { + th.setData({ paying: 0 }); return false; + } + var offarr = null; + await getApp().request.promiseGet("/api/weshop/goods/listWarePrice", { + data: { + VIPId: encodeURIComponent(user_info.erpvipid), + store_id: os.stoid, + PickupId: keyid, + WareIds: wlist + }, + }, + ).then(res => { + if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { + offarr = res.data.data; + } + }) + if (!offarr && offarr.length <= 0) { + th.toast('获取线下取价失败'); + } + var newarr = ut.convert_arr_key(offarr, 'WareId'); + //-- 循环判断线下的价格 -- + for (var k in order_goods) { + var good = order_goods[k]; + //判断线下取价是不是一样 + if (newarr[good.erpwareid] && + parseFloat(newarr[good.erpwareid].WarePrice) != parseFloat(good.goods_price)) { + + var content = good.goods_name + '商品的价格发生了变化,请取消订单重新购买'; + th.toast(content); + th.setData({ paying: 0 }); + return false; + } } + } + th.pay_next(e, o_index); + }, + + + pay_next(e, o_index) { + var th = this; + if (e.order_amount == 0) { + var dd = { + parent_sn: e.order_sn, + store_id: e.store_id, + type: 1, + }; + getApp().request.post("/api/weshop/order/pay/createOrder", { + data: dd, + success: function (t) { + th.setData({ paying: 0 }); + if (t.data.code == 0) { + th.onload(); + } else { + getApp().confirmBox(t.data.msg + "请您取消该订单"); + } + } + }) + + return false; + } + + /*--- + a.jumpToCart4({ + order_sn: e.order_sn, + order_amount: e.order_amount, + type: 1 //正常单 + });--*/ + + t.pay(e.order_sn, function () { + th.setData({ paying: 0 }); + wx.showToast({ title: '支付成功' }) + th.data.orderList.splice(o_index, 1); + th.setData({ orderList: th.data.orderList }); + }, function () { + th.setData({ paying: 0 }); + }, os.stoid, 1); - var sto_rq={storageNos:pick_no,wareIds:encodeURIComponent(gg.erpwareid),storeId:os.stoid}; - if(this.data.sales_rules==3){ - sto_rq.storageIds=this.data.appoint_pick_keyid; - delete sto_rq.storageNos + + }, + + //---检验线下库存的数量的子函数--- + async check_down_line_next(gg, num, pick_id, func) { + + var lock = 0, pick_no, plist; + var log_rq = { store_id: os.stoid, wareId: gg.goods_id, storageId: pick_id }; + if (this.data.sales_rules == 3) { + log_rq.appoint_pick_keyid = this.data.appoint_pick_keyid; + delete log_rq.storageId + } + //先读取门店的lock + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { + data: log_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 + "/" + pick_id, { + data: { storeId: os.stoid, goodsId: gg.goods_id, pickupId: pick_id } + }).then(res => { + if (res.data.code == 0) { + pick_no = res.data.data.pickup_no; + } + }) + } + + var sto_rq = { storageNos: pick_no, wareIds: encodeURIComponent(gg.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 (res.data.code == 0 && res.data.data && res.data.data.pageData && res.data.data.pageData.length > 0) { + plist = res.data.data.pageData[0]; + } + }) + + var ob = {}; ob.code = 1; + if (!plist) { + ob.code = -1; ob.CanOutQty = 0; + func(ob); return false; + } + + if (num > plist.CanOutQty - lock) { + ob.code = -1; + ob.CanOutQty = plist.CanOutQty - lock + if (ob.CanOutQty < 0) ob.CanOutQty = 0; + } + func(ob) + }, - //读取线下的门店库存 - await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ - data:sto_rq - }).then(res=>{ - if(res.data.code==0 && res.data.data && res.data.data.pageData && res.data.data.pageData.length>0){ - plist=res.data.data.pageData[0]; - } - }) - - var ob={}; ob.code=1; - if(!plist){ - ob.code=-1; ob.CanOutQty=0; - func(ob);return false; - } - - if(num>plist.CanOutQty-lock){ - ob.code=-1; - ob.CanOutQty=plist.CanOutQty-lock - if(ob.CanOutQty<0) ob.CanOutQty=0; - } - func(ob) - }, - //------图片失败,默认图片--------- - bind_bnerr: function(e) { + bind_bnerr: function (e) { var _errImg = e.currentTarget.dataset.errorimg; var _errObj = {}; _errObj[_errImg] = "public/images/default_goods_image_240.gif"; @@ -1290,7 +1258,7 @@ Page({ }, //--------跳转到退款详情----------- - gotoreturn: function(t) { + gotoreturn: function (t) { var e = t.currentTarget.dataset.recid; var oid = t.currentTarget.dataset.oid; var wh = ""; @@ -1303,7 +1271,7 @@ Page({ }, //-----支付尾款------ - pay_wk: function(ee) { + pay_wk: function (ee) { console.log("pay_wk"); var order_id = ee.currentTarget.dataset.order_id; wx.navigateTo({ @@ -1313,7 +1281,7 @@ Page({ }, //--判断是不是可以单个商品退-- - check_for_return_btn: function(item) { + check_for_return_btn: function (item) { if (item.coupon_no) return false; //有用优惠券 if (item.order_prom_id) return false; //有订单优惠 if (item.order_status >= 2) return false; //订单状态>2 @@ -1342,14 +1310,14 @@ Page({ return false; }, //跳到首页 - goto: function(e) { + goto: function (e) { wx.navigateTo({ url: '/pages/index/index/index', }) }, //显示核销码 - code_show: function(e) { + code_show: function (e) { var th = this; //--获取成功的时候-- var no = e.currentTarget.dataset.order_sn; @@ -1360,1382 +1328,1397 @@ Page({ }; qc_com.open(obj) }, - + //再来一单的功能的实现 - moreOrder:function(e){ + moreOrder: function (e) { - if(this.data.moring) return false; - this.data.moring=1; + if (this.data.moring) return false; + this.data.moring = 1; - var th=this; - var index=e.currentTarget.dataset.index; - var item=th.data.orderList[index]; - th.check_more_order(item); + var th = this; + var index = e.currentTarget.dataset.index; + var item = th.data.orderList[index]; + th.check_more_order(item); }, - check_more_order:async function(item){ - var pickup=null,th=this; - var user_id=getApp().globalData.user_id; - wx.showLoading(); - //--------获取门店----------- - await getApp().request.promiseGet("/api/weshop/pickup/get/" + os.stoid + "/" + item.pickup_id, { + check_more_order: async function (item) { + var pickup = null, th = this; + var user_id = getApp().globalData.user_id; + wx.showLoading(); + //--------获取门店----------- + await getApp().request.promiseGet("/api/weshop/pickup/get/" + os.stoid + "/" + item.pickup_id, { - }).then(res=>{ - if(res.data.code==0){ - pickup = res.data.data; - } - }) - if(!pickup){ - wx.hideLoading(); - getApp().confirmBox("找不到门店"); - this.data.moring=0; - return false; + }).then(res => { + if (res.data.code == 0) { + pickup = res.data.data; + } + }) + if (!pickup) { + wx.hideLoading(); + getApp().confirmBox("找不到门店"); + this.data.moring = 0; + return false; + } + + if (pickup.isstop) { + wx.hideLoading(); + getApp().confirmBox("门店已停用"); + this.data.moring = 0; + return false; + } + + + if (!pickup.is_pos) { + wx.hideLoading(); + getApp().confirmBox("门店不允许销售"); + this.data.moring = 0; + return false; + } + //--------获取商品---------- + var goods_list = item.order_goods; + //--- 返回的内容 --- + var back_goods_arr = []; + var err_text = ""; + for (var i in goods_list) { + var g_item = goods_list[i]; + var b_item = {}; + //--如果是赠品,不加入购物车-- + if (g_item['is_gift']) continue; + if (g_item['prom_type'] == 4) { + err_text += g_item['goods_name'] + "积分购商品不加入购物车\n"; + continue; + } + if (g_item['prom_type'] == 5) { + err_text += g_item['goods_name'] + "搭配购商品不加入购物车\n"; + continue; + } + if (g_item['prom_type'] == 6) { + err_text += g_item['goods_name'] + "拼团商品不加入购物车\n"; + continue; + } + + //--获取商品-- + var good = null; + await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + g_item.goods_id, { + + }).then(res => { + good = res.data.data; + }) + + //调用接口判断订单优惠, + // const res = await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + g_item.goods_id + "/0", {}) + // if (res.data.code == 0 && res.data.data) { + // var r_data = res.data.data; + // if (r_data.ladderLists) { + // var act_id = r_data.ladderLists[0].form_id; + // //-- 判断会员能不能参与阶梯促销 -- + // const data = await getApp().request.promiseGet("/api/weshop/prom/ladderForm/getNew/" + os.stoid + "/" + user_id + "/" + act_id, {}) + // if (data.data.code == 0 && data.data.data && data.data.data.isuse && data.data.data.is_end == 0) { + // b_item.prom_type = 10; + // b_item.prom_id = data.data.data.id; + // } + // } + // } + if (!good) { + err_text += g_item['goods_name'] + "未找到商品\n"; + continue; + } + if (good.is_on_sale != 1) { + err_text += g_item['goods_name'] + "已经下架\n"; + continue; + } + + var timestamp = ut.gettimestamp(); + if (good.on_time > timestamp) { + err_text += g_item['goods_name'] + "还未上架\n"; + continue; + } + if (good.down_time > 0) { + if (good.down_time < timestamp) { + err_text += g_item['goods_name'] + "已经下架\n"; + continue; } + } - if(pickup.isstop){ - wx.hideLoading(); - getApp().confirmBox("门店已停用"); - this.data.moring=0; - return false; + //如果商品的配送方式和门店不匹配 + if (good['distr_type'] > 0 && pickup['distr_type'] > 0 && good['distr_type'] != pickup['distr_type']) { + err_text += good['goods_name'] + "配送方式不一致\n"; + continue; } + var prom = null; + + b_item.goods_id = g_item.goods_id; + b_item.goods_name = g_item.goods_name; + b_item.goods_num = g_item.goods_num; + b_item.guide_id = g_item.guide_id; + b_item.guide_type = g_item.guide_type; + b_item.pickup_id = item.pickup_id; + b_item.price = good.shop_price; + b_item.goods_sn = good.goods_sn; + b_item.sku = good.sku; + b_item.is_integral_normal = g_item.is_integral_normal; + + //-- 如果会员是等级卡的时候,同时商品也有设置相应的卡价格 -- + var card_field = th.data.card_field; + if (card_field && good[card_field] > 0) { + b_item.price = good[card_field]; + } - if(!pickup.is_pos){ - wx.hideLoading(); - getApp().confirmBox("门店不允许销售"); - this.data.moring=0; - return false; + var url = "/api/weshop/activitylist/getGoodActInfo"; + var req_data = { + store_id: g_item.store_id, goodsidlist: g_item.goods_id, is_detail: 1, user_id: user_id, timetype: 0 + }; + await getApp().request.promiseGet(url, { data: req_data }).then(res => { + if (res.data.code == 0) { + var list = res.data.data; + for (let i in list) { + let item = list[i]; + if (item.prom_type == 1) { good.prom_type = 1; good.prom_id = item.act_id; } + } } - //--------获取商品---------- - var goods_list=item.order_goods; - //--- 返回的内容 --- - var back_goods_arr=[]; - var err_text=""; - for(var i in goods_list){ - var g_item=goods_list[i]; - var b_item={}; - //--如果是赠品,不加入购物车-- - if(g_item['is_gift']) continue; - if(g_item['prom_type']==4 ){ - err_text+= g_item['goods_name']+"积分购商品不加入购物车\n"; - continue; + }) + if (!prom) { + //--判断商品当前的活动情况-- + switch (good.prom_type) { + case 1: + var flash = null; + await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + os.stoid + "/" + getApp().globalData.user_id + "/" + good.prom_id, {}).then(res => { + if (res.data.code == 0) { + flash = res.data.data; + } + }) + //----没有结束----- + if (flash && flash.is_end == 0) { + + if (flash.end_time > timestamp && flash.start_time < timestamp) { + prom = flash; + prom.price = prom.user_price; + b_item.price = prom.user_price; + } else { + if (g_item.prom_type == 0 && !flash.is_shop_buy) { + err_text += g_item['goods_name'] + "秒杀活动不允许普通价\n"; + continue; + } + } + } - if(g_item['prom_type']==5){ - err_text+= g_item['goods_name']+"搭配购商品不加入购物车\n"; - continue; + break; + + case 2: + var group = null; + await getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + good.goods_id + "/" + good.prom_id, {}).then(res => { + if (res.data.code == 0) { + group = res.data.data; + } + }) + //----已经结束----- + if (group && group.is_end == 0 && group.end_time > timestamp && group.start_time < timestamp) { + prom = group; + prom.price = prom.price; + b_item.price = prom.price; } - if(g_item['prom_type']==6 ){ - err_text+= g_item['goods_name']+"拼团商品不加入购物车\n"; - continue; + break; + + case 6: + b_item.is_pd_normal = 1; + break; + case 7: + //如果有组合购 + var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + good.prom_id + "/" + getApp().globalData.userInfo.user_id; + await getApp().request.promiseGet(url, {}).then(res => { + if (res.data.code == 0 && res.data.data) { + if (res.data.data.is_show == 1 && res.data.data.is_end == 0 + && ut.gettimestamp() < res.data.data.end_time + && ut.gettimestamp() > res.data.data.start_time + ) { + b_item.prom_type = 7; + b_item.prom_id = res.data.data.id; + good.prom_type = 7; + good.prom_id = b_item.prom_id; + + } + } + }) + break; + case 10: + let user_id = getApp().globalData.userInfo.user_id; + var url = `/api/weshop/prom/ladderForm/getNew/${os.stoid}/${user_id}/${good.prom_id}`; + await getApp().request.promiseGet(url, {}).then(res => { + if (res.data.code == 0 && res.data.data && res.data.data.isuse && res.data.data.is_end == 0) { + b_item.prom_type = 10; + b_item.prom_id = res.data.data.id; + } + }) + break; + } + } + + //如果有优惠促销的时候,要看下商品的优惠活动有没有过期 + if ((g_item.prom_type == 3 || good.prom_type == 3) && good.whsle_id <= 0) { + var is_g_prom = 0; + //因为有全场优惠活动,商品参加的活动还未开始 + var url = "/api/weshop/activitylist/getGoodActInfo"; + var req_data = { + store_id: os.stoid, goodsidlist: good.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 + "/" + good.goods_id + "/1" + "/" + getApp().globalData.user_id, {}).then(res => { + if (res.data.code == 0) { + var r_data = res.data.data; + if (r_data.promGoodsLists) { + b_item.prom_type = 3; + b_item.prom_id = r_data.promGoodsLists[0].prom_id; + } + } + }) + } else { + await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromNormal/" + os.stoid + "/" + good.goods_id, {}).then(res => { + if (res.data.code == 0) { + var r_data = res.data.data; + if (r_data.promGoodsLists) { + b_item.prom_type = 3; + b_item.prom_id = r_data.promGoodsLists[0].prom_id; + } + } + }) + } - //--获取商品-- - var good=null; - await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + g_item.goods_id, { + } - }).then(res=>{ - good=res.data.data; - }) - //调用接口判断订单优惠, - // const res = await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + g_item.goods_id + "/0", {}) - // if (res.data.code == 0 && res.data.data) { - // var r_data = res.data.data; - // if (r_data.ladderLists) { - // var act_id = r_data.ladderLists[0].form_id; - // //-- 判断会员能不能参与阶梯促销 -- - // const data = await getApp().request.promiseGet("/api/weshop/prom/ladderForm/getNew/" + os.stoid + "/" + user_id + "/" + act_id, {}) - // if (data.data.code == 0 && data.data.data && data.data.data.isuse && data.data.data.is_end == 0) { - // b_item.prom_type = 10; - // b_item.prom_id = data.data.data.id; - // } - // } - // } - if(!good){ - err_text+= g_item['goods_name']+"未找到商品\n"; - continue; + //判断是不是线下库存的购买, 是不是秒杀活动 + if (th.data.sales_rules >= 2 && !prom && !good.whsle_id) { + + //-- 看一下购物车上有多少商品 -- + var cart_num = 0; + await getApp().request.promiseGet("/api/weshop/cart/page", { + data: { + store_id: os.stoid, + user_id: getApp().globalData.user_id, + state: 0, is_gift: 0, + goods_id: good.goods_id, + pick_id: b_item.pickup_id + } + }).then(res => { + var num = 0; + if (res.data.code == 0 && res.data.data && res.data.data.pageData) { + for (var i = 0; i < res.data.data.pageData.length; i++) { + num += res.data.data.pageData[i].goods_num; } - if (good.is_on_sale != 1) { - err_text+= g_item['goods_name']+"已经下架\n"; - continue; + } + cart_num = num; + }) + + var lock = 0, plist = null; + + if (b_item.prom_type != 7) { + + var lock_rq = { store_id: os.stoid, wareId: good.goods_id, storageId: b_item.pickup_id, pageSize: 1000 }; + if (th.data.sales_rules == 3) { + lock_rq.appoint_pick_keyid = th.data.appoint_pick_keyid; + delete lock_rq.storageId; + } + //先读取门店的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 timestamp = ut.gettimestamp(); - if (good.on_time > timestamp) { - err_text+= g_item['goods_name']+"还未上架\n"; - continue; + var sto_rq = { storageNos: pickup.pickup_no, wareIds: encodeURIComponent(good.erpwareid), storeId: os.stoid } + if (th.data.sales_rules == 3) { + sto_rq.storageIds = th.data.appoint_pick_keyid; + delete sto_rq.storageNos; + } + //---通过接口获取门店的线下库存信息-- + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { + data: sto_rq + }).then(res => { + if (res.data.code == 0 && res.data.data.total > 0) { + plist = res.data.data.pageData[0]; } - if (good.down_time > 0) { - if (good.down_time < timestamp) { - err_text+=g_item['goods_name']+"已经下架\n"; - continue; - } + }) + + if (!plist) { + err_text += good['goods_name'] + "库存不足\n"; + continue; + } + if (plist.CanOutQty - lock <= 0) { + err_text += good['goods_name'] + "库存不足\n"; + continue; + } + if (b_item.goods_num > (plist.CanOutQty - lock)) { + b_item.goods_num = plist.CanOutQty - lock; + } + } + var req_data = { + store_id: os.stoid, + user_id: getApp().globalData.user_id, + goods_id: good.goods_id, + }; + if (b_item.prom_type == 7) { + req_data.prom_type = 7; + req_data.prom_id = b_item.prom_id; + } + + var buynum = 0; + var promnum = 0; + //---要获得商品,该用户买了多少件,同步应用--- + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { + data: req_data, + }).then(res => { + if (res.data.code == 0) { + var buy_num_data = res.data.data; + buynum = buy_num_data.goodsbuynum; + if (buy_num_data.promgoodsbuynum) { + promnum = buy_num_data.promgoodsbuynum; } + } + }) - //如果商品的配送方式和门店不匹配 - if(good['distr_type']>0 && pickup['distr_type']>0 && good['distr_type']!=pickup['distr_type'] ){ - err_text+= good['goods_name']+"配送方式不一致\n"; - continue; + //---- 要计算商品的限购 ----- + if (good['viplimited'] > 0) { + if (cart_num + buynum > good['viplimited']) { + err_text += good['goods_name'] + "超出限购\n"; + continue; + } + good['viplimited'] -= (cart_num + buynum); + if (b_item.goods_num > good['viplimited']) { + b_item.goods_num = good['viplimited']; + } + } + //不需要计算组合购的限购 + + back_goods_arr.push(b_item); //返回商品元素 + + } else { + + //-- 看一下购物车上有多少商品 -- + var cart_num = 0; + await getApp().request.promiseGet("/api/weshop/cart/page", { + data: { + store_id: os.stoid, + user_id: getApp().globalData.user_id, + state: 0, is_gift: 0, + goods_id: good.goods_id + } + }).then(res => { + var num = 0; + if (res.data.code == 0 && res.data.data && res.data.data.pageData) { + for (var i = 0; i < res.data.data.pageData.length; i++) { + num += res.data.data.pageData[i].goods_num; } + } + cart_num = num; + }) + - var prom=null; - - b_item.goods_id=g_item.goods_id; - b_item.goods_name=g_item.goods_name; - b_item.goods_num=g_item.goods_num; - b_item.guide_id=g_item.guide_id; - b_item.guide_type=g_item.guide_type; - b_item.pickup_id=item.pickup_id; - b_item.price=good.shop_price; - b_item.goods_sn=good.goods_sn; - b_item.sku=good.sku; - b_item.is_integral_normal=g_item.is_integral_normal; - - //-- 如果会员是等级卡的时候,同时商品也有设置相应的卡价格 -- - var card_field=th.data.card_field; - if(card_field && good[card_field]>0){ - b_item.price=good[card_field]; + if (good.store_count <= 0) { + err_text += good['goods_name'] + "库存不足\n"; + continue; + } + if (b_item.goods_num > good.store_count) + b_item.goods_num = good.store_count; + + var buynum = 0; //商品已经购买多少件 + var promgoodsbuynum = 0; //活动已经购买多少件 + var redis_num = 0; //redis库存 + + var req_data = { + store_id: os.stoid, + user_id: getApp().globalData.user_id, + goods_id: good.goods_id, + }; + + if (prom) { + req_data.prom_type = good.prom_type; + req_data.prom_id = good.prom_id; + b_item.prom_type = good.prom_type; + b_item.prom_id = good.prom_id; + + //------判断活动是否抢光----- + await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + + os.stoid + "/" + good.prom_type + "/" + good.prom_id, { + 1: 1 + }).then(res => { + redis_num = res.data.data; + }); + if (redis_num <= 0) { + //不允许商品普通价格修改 + if (!prom.is_shop_buy && prom.is_shop_buy != undefined) { + err_text += good['goods_name'] + "活动不足\n"; + continue; } + } - var url="/api/weshop/activitylist/getGoodActInfo"; - var req_data={ - store_id:g_item.store_id,goodsidlist:g_item.goods_id,is_detail:1,user_id:user_id,timetype:0 - }; - await getApp().request.promiseGet(url, {data:req_data}).then(res=>{ - if(res.data.code==0){ - var list = res.data.data; - for(let i in list){ - let item=list[i]; - if(item.prom_type==1){ good.prom_type=1; good.prom_id=item.act_id; } - } - } - }) - if(!prom) { - //--判断商品当前的活动情况-- - switch (good.prom_type) { - case 1: - var flash = null; - await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + os.stoid + "/" + getApp().globalData.user_id + "/" + good.prom_id, {}).then(res => { - if (res.data.code == 0) { - flash = res.data.data; - } - }) - //----没有结束----- - if (flash && flash.is_end == 0 ) { - - if(flash.end_time > timestamp && flash.start_time < timestamp){ - prom = flash; - prom.price = prom.user_price; - b_item.price = prom.user_price; - }else{ - if(g_item.prom_type==0 && !flash.is_shop_buy ){ - err_text+=g_item['goods_name']+"秒杀活动不允许普通价\n"; - continue; - } - } - - } - break; - - case 2: - var group = null; - await getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + good.goods_id + "/" + good.prom_id, {}).then(res => { - if (res.data.code == 0) { - group = res.data.data; - } - }) - //----已经结束----- - if (group && group.is_end == 0 && group.end_time > timestamp && group.start_time < timestamp) { - prom = group; - prom.price = prom.price; - b_item.price = prom.price; - } - break; - - case 6: - b_item.is_pd_normal = 1; - break; - case 7: - //如果有组合购 - var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + good.prom_id + "/" + getApp().globalData.userInfo.user_id; - await getApp().request.promiseGet(url, {}).then(res => { - if (res.data.code == 0 && res.data.data) { - if (res.data.data.is_show == 1 && res.data.data.is_end == 0 - && ut.gettimestamp() < res.data.data.end_time - && ut.gettimestamp() > res.data.data.start_time - ) { - b_item.prom_type = 7; - b_item.prom_id = res.data.data.id; - good.prom_type = 7; - good.prom_id = b_item.prom_id; - - } - } - }) - break; - case 10: - let user_id = getApp().globalData.userInfo.user_id; - var url = `/api/weshop/prom/ladderForm/getNew/${os.stoid}/${user_id}/${good.prom_id}`; - await getApp().request.promiseGet(url, {}).then(res => { - if (res.data.code == 0 && res.data.data && res.data.data.isuse && res.data.data.is_end == 0) { - b_item.prom_type = 10; - b_item.prom_id = res.data.data.id; - } - }) - break; - } + } + + //---要获得商品,该用户买了多少件,同步应用--- + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { + data: req_data, + }).then(res => { + if (res.data.code == 0) { + var buy_num_data = res.data.data; + if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; + buynum = buy_num_data.goodsbuynum; + } + }) + + //---- 要计算商品的限购 ----- + if (good['viplimited'] > 0) { + if (cart_num + buynum > good['viplimited']) { + err_text += good['goods_name'] + "超出限购\n"; + continue; + } + good['viplimited'] -= (cart_num + buynum); + if (b_item.goods_num > good['viplimited']) { + b_item.goods_num = good['viplimited']; + } + + } + + //-- 判断活动的库存 -- + if (prom) { + if (prom['goods_num'] <= prom['buy_num']) { + err_text += good['goods_name'] + "超出活动库存\n"; + continue; + } + + if (b_item.goods_num > prom['goods_num'] - prom['buy_num']) { + b_item['goods_num'] = b_item['goods_num'] - b_item['buy_num']; + } + + if (b_item.goods_num > redis_num) { + b_item.goods_num = redis_num; + } + + if (prom['buy_limit'] > 0) { + if (cart_num + promgoodsbuynum >= prom['buy_limit']) { + err_text += good['goods_name'] + "超出活动限购\n"; + continue; + } + prom['buy_limit'] -= (cart_num + promgoodsbuynum); + if (b_item.goods_num > prom['buy_limit']) { + b_item.goods_num = prom['buy_limit']; } + } + } - //如果有优惠促销的时候,要看下商品的优惠活动有没有过期 - if((g_item.prom_type==3 || good.prom_type==3) && good.whsle_id<=0){ - var is_g_prom=0; - //因为有全场优惠活动,商品参加的活动还未开始 - var url="/api/weshop/activitylist/getGoodActInfo"; - var req_data={ - store_id:os.stoid,goodsidlist:good.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 + "/" + good.goods_id + "/1"+"/"+getApp().globalData.user_id, {}).then(res => { - if (res.data.code == 0) { - var r_data = res.data.data; - if (r_data.promGoodsLists) { - b_item.prom_type = 3; - b_item.prom_id = r_data.promGoodsLists[0].prom_id; - } - } - }) - }else{ - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromNormal/" + os.stoid + "/" + good.goods_id, {}).then(res => { - if (res.data.code == 0) { - var r_data = res.data.data; - if (r_data.promGoodsLists) { - b_item.prom_type = 3; - b_item.prom_id = r_data.promGoodsLists[0].prom_id; - } - } - }) - } + back_goods_arr.push(b_item); //返回商品元素 + } + } + + //有重新购买的数据是时候,就要重新生成订单 + if (back_goods_arr.length > 0) { + th.setData({ back_goods_arr: back_goods_arr }); + if (!err_text) { + th.more_add_cart(); + } else { + wx.hideLoading(); + // 如果没有获取用户信息 + wx.showModal({ + title: '确定', + content: err_text + ',确定要买其他商品码?', + success(res) { + if (res.confirm) { + //跳转到登录页 + th.more_add_cart(); + } else { + th.data.moring = 0; + wx.hideLoading(); } + }, fail() { + th.data.moring = 0; + wx.hideLoading(); + } + }); + } + } else { + th.data.moring = 0; + wx.hideLoading(); + getApp().confirmBox(err_text); + } + }, - //判断是不是线下库存的购买, 是不是秒杀活动 - if(th.data.sales_rules>=2 && !prom && !good.whsle_id){ + more_add_cart: async function () { + var back_goods_arr = this.data.back_goods_arr; + var err_text = ""; + var ok_num = 0; + + for (var i in back_goods_arr) { + //商品ID + var g_item = back_goods_arr[i]; + var newd = { + goods_id: g_item.goods_id, + goods_num: g_item.goods_num, + pick_id: g_item.pickup_id, + user_id: oo.user_id, + store_id: os.stoid, + goods_price: g_item.price, + member_goods_price: g_item.price, + goods_name: g_item.goods_name, + goods_sn: g_item.goods_sn, + sku: g_item.sku, + }; + + if (g_item.guide_id) { + newd['guide_id'] = g_item.guide_id; + newd['guide_type'] = g_item.guide_type; + } - //-- 看一下购物车上有多少商品 -- - var cart_num=0; - await getApp().request.promiseGet("/api/weshop/cart/page", { - data: { - store_id: os.stoid, - user_id: getApp().globalData.user_id, - state:0, is_gift:0, - goods_id:good.goods_id, - pick_id: b_item.pickup_id - } - }).then(res=>{ - var num = 0; - if(res.data.code==0 && res.data.data && res.data.data.pageData) { - for (var i = 0; i < res.data.data.pageData.length; i++) { - num += res.data.data.pageData[i].goods_num; - } - } - cart_num=num; - }) + if (g_item.is_integral_normal) { + newd['is_integral_normal'] = g_item.is_integral_normal; + } + if (g_item.is_pd_normal) { + newd['is_pd_normal'] = g_item.is_pd_normal; + } - var lock=0,plist=null; + if (g_item.prom_type) { + newd['prom_type'] = g_item.prom_type; + newd['prom_id'] = g_item.prom_id; + } - if(b_item.prom_type!=7) { - var lock_rq= {store_id: os.stoid, wareId: good.goods_id, storageId: b_item.pickup_id, pageSize: 1000}; - if(th.data.sales_rules==3){ - lock_rq.appoint_pick_keyid=th.data.appoint_pick_keyid; - delete lock_rq.storageId; - } - //先读取门店的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 sto_rq= { storageNos: pickup.pickup_no, wareIds: encodeURIComponent(good.erpwareid), storeId: os.stoid } - if(th.data.sales_rules==3){ - sto_rq.storageIds=th.data.appoint_pick_keyid; - delete sto_rq.storageNos; - } - //---通过接口获取门店的线下库存信息-- - await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { - data: sto_rq - }).then(res => { - if (res.data.code == 0 && res.data.data.total > 0) { - plist = res.data.data.pageData[0]; - } - }) - - if (!plist) { - err_text += good['goods_name'] + "库存不足\n"; - continue; - } - if (plist.CanOutQty - lock <= 0) { - err_text += good['goods_name'] + "库存不足\n"; - continue; - } - if (b_item.goods_num > (plist.CanOutQty - lock)) { - b_item.goods_num = plist.CanOutQty - lock; - } - } - var req_data={ - store_id: os.stoid, - user_id: getApp().globalData.user_id, - goods_id: good.goods_id, - }; - if(b_item.prom_type==7){ - req_data.prom_type=7; - req_data.prom_id=b_item.prom_id; - } + var b_cart_goods = null; + await getApp().request.promiseGet("/api/weshop/cart/page", { + data: { + store_id: os.stoid, + user_id: oo.user_id, + goods_id: g_item.goods_id, + pick_id: g_item.pickup_id, + state: 0, + }, + }).then(res => { + //-------如果购物车中有相关的数据------- + if (res.data.data.total > 0) { + b_cart_goods = res.data.data.pageData[0]; + } + }) + + //-- 如果就加入过购物车 -- + if (b_cart_goods) { + var updata = { + id: b_cart_goods.id, + goods_num: newd.goods_num + b_cart_goods.goods_num, + goods_price: newd.goods_price, + member_goods_price: newd.goods_price, + store_id: os.stoid, + }; + if (newd.guide_id) { + updata.guide_id = newd.guide_id; + updata.guide_type = newd.guide_type; + } + if (newd.prom_type) { + updata.prom_type = newd.prom_type; + updata.prom_id = newd.prom_id; + } - var buynum=0; - var promnum=0; - //---要获得商品,该用户买了多少件,同步应用--- - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { - data: req_data, - }).then(res => { - if(res.data.code==0){ - var buy_num_data = res.data.data; - buynum = buy_num_data.goodsbuynum; - if(buy_num_data.promgoodsbuynum){ - promnum=buy_num_data.promgoodsbuynum; - } - } - }) + await getApp().request.promisePut("/api/weshop/cart/update", { + data: updata + }).then(res => { + if (res.data.code == 0) { + ok_num++; + } else { + err_text += newd.goods_name + "加入购物车失败\n"; + } + }) - //---- 要计算商品的限购 ----- - if(good['viplimited']>0){ - if(cart_num+buynum>good['viplimited']){ - err_text+= good['goods_name']+"超出限购\n"; - continue; - } - good['viplimited']-=(cart_num+buynum); - if(b_item.goods_num>good['viplimited']){ - b_item.goods_num=good['viplimited']; - } - } - //不需要计算组合购的限购 + } else { + await getApp().request.promisePost("/api/weshop/cart/save", { + data: newd + }).then(res => { + if (res.data.code == 0) { + ok_num++; + } else { + err_text += newd.goods_name + "加入购物车失败\n"; + } + }) + } + } + wx.hideLoading(); + this.data.moring = 0; + if (ok_num == 0) { + //-- 如果没有获取用户信息 -- + wx.showModal({ + title: '提示', + content: err_text, + success(res) { } + }); + } else { + if (err_text == "") { + getApp().goto("/pages/cart/cart/cart"); + } else { + // 如果没有获取用户信息 + wx.showModal({ + title: '提示', + content: err_text, + success(res) { + if (res.confirm) { + //跳转到登录页 + getApp().goto("/pages/cart/cart/cart"); + } + } + }); + + } + } + }, + //获取用户参与组合购的次数 + 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 + }, - back_goods_arr.push(b_item); //返回商品元素 - }else{ + request_list: function (data, callback) { + // console.log('进入request_list'); - //-- 看一下购物车上有多少商品 -- - var cart_num=0; - await getApp().request.promiseGet("/api/weshop/cart/page", { - data: { - store_id: os.stoid, - user_id: getApp().globalData.user_id, - state:0, is_gift:0, - goods_id:good.goods_id - } - }).then(res=>{ - var num = 0; - if(res.data.code==0 && res.data.data && res.data.data.pageData) { - for (var i = 0; i < res.data.data.pageData.length; i++) { - num += res.data.data.pageData[i].goods_num; - } - } - cart_num=num; - }) + var th = this; + if (this.data.is_load2) return false; //-- 正在加载 + if (this.data.is_no_data2) return false; //-- 没有数据 + if (this.data.is_no_more2) return false; //-- 没有更多 + + // 开启加载状态 + this.data.is_load2 = 1; + + // var req_data = { + // page:th.data.currentPage2 + // } + let currentIndex = this.data.currentIndex; + let url = ''; + if (currentIndex == 1) { + url = '/api/weshop/order/pagePosOrder'; + }; + if (currentIndex == 2) { + url = '/api/weshop/recharge/user/page'; + }; + app.request.promiseGet(url, { + data: data + }).then(res => { + // 关闭加载状态 + th.data.is_load2 = 0; + // 请求成功 + if (res.data.code == 0) { + if (res.data.data.pageData.length > 0) { + th.data.currentPage2++; + var data = res.data.data.pageData; + // 判断有无更多数据可以加载,如果大于则没有更多数据,反之则有 + if (res.data.data.page * res.data.data.pageSize > res.data.data.total) { th.setData({ is_no_more2: 1 }); } + let list = []; + + if (currentIndex == 1) { + list = th.data.list2; + list = list.concat(data); + th.setData({ list2: list }); + }; + if (currentIndex == 2) { // 卡项订单 + list = th.data.cardList; + list = list.concat(data); + th.setData({ cardList: list }); + console.log('currentCard', list); + }; + + } else { + if (th.data.currentPage2 == 1) { + th.setData({ is_no_data2: 1 }); + } else { + th.setData({ is_no_more2: 1 }); + } + } + if (callback) callback(res); + } else { + // wx.showToast({ + // title: res.data.msg, + // icon: 'none', + // duration: 2000 + // }) + } + }) + }, - if(good.store_count<=0){ - err_text+= good['goods_name']+"库存不足\n"; - continue; - } - if(b_item.goods_num>good.store_count) - b_item.goods_num=good.store_count; - var buynum=0; //商品已经购买多少件 - var promgoodsbuynum=0; //活动已经购买多少件 - var redis_num = 0; //redis库存 + onClickTab(e) { + let currentIndex = e.target.dataset.index; + this.setData({ + currentIndex: currentIndex + }); - var req_data={ - store_id: os.stoid, - user_id: getApp().globalData.user_id, - goods_id: good.goods_id, - }; + this.setData({ + is_no_data2: 0, + is_no_more2: 0, + currentPage2: 1, + }); + if (currentIndex == 0) { + console.log('线上订单'); + /*--- + this.setData({ + startDate: '选择开始时间', + endDate: '选择结束时间', + });--*/ + }; + if (currentIndex == 1) { + console.log('线下订单'); + this.request_list({ + store_id: os.stoid, + user_id: oo.user_id, + page: 1, + BeginDate: this.data.startDate, + EndDate: this.data.endDate + }); + }; + if (currentIndex == 2) { + console.log('卡项订单'); + // this.setData({ + // orderList: null, + // }); + // 默认请求全部卡项订单 + this.request_list({ + store_id: os.stoid, + user_id: oo.user_id, + }); + // let url = '/api/weshop/recharge/user/page'; + // let data = { + // store_id: os.stoid, + // user_id: oo.user_id, + // }; + // app.promiseGet(url, { + // data: data, + // }).then(res => { + // if(res.data.code == 0) { + // console.log('卡项订单请求成功', res); + // this.setData({ + // orderList: res.data.data.pageData, + // }); + // } else { + // throw(res); + // }; + // }).catch(err => { + // console.log('卡项订单请求失败', err); + // this.setData({ + // orderList: null, + // }); + // wx.showToast({ + // title: err.data.data, + // icon: 'error', + // }); + // }); + }; + }, - if(prom){ - req_data.prom_type= good.prom_type; - req_data.prom_id= good.prom_id; - b_item.prom_type=good.prom_type; - b_item.prom_id=good.prom_id; - - //------判断活动是否抢光----- - await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + - os.stoid + "/" + good.prom_type + "/" + good.prom_id, { - 1: 1 - }).then(res => { - redis_num = res.data.data; - }); - if(redis_num<=0){ - //不允许商品普通价格修改 - if(!prom.is_shop_buy && prom.is_shop_buy!=undefined ){ - err_text+= good['goods_name']+"活动不足\n"; - continue; - } - } + bindDateChange1: function (e) { + console.log('picker发送选择改变,携带值为', e.detail.value) + this.setData({ + startDate: e.detail.value + }) + }, - } + bindDateChange2: function (e) { + console.log('picker发送选择改变,携带值为', e.detail.value) + this.setData({ + endDate: e.detail.value + }) + }, - //---要获得商品,该用户买了多少件,同步应用--- - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { - data: req_data, - }).then(res => { - if(res.data.code==0){ - var buy_num_data = res.data.data; - if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; - buynum = buy_num_data.goodsbuynum; - } - }) + bindInput(e) { + this.data.searchContent = e.detail.value; + }, - //---- 要计算商品的限购 ----- - if(good['viplimited']>0){ - if(cart_num+buynum>good['viplimited']){ - err_text+= good['goods_name']+"超出限购\n"; - continue; - } - good['viplimited']-=(cart_num+buynum); - if(b_item.goods_num>good['viplimited']){ - b_item.goods_num=good['viplimited']; - } + searchOnline() { + let currentIndex = this.data.currentIndex; + // console.log('online',this.data.searchContent, currentIndex); + if (this.data.searchContent) { + console.log(this.data.searchContent); + if (currentIndex == 0) { + this.resetData(), this.requestOrderList(this.data.activeCategoryId); + }; + if (currentIndex == 2) { // 卡项订单 + let url = '/api/weshop/recharge/user/page'; + let data = { + store_id: os.stoid, + user_id: oo.user_id, + keyWord: this.data.searchContent, + }; + this.setData({ + tabIndex: 0, + }); + // 请求数据 + app.promiseGet(url, { + data: data, + }).then(res => { + if (res.data.code == 0) { + // console.log('卡项订单请求成功', res); + this.setData({ + cardList: res.data.data.pageData, + }); + } else { + throw (res); + }; + }).catch(err => { + // console.log('卡项订单请求失败', err); + this.setData({ + cardList: [], + is_no_data2: 0, + is_no_more2: 0, + }); + // wx.showToast({ + // title: '搜索失败', + // icon: 'none', + // }); + }); + }; + } else { + wx.showToast({ + title: '您还没有输入搜索内容~', + icon: 'none', + }) + }; + }, - } + searchOffline() { + console.log('执行查询'); + let th = this; + let startDate = this.data.startDate; + let endDate = this.data.endDate; + + // this.data.is_no_data2 = 0; + this.setData({ + currentPage2: 1, + list2: [], + is_no_data2: 0, + is_no_more2:0 + }); - //-- 判断活动的库存 -- - if(prom) { - if (prom['goods_num'] <= prom['buy_num']) { - err_text += good['goods_name'] + "超出活动库存\n"; - continue; - } - if (b_item.goods_num > prom['goods_num'] - prom['buy_num']) { - b_item['goods_num'] = b_item['goods_num'] - b_item['buy_num']; - } + if (startDate == '选择开始时间' || endDate == '选择结束时间') { + wx.showToast({ + title: '请选择完整的查询时间~', + icon: 'none', + }) + }; - if (b_item.goods_num > redis_num) { - b_item.goods_num = redis_num; - } + if (new Date(startDate) > new Date(endDate)) { + wx.showToast({ + title: '不对噢!开始时间不能晚于结束时间~', + icon: 'none', + }) + return; + }; - if (prom['buy_limit'] > 0) { - if (cart_num + promgoodsbuynum >= prom['buy_limit']) { - err_text += good['goods_name'] + "超出活动限购\n"; - continue; - } - prom['buy_limit'] -= (cart_num + promgoodsbuynum); - if (b_item.goods_num > prom['buy_limit']) { - b_item.goods_num = prom['buy_limit']; - } - } - } + this.request_list({ + store_id: os.stoid, + user_id: oo.user_id, + page: 1, + BeginDate: this.data.startDate, + EndDate: this.data.endDate + }, function (res) { + if (res.data.data.total == 0) { + wx.showToast({ + title: '没有找到相关订单', + icon: 'none', + duration: 2000 + }) + } else { + th.setData({ + total: res.data.data.total + }); + } + }); + }, - back_goods_arr.push(b_item); //返回商品元素 - } - } + currentDate() { + var now = new Date(); + var year = now.getFullYear(); //年 + var month = now.getMonth() + 1; //月 + var day = now.getDate(); //日 + + var clock = year + "-"; + + if (month < 10) month += "0"; + clock += month + "-"; + + if (day < 10) day += "0"; + clock += day; - //有重新购买的数据是时候,就要重新生成订单 - if(back_goods_arr.length>0){ - th.setData({back_goods_arr:back_goods_arr}); - if(!err_text){ - th.more_add_cart(); - }else{ - wx.hideLoading(); - // 如果没有获取用户信息 + // if(hh < 10) + // clock += "0"; + + // clock += hh + ":"; + // if (mm < 10) clock += '0'; + // clock += mm + ":"; + + // if (ss < 10) clock += '0'; + // clock += ss; + return clock; + }, + + toast(msg) { + wx.showToast({ + title: msg, + icon: 'none', + duration: 3000 + }) + }, + + go_url(e) { + var url = e.currentTarget.dataset.url; + getApp().goto(url); + }, + + // 点击卡项订单二级tabbar + clickTab(e) { + // console.log('服务卡项index', e.target.dataset.index); + let currentIndex = 0; + if (e) { + currentIndex = e.target.dataset.index; + } else { + currentIndex = this.data.tabIndex + }; + + // let || this.data.tabIndex; + + let url = '/api/weshop/recharge/user/page'; + let data = { + store_id: os.stoid, + user_id: oo.user_id, + }; + this.setData({ + tabIndex: currentIndex, + is_no_data2: 0, + is_no_more2: 0, + cardList: [], + }); + + + switch (currentIndex) { + case 0: { // 全部 + delete data.order_status; + break; + }; + case 1: { // 待支付 + data.order_status = 0; + break; + }; + case 2: { // 待评价 + data.order_status = 1; + break; + }; + }; + // 请求数据 + this.request_list(data); + + // app.promiseGet(url, { + // data: data, + // }).then(res => { + // if(res.data.code == 0) { + // console.log('卡项订单请求成功', res); + // this.setData({ + // orderList: res.data.data.pageData, + // }); + // } else { + // throw(res); + // }; + // }).catch(err => { + // console.log('卡项订单请求失败', err); + // this.setData({ + // orderList: null, + // }); + // wx.showToast({ + // title: err.data.data, + // icon: 'error', + // }); + // }); + }, + + // 卡项订单 - 查看详情 + viewDetails() { + let url = '/packageA/pages/details_serviceCard/details_serviceCard'; + app.goto(url); + }, + + // 卡项订单 - 立即支付 + pay: async function (e) { + let index = e.currentTarget.dataset.index; + let item = this.data.cardList[index]; + let order_sn = item.order_sn; + let order_id = item.order_id; + let store_id = app.globalData.setting.stoid; + let user_id = oo.user_id; + let flag = true; + + + // 如果是普通购买或单独购买,不用判断 + // 如果是秒杀购买:1、判断活动是否变化;2、是否超出限购 + + let list = item.list; + for (const it of list) { + if (it.prom_type == 1) { + let act_details = null; + let redis_num = 0; + let promcardbuynum = 0; + let qty = it.qty; + + + await getApp().request.promiseGet('/api/ms/flash_sale/getNew/' + store_id + '/' + user_id + '/' + it.prom_id, {}).then(res => { + console.log('11111111====>>>'); + if (res.data.code == 0) { + console.log('当前的秒杀活动信息:', res.data.data); + act_details = res.data.data; + if (act_details.is_end == 1) { + wx.showModal({ + title: '提示', + content: '活动已结束,无法支付,请取消订单!', + showCancel: false, + }); + flag = false; + return false; + }; + if (act_details.id != it.prom_id) { + wx.showModal({ + title: '提示', + content: '活动发生了变化,无法支付,请取消订单,重新购买!', + showCancel: false, + }); + flag = false; + return false; + }; + }; + }); + + await getApp().request.promiseGet('/api/weshop/activitylist/getActLen/' + store_id + '/' + it.prom_type + '/' + it.prom_id, { + 1: 1 + }).then(res => { + console.log('222222222====>>>'); + if (res.data.code == 0) { + // 当前可以购买的数量 + console.log('redis当前可以购买的数量:', res.data.data); + redis_num = res.data.data; + // if(redis_num <=0) { + // wx.showModal({ + // title: '提示', + // content: '活动库存不足,无法支付,请取消订单!', + // showCancel: false, + // }); + // // flag = false; + // return true; + // }; + }; + }); + + await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum", { + data: { + store_id: store_id, + user_id: user_id, + card_id: it.card_id, + prom_type: it.prom_type, + prom_id: it.prom_id, + } + }).then(res => { + console.log('333333333====>>>'); + if (res.data.code == 0) { + console.log('已经购买的数量:', res.data.data); + promcardbuynum = res.data.data.promcardbuynum; + + + let limited = act_details.buy_limit; // 限购数量a + let buyedNum = promcardbuynum; // 自己已经购买的数量b + let canBuyNum = limited - buyedNum; // 自己还可购买的数量c + + + if (canBuyNum <= 0) { + wx.showModal({ + title: '提示', + content: '您已超出活动限购数量,无法支付,请取消订单!', + showCancel: false, + }); + flag = false; + return false; + }; + + if (limited > redis_num) { + if (canBuyNum <= redis_num) { + if (qty > canBuyNum) { + wx.showModal({ + title: '提示', + content: '您已超出活动限购数量,无法支付,请取消订单!', + showCancel: false, + }); + flag = false; + return false; + }; + + }; + + if (canBuyNum > redis_num) { + if (qty > redis_num) { + wx.showModal({ + title: '提示', + content: '活动库存不足,无法支付,请取消订单!', + showCancel: false, + }); + flag = false; + return false; + }; + + }; + }; + + if (limited <= redis_num) { + if (qty > canBuyNum) { wx.showModal({ - title:'确定', - content: err_text+',确定要买其他商品码?', - success(res) { - if (res.confirm) { - //跳转到登录页 - th.more_add_cart(); - }else{ - th.data.moring=0; - wx.hideLoading(); - } - },fail(){ - th.data.moring=0; - wx.hideLoading(); - } + title: '提示', + content: '您已超出活动限购数量,无法支付,请取消订单!', + showCancel: false, }); + flag = false; + return false; + }; + }; + }; + }); + + }; + + }; + + + if (flag) { + await app.request.promisePost('/api/weshop/order/pay/createRechargeOrder', { + data: { + parentSn: order_sn, + store_id: store_id, + }, + }).then(res => { + // success: function(res) { + var n = res.data.data; + self.weixinPay(n, function () { + app.showWarning('支付成功'); + + }, function () { + app.showWarning('支付失败'); + // setTimeout(function() { + // wx.reLaunch({ + // url: '/packageA/pages/cardList/cardList', + // }) + // }, 1000) + }); + // } + }); + }; + + }, + + //------调起支付框-------- + weixinPay: function (n, success, fail) { + if (!n) return false; + // let order_id = item.order_id; + + getApp().globalData.no_clear=1; + + wx.requestPayment({ + timeStamp: String(n.timeStamp), + nonceStr: n.nonceStr, + package: n.packageValue, + signType: n.signType, + paySign: n.paySign, + success: function (n) { + console.log(n), getApp().showSuccess("支付成功!"); + "function" == typeof success && success(); + wx.redirectTo({ + url: "/pages/payment/pay_success/pay_success?card=1&order_id=" + order_id, + }); + }, + fail: function (n) { + console.log(n), "requestPayment:fail" == n.errMsg ? getApp().showWarning("支付失败") : + "requestPayment:fail cancel" == n.errMsg ? getApp().showWarning("您已取消支付") : getApp().showWarning("支付失败:" + n + .errMsg.substr("requestPayment:fail ".length)), + "function" == typeof fail && fail(); + } + }); + }, + + // 卡项订单 - 取消订单 + // api/weshop/recharge/update?store_id=&order_id=&order_status=3 + cancle(e) { + wx.showModal({ + title: '提示', + content: '确定取消订单吗?', + success(res) { + if (res.confirm) { + console.log('取消订单~'); + let order_id = e.currentTarget.dataset.orderid; + let order_sn = e.currentTarget.dataset.ordersn; + app.request.put('/api/weshop/recharge/update', { + data: { + store_id: os.stoid, + order_id: order_id, + order_sn: order_sn, + order_status: 3, + }, + success: function (res) { + wx.showToast({ + title: '取消成功', + success: function () { + + // 这里还可以优化不刷新,后面有时间再优化 + self.setData({ + is_no_data2: 0, + is_no_more2: 0, + }); + + // 这里还可以优化不刷新,后面有时间再优化 + self.clickTab(e); + }, + }); + + // let index = e.currentTarget.dataset.index; + // let cardList = self.data.cardList; + // cardList.splice(index, 1); + // self.setData({ + // cardList, + // }); + + //self.request_list(self.data.currentRequestData); + }, + }) + } else if (res.cancel) { + console.log('用户点击取消'); + } + } + }); + }, + + + // 卡项订单 - 再来一单 + addCart: function (t) { + var th = this; + var ind = t.currentTarget.dataset.openSpecModal_ind; + var action = t.currentTarget.dataset.action; + if (!ind) ind = t.currentTarget.dataset.openspecmodal_ind; + + th.setData({ + open_ind_store: ind + }); + + if (!th.data.sto_sele_name) { + getApp().my_warnning('请选择门店', 1, th, 450); + return false; + } + + + if (action == "buy") { + //--------------此时操作的数据------------ + var newd = { + id: th.data.data.id, + goods_num: th.data.goodsInputNum, + pick_id: th.data.sto_sele_id, + keyid: th.data.sto_sele_keyid, + }; + newd['pick_name'] = th.data.sto_sele_name; + newd['guide_id'] = getApp().globalData.guide_id; + newd['guide_type'] = 0; + th.buyNow(newd); + } else { + + var newd = { + service_id: th.data.data.id, + service_sn: th.data.data.service_sn, + service_name: th.data.data.goods_name, + goods_num: th.data.goodsInputNum, + pick_id: th.data.sto_sele_id, + user_id: oo.user_id, + store_id: os.stoid, + money: th.data.data.shop_price + }; + if (getApp().globalData.guide_id) { + newd['guide_id'] = getApp().globalData.guide_id; + newd['guide_type'] = 0; + } + + //----先看会员在购物车中是否加入了该商品----- + getApp().request.get("/api/weshop/cartService/page", { + data: { + store_id: os.stoid, + user_id: oo.user_id, + service_id: th.data.data.id, + pick_id: th.data.sto_sele_id, + }, + success: function (re) { + + //-------如果购物车中有相关的数据--------- + if (re.data.data.total > 0) { + var item = re.data.data.pageData[0]; + var updata = { + id: item.id, + goods_num: th.data.goodsInputNum + item.goods_num, + money: th.data.data.shop_price, + store_id: os.stoid, + }; + + if (getApp().globalData.guide_id) { + updata['guide_id'] = getApp().globalData.guide_id; + updata['guide_type'] = 1; } - }else{ - th.data.moring=0; - wx.hideLoading(); - getApp().confirmBox(err_text); + getApp().request.put("/api/weshop/cartService/update", { + data: updata, + success: function (t) { + getApp().my_warnning('加入购物车成功', 1, th, 450); + var c_num = th.data.cartGoodsNum + th.data.goodsInputNum; + th.setData({ + cartGoodsNum: c_num + }); + th.closeSpecModal(); + } + }); + } else { + + getApp().request.post("/api/weshop/cartService/save", { + data: newd, + success: function (t) { + getApp().my_warnning('加入购物车成功', 1, th, 450); + var c_num = th.data.cartGoodsNum + th.data.goodsInputNum; + th.setData({ + cartGoodsNum: c_num + }); + th.closeSpecModal(); + } + }); + } } - }, - - more_add_cart:async function(){ - var back_goods_arr=this.data.back_goods_arr; - var err_text=""; - var ok_num=0; - - for(var i in back_goods_arr){ - //商品ID - var g_item=back_goods_arr[i]; - var newd = { - goods_id: g_item.goods_id, - goods_num: g_item.goods_num, - pick_id: g_item.pickup_id, - user_id: oo.user_id, - store_id: os.stoid, - goods_price: g_item.price, - member_goods_price: g_item.price, - goods_name: g_item.goods_name, - goods_sn: g_item.goods_sn, - sku: g_item.sku, - }; - - if(g_item.guide_id){ - newd['guide_id']=g_item.guide_id; - newd['guide_type']=g_item.guide_type; - } - - if(g_item.is_integral_normal){ - newd['is_integral_normal']=g_item.is_integral_normal; - } - if(g_item.is_pd_normal){ - newd['is_pd_normal']=g_item.is_pd_normal; - } - - if(g_item.prom_type){ - newd['prom_type']=g_item.prom_type; - newd['prom_id']=g_item.prom_id; - } - - - var b_cart_goods=null; - await getApp().request.promiseGet("/api/weshop/cart/page", { - data: { - store_id: os.stoid, - user_id: oo.user_id, - goods_id: g_item.goods_id, - pick_id: g_item.pickup_id, - state:0, - }, - }).then(res=>{ - //-------如果购物车中有相关的数据------- - if (res.data.data.total > 0) { - b_cart_goods= res.data.data.pageData[0]; - } - }) - - //-- 如果就加入过购物车 -- - if(b_cart_goods){ - var updata = { - id: b_cart_goods.id, - goods_num: newd.goods_num + b_cart_goods.goods_num, - goods_price: newd.goods_price, - member_goods_price:newd.goods_price, - store_id: os.stoid, - }; - if(newd.guide_id){ - updata.guide_id=newd.guide_id; - updata.guide_type=newd.guide_type; - } - if(newd.prom_type){ - updata.prom_type=newd.prom_type; - updata.prom_id=newd.prom_id; - } - - await getApp().request.promisePut("/api/weshop/cart/update", { - data: updata - }).then(res=>{ - if(res.data.code==0) { - ok_num++; - }else{ - err_text+=newd.goods_name+"加入购物车失败\n"; - } - }) - - }else{ - await getApp().request.promisePost("/api/weshop/cart/save", { - data: newd - }).then(res=>{ - if(res.data.code==0) { - ok_num++; - }else{ - err_text+=newd.goods_name+"加入购物车失败\n"; - } - }) - } - } - wx.hideLoading(); - this.data.moring=0; - if(ok_num==0){ - //-- 如果没有获取用户信息 -- - wx.showModal({ - title:'提示', - content: err_text, - success(res) {} - }); - }else{ - if(err_text==""){ - getApp().goto("/pages/cart/cart/cart"); - }else{ - // 如果没有获取用户信息 - wx.showModal({ - title:'提示', - content: err_text, - success(res) { - if (res.confirm) { - //跳转到登录页 - getApp().goto("/pages/cart/cart/cart"); - } - } - }); - - } - } + }); + + } }, - - request_list: function(data, callback){ - // console.log('进入request_list'); - - var th = this; - if(this.data.is_load2) return false; //-- 正在加载 - if(this.data.is_no_data2) return false; //-- 没有数据 - if(this.data.is_no_more2) return false; //-- 没有更多 - - // 开启加载状态 - this.data.is_load2=1; - - // var req_data = { - // page:th.data.currentPage2 - // } - let currentIndex = this.data.currentIndex; - let url = ''; - if(currentIndex == 1) { - url = '/api/weshop/order/pagePosOrder'; - }; - if(currentIndex == 2) { - url = '/api/weshop/recharge/user/page'; - }; - - app.request.promiseGet(url, { - data: data - }).then(res=>{ - // 关闭加载状态 - th.data.is_load2=0; - // 请求成功 - if(res.data.code==0) { - if(res.data.data.pageData.length>0) { - th.data.currentPage2++; - var data = res.data.data.pageData; - // 判断有无更多数据可以加载,如果大于则没有更多数据,反之则有 - if(res.data.data.page*res.data.data.pageSize > res.data.data.total){th.setData({is_no_more2:1});} - let list= []; - - if(currentIndex == 1) { - list = list.concat(data); - th.setData({list2:list}); - }; - if(currentIndex == 2) { // 卡项订单 - list = th.data.cardList; - list = list.concat(data); - th.setData({cardList:list}); - console.log('currentCard', list); - }; - - } else { - if(th.data.currentPage2==1){ - th.setData({is_no_data2:1}); - } else { - th.setData({is_no_more2:1}); - } - } - if(callback) callback(res); - } else { - // wx.showToast({ - // title: res.data.msg, - // icon: 'none', - // duration: 2000 - // }) - } - }) - }, - - - onClickTab(e) { - let currentIndex = e.target.dataset.index; - this.setData({ - currentIndex: currentIndex - }); - - this.setData({ - is_no_data2: 0, - is_no_more2: 0, - currentPage2: 1, - }); - if(currentIndex == 0) { - console.log('线上订单'); - /*--- - this.setData({ - startDate: '选择开始时间', - endDate: '选择结束时间', - });--*/ - }; - if(currentIndex == 1) { - console.log('线下订单'); - this.request_list({ - store_id: os.stoid, - user_id: oo.user_id, - page: 1, - BeginDate: this.data.startDate, - EndDate: this.data.endDate - }); - }; - if(currentIndex == 2) { - console.log('卡项订单'); - // this.setData({ - // orderList: null, - // }); - // 默认请求全部卡项订单 - this.request_list({ - store_id: os.stoid, - user_id: oo.user_id, - }); - // let url = '/api/weshop/recharge/user/page'; - // let data = { - // store_id: os.stoid, - // user_id: oo.user_id, - // }; - // app.promiseGet(url, { - // data: data, - // }).then(res => { - // if(res.data.code == 0) { - // console.log('卡项订单请求成功', res); - // this.setData({ - // orderList: res.data.data.pageData, - // }); - // } else { - // throw(res); - // }; - // }).catch(err => { - // console.log('卡项订单请求失败', err); - // this.setData({ - // orderList: null, - // }); - // wx.showToast({ - // title: err.data.data, - // icon: 'error', - // }); - // }); - }; - }, - - bindDateChange1: function(e) { - console.log('picker发送选择改变,携带值为', e.detail.value) - this.setData({ - startDate: e.detail.value - }) - }, - - bindDateChange2: function(e) { - console.log('picker发送选择改变,携带值为', e.detail.value) - this.setData({ - endDate: e.detail.value - }) - }, - - bindInput(e) { - this.data.searchContent = e.detail.value; - }, - - searchOnline() { - let currentIndex = this.data.currentIndex; - // console.log('online',this.data.searchContent, currentIndex); - if(this.data.searchContent) { - console.log(this.data.searchContent); - if(currentIndex == 0) { - this.resetData(), this.requestOrderList(this.data.activeCategoryId); - }; - if(currentIndex == 2) { // 卡项订单 - let url = '/api/weshop/recharge/user/page'; - let data = { - store_id: os.stoid, - user_id: oo.user_id, - keyWord: this.data.searchContent, - }; - this.setData({ - tabIndex: 0, - }); - // 请求数据 - app.promiseGet(url, { - data: data, - }).then(res => { - if(res.data.code == 0) { - // console.log('卡项订单请求成功', res); - this.setData({ - cardList: res.data.data.pageData, - }); - } else { - throw(res); - }; - }).catch(err => { - // console.log('卡项订单请求失败', err); - this.setData({ - cardList: [], - is_no_data2: 0, - is_no_more2: 0, - }); - // wx.showToast({ - // title: '搜索失败', - // icon: 'none', - // }); - }); - }; - } else { - wx.showToast({ - title: '您还没有输入搜索内容~', - icon: 'none', - }) - }; - }, - - searchOffline() { - console.log('执行查询'); - let th = this; - let startDate = this.data.startDate; - let endDate = this.data.endDate; - - // this.data.is_no_data2 = 0; - this.setData({ - currentPage2: 1, - list2: [], - is_no_data2: 0, - is_no_more2:0 - }); - - - if(startDate == '选择开始时间' || endDate == '选择结束时间') { - wx.showToast({ - title: '请选择完整的查询时间~', - icon: 'none', - }) - }; - - if(new Date(startDate) > new Date(endDate)) { - wx.showToast({ - title: '不对噢!开始时间不能晚于结束时间~', - icon: 'none', - }) - return; - }; - - - this.request_list({ - store_id: os.stoid, - user_id: oo.user_id, - page: 1, - BeginDate: this.data.startDate, - EndDate: this.data.endDate - }, function(res) { - if(res.data.data.total == 0) { - wx.showToast({ - title: '没有找到相关订单', - icon: 'none', - duration: 2000 - }) - } else { - th.setData({ - total: res.data.data.total - }); - } - }); - }, - - currentDate() { - var now = new Date(); - var year = now.getFullYear(); //年 - var month = now.getMonth() + 1; //月 - var day = now.getDate(); //日 - - var clock = year + "-"; - - if(month < 10) month += "0"; - clock += month + "-"; - - if(day < 10) day += "0"; - clock += day; - - // if(hh < 10) - // clock += "0"; - - // clock += hh + ":"; - // if (mm < 10) clock += '0'; - // clock += mm + ":"; - - // if (ss < 10) clock += '0'; - // clock += ss; - return clock; - }, - - toast(msg){ - wx.showToast({ - title: msg, - icon: 'none', - duration: 3000 - }) - }, - - go_url(e){ - var url=e.currentTarget.dataset.url; - getApp().goto(url); - }, - - // 点击卡项订单二级tabbar - clickTab(e) { - // console.log('服务卡项index', e.target.dataset.index); - let currentIndex = 0; - if(e) { - currentIndex = e.target.dataset.index; - } else { - currentIndex = this.data.tabIndex - }; - - // let || this.data.tabIndex; - - let url = '/api/weshop/recharge/user/page'; - let data = { - store_id: os.stoid, - user_id: oo.user_id, - }; - this.setData({ - tabIndex: currentIndex, - is_no_data2: 0, - is_no_more2: 0, - cardList: [], - }); - - - switch(currentIndex) { - case 0: { // 全部 - delete data.order_status; - break; - }; - case 1: { // 待支付 - data.order_status = 0; - break; - }; - case 2: { // 待评价 - data.order_status = 1; - break; - }; - }; - // 请求数据 - this.request_list(data); - - // app.promiseGet(url, { - // data: data, - // }).then(res => { - // if(res.data.code == 0) { - // console.log('卡项订单请求成功', res); - // this.setData({ - // orderList: res.data.data.pageData, - // }); - // } else { - // throw(res); - // }; - // }).catch(err => { - // console.log('卡项订单请求失败', err); - // this.setData({ - // orderList: null, - // }); - // wx.showToast({ - // title: err.data.data, - // icon: 'error', - // }); - // }); - }, - - // 卡项订单 - 查看详情 - viewDetails() { - let url = '/packageA/pages/details_serviceCard/details_serviceCard'; - app.goto(url); - }, - - // 卡项订单 - 立即支付 - pay: async function(e) { - let index = e.currentTarget.dataset.index; - let item = this.data.cardList[index]; - let order_sn = item.order_sn; - let order_id = item.order_id; - let store_id = app.globalData.setting.stoid; - let user_id = oo.user_id; - let flag = true; - - - // 如果是普通购买或单独购买,不用判断 - // 如果是秒杀购买:1、判断活动是否变化;2、是否超出限购 - - let list = item.list; - for(const it of list) { - if(it.prom_type == 1) { - let act_details = null; - let redis_num = 0; - let promcardbuynum = 0; - let qty = it.qty; - - - await getApp().request.promiseGet('/api/ms/flash_sale/getNew/' + store_id + '/' + user_id + '/' + it.prom_id, {}).then(res => { - console.log('11111111====>>>'); - if(res.data.code == 0) { - console.log('当前的秒杀活动信息:', res.data.data); - act_details = res.data.data; - if(act_details.is_end == 1) { - wx.showModal({ - title: '提示', - content: '活动已结束,无法支付,请取消订单!', - showCancel: false, - }); - flag = false; - return false; - }; - if(act_details.id != it.prom_id) { - wx.showModal({ - title: '提示', - content: '活动发生了变化,无法支付,请取消订单,重新购买!', - showCancel: false, - }); - flag = false; - return false; - }; - }; - }); - - await getApp().request.promiseGet('/api/weshop/activitylist/getActLen/' + store_id + '/' + it.prom_type + '/' + it.prom_id, { - 1: 1 - }).then(res => { - console.log('222222222====>>>'); - if (res.data.code == 0) { - // 当前可以购买的数量 - console.log('redis当前可以购买的数量:', res.data.data); - redis_num = res.data.data; - // if(redis_num <=0) { - // wx.showModal({ - // title: '提示', - // content: '活动库存不足,无法支付,请取消订单!', - // showCancel: false, - // }); - // // flag = false; - // return true; - // }; - }; - }); - - await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum", { - data: { - store_id: store_id, - user_id: user_id, - card_id: it.card_id, - prom_type: it.prom_type, - prom_id: it.prom_id, - } - }).then(res => { - console.log('333333333====>>>'); - if (res.data.code == 0) { - console.log('已经购买的数量:', res.data.data); - promcardbuynum = res.data.data.promcardbuynum; - - - let limited = act_details.buy_limit; // 限购数量a - let buyedNum = promcardbuynum; // 自己已经购买的数量b - let canBuyNum = limited - buyedNum; // 自己还可购买的数量c - - - if(canBuyNum <= 0) { - wx.showModal({ - title: '提示', - content: '您已超出活动限购数量,无法支付,请取消订单!', - showCancel: false, - }); - flag = false; - return false; - }; - - if(limited > redis_num) { - if(canBuyNum <= redis_num) { - if(qty > canBuyNum) { - wx.showModal({ - title: '提示', - content: '您已超出活动限购数量,无法支付,请取消订单!', - showCancel: false, - }); - flag = false; - return false; - }; - - }; - - if(canBuyNum > redis_num) { - if(qty > redis_num) { - wx.showModal({ - title: '提示', - content: '活动库存不足,无法支付,请取消订单!', - showCancel: false, - }); - flag = false; - return false; - }; - - }; - }; - - if(limited <= redis_num) { - if(qty > canBuyNum) { - wx.showModal({ - title: '提示', - content: '您已超出活动限购数量,无法支付,请取消订单!', - showCancel: false, - }); - flag = false; - return false; - }; - }; - }; - }); - - }; - - }; - - - if(flag) { - await app.request.promisePost('/api/weshop/order/pay/createRechargeOrder', { - data: { - parentSn: order_sn, - store_id: store_id, - }, - }).then(res => { - // success: function(res) { - var n = res.data.data; - self.weixinPay(n, function() { - app.showWarning('支付成功'); - - }, function() { - app.showWarning('支付失败'); - // setTimeout(function() { - // wx.reLaunch({ - // url: '/packageA/pages/cardList/cardList', - // }) - // }, 1000) - }); - // } - }); - }; - - - }, - - //------调起支付框-------- - weixinPay: function(n, success, fail) { - if (!n) return false; - // let order_id = item.order_id; - getApp().globalData.no_clear=1; - wx.requestPayment({ - timeStamp: String(n.timeStamp), - nonceStr: n.nonceStr, - package: n.packageValue, - signType: n.signType, - paySign: n.paySign, - success: function(n) { - console.log(n), getApp().showSuccess("支付成功!"); - "function" == typeof success && success(); - wx.redirectTo({ - url: "/pages/payment/pay_success/pay_success?card=1&order_id=" + order_id, - }); - }, - fail: function(n) { - console.log(n), "requestPayment:fail" == n.errMsg ? getApp().showWarning("支付失败") : - "requestPayment:fail cancel" == n.errMsg ? getApp().showWarning("您已取消支付") : getApp().showWarning("支付失败:" + n - .errMsg.substr("requestPayment:fail ".length)), - "function" == typeof fail && fail(); - } - }); - }, - - // 卡项订单 - 取消订单 - // api/weshop/recharge/update?store_id=&order_id=&order_status=3 - cancle(e) { - wx.showModal({ - title: '提示', - content: '确定取消订单吗?', - success (res) { - if (res.confirm) { - console.log('取消订单~'); - let order_id = e.currentTarget.dataset.orderid; - let order_sn = e.currentTarget.dataset.ordersn; - app.request.put('/api/weshop/recharge/update', { - data: { - store_id: os.stoid, - order_id: order_id, - order_sn: order_sn, - order_status: 3, - }, - success: function(res) { - wx.showToast({ - title: '取消成功', - success: function() { - - // 这里还可以优化不刷新,后面有时间再优化 - self.setData({ - is_no_data2: 0, - is_no_more2: 0, - }); - - // 这里还可以优化不刷新,后面有时间再优化 - self.clickTab(e); - }, - }); - - // let index = e.currentTarget.dataset.index; - // let cardList = self.data.cardList; - // cardList.splice(index, 1); - // self.setData({ - // cardList, - // }); - - //self.request_list(self.data.currentRequestData); - }, - }) - } else if (res.cancel) { - console.log('用户点击取消'); - } - } - }); - }, - - - // 卡项订单 - 再来一单 - addCart: function(t) { - var th = this; - var ind = t.currentTarget.dataset.openSpecModal_ind; - var action= t.currentTarget.dataset.action; - if(!ind) ind = t.currentTarget.dataset.openspecmodal_ind; - - th.setData({ - open_ind_store: ind - }); - - if(!th.data.sto_sele_name){ - getApp().my_warnning('请选择门店', 1, th, 450); - return false; - } - - - if(action=="buy"){ - //--------------此时操作的数据------------ - var newd = { - id: th.data.data.id, - goods_num: th.data.goodsInputNum, - pick_id: th.data.sto_sele_id, - keyid: th.data.sto_sele_keyid, - }; - newd['pick_name'] = th.data.sto_sele_name; - newd['guide_id'] = getApp().globalData.guide_id; - newd['guide_type']=0; - th.buyNow(newd); - }else{ - - var newd = { - service_id: th.data.data.id, - service_sn:th.data.data.service_sn, - service_name:th.data.data.goods_name, - goods_num: th.data.goodsInputNum, - pick_id: th.data.sto_sele_id, - user_id:oo.user_id, - store_id:os.stoid, - money:th.data.data.shop_price - }; - if(getApp().globalData.guide_id){ - newd['guide_id'] = getApp().globalData.guide_id; - newd['guide_type']=0; - } - - //----先看会员在购物车中是否加入了该商品----- - getApp().request.get("/api/weshop/cartService/page", { - data: { - store_id: os.stoid, - user_id: oo.user_id, - service_id: th.data.data.id, - pick_id: th.data.sto_sele_id, - }, - success: function(re) { - - //-------如果购物车中有相关的数据--------- - if (re.data.data.total > 0) { - var item = re.data.data.pageData[0]; - var updata = { - id: item.id, - goods_num: th.data.goodsInputNum + item.goods_num, - money: th.data.data.shop_price, - store_id: os.stoid, - }; - - if (getApp().globalData.guide_id) { - updata['guide_id'] = getApp().globalData.guide_id; - updata['guide_type'] = 1; - } - getApp().request.put("/api/weshop/cartService/update", { - data: updata, - success: function(t) { - getApp().my_warnning('加入购物车成功', 1, th, 450); - var c_num = th.data.cartGoodsNum + th.data.goodsInputNum; - th.setData({ - cartGoodsNum: c_num - }); - th.closeSpecModal(); - } - }); - } else { - - getApp().request.post("/api/weshop/cartService/save", { - data: newd, - success: function(t) { - getApp().my_warnning('加入购物车成功', 1, th, 450); - var c_num = th.data.cartGoodsNum + th.data.goodsInputNum; - th.setData({ - cartGoodsNum: c_num - }); - th.closeSpecModal(); - } - }); - } - } - }); - - } - }, - - - - - + + + }); \ No newline at end of file diff --git a/pages/user/plus/plus.js b/pages/user/plus/plus.js index 715a9d3..d14558a 100644 --- a/pages/user/plus/plus.js +++ b/pages/user/plus/plus.js @@ -42,6 +42,7 @@ Page({ staffNo_arr: [], //多个营业员 focus:false, is_select: false, //是否选择营业员过 + is_buy_card_id:"",//是否是链接直接过来购买的卡号id }, swiperChange: function (e) { var currentId = e.detail.current; @@ -84,6 +85,13 @@ Page({ }) } + //判断是否是链接直接扫码购买 + let is_buy_card_id = options.is_buy_card_id + if(is_buy_card_id){ + that.setData({ + is_buy_card_id + }) + } //--先判断会员状态-- var user_info = getApp().globalData.userInfo; @@ -262,7 +270,21 @@ Page({ is_plusCard: parr, is_show: 1 }) - + if(th.data.is_buy_card_id){ + let i = parr.findIndex(item=>item.CardId==th.data.is_buy_card_id) + if(i>-1){ + // th.setData({ + // by_index:i + // }) + // th.buy_card() + let e={ + currentTarget:{ + dataset:{ind:i} + } + } + th.Opening(e) + } + } } else { th.setData({ is_show: 1 -- libgit2 0.21.4