Commit e24ef618da370ff34fa25c0551bb9cbc6be48e7f

Authored by 前端开发-罗建龙
1 parent 8806f0ce

oa单购物车组合购优化

Showing 1 changed file with 4059 additions and 4036 deletions
pages/cart/cart/cart.js
1 var t = getApp(), 1 var t = getApp(),
2 - a = t.request,  
3 - oo = t.globalData.setting,  
4 - os = oo,  
5 - app = getApp(),  
6 - rq = t.request,  
7 - ut = require("../../../utils/util.js"),  
8 - zh_calc = require("zh_calculate.js"),  
9 - ladder_calc = require("ladder_calculate.js");  
10 - var regeneratorRuntime = require('../../../utils/runtime.js'); 2 + a = t.request,
  3 + oo = t.globalData.setting,
  4 + os = oo,
  5 + app = getApp(),
  6 + rq = t.request,
  7 + ut = require("../../../utils/util.js"),
  8 + zh_calc = require("zh_calculate.js"),
  9 + ladder_calc = require("ladder_calculate.js");
  10 +var regeneratorRuntime = require('../../../utils/runtime.js');
11 11
12 12
13 Page({ 13 Page({
14 - data: {  
15 - url: t.globalData.setting.url,  
16 - resourceUrl: t.globalData.setting.resourceUrl,  
17 - iurl: t.globalData.setting.imghost,  
18 - requestData: null,  
19 - checkAllToggle: 0,  
20 - total_fee: 0, //结算金额  
21 - total_num: 0, //结算数量  
22 - all_num: 0, //购物车中所有商品数量  
23 - allsto: null,  
24 - imgUrl: t.globalData.setting.imghost,  
25 - is_has_flash: 0, //是否又秒杀活动  
26 - is_edit: 0, //是否编辑  
27 - is_load: 0, //是否已加载  
28 - up_dating: 0, //更新中  
29 - isreduce: 0, //商品数量是否可减  
30 - isadd: 0, //是否可以加商品数量  
31 - invalidList:[], //失效商品列表  
32 -  
33 - card_field:"",  
34 - bconf:null,  
35 - btn_click:1,  
36 -  
37 - service_data:null,  
38 - max_sw_height:200,  
39 -  
40 - zhhe_prom:[], //组合活动需要显示差多少件  
41 - zuhe_map:{},  
42 - zuhe_map_good:{},  
43 - in_zhact_gdmap:{}, //不同门店参与同一活动的限购  
44 -  
45 - ladder_map:{}, //阶梯促销需要的map  
46 -  
47 - promgoods_map:{},  
48 - promgoods_list:{}  
49 -  
50 - },  
51 - onLoad: function () {  
52 -  
53 - var a = this,  
54 - ee = a;  
55 -  
56 - wx.setNavigationBarTitle({  
57 - title: "购物车",  
58 - }) 14 + data: {
  15 + url: t.globalData.setting.url,
  16 + resourceUrl: t.globalData.setting.resourceUrl,
  17 + iurl: t.globalData.setting.imghost,
  18 + requestData: null,
  19 + checkAllToggle: 0,
  20 + total_fee: 0, //结算金额
  21 + total_num: 0, //结算数量
  22 + all_num: 0, //购物车中所有商品数量
  23 + allsto: null,
  24 + imgUrl: t.globalData.setting.imghost,
  25 + is_has_flash: 0, //是否又秒杀活动
  26 + is_edit: 0, //是否编辑
  27 + is_load: 0, //是否已加载
  28 + up_dating: 0, //更新中
  29 + isreduce: 0, //商品数量是否可减
  30 + isadd: 0, //是否可以加商品数量
  31 + invalidList: [], //失效商品列表
  32 +
  33 + card_field: "",
  34 + bconf: null,
  35 + btn_click: 1,
  36 +
  37 + service_data: null,
  38 + max_sw_height: 200,
  39 +
  40 + zhhe_prom: [], //组合活动需要显示差多少件
  41 + zuhe_map: {},
  42 + zuhe_map_good: {},
  43 + in_zhact_gdmap: {}, //不同门店参与同一活动的限购
  44 +
  45 + ladder_map: {}, //阶梯促销需要的map
  46 +
  47 + promgoods_map: {},
  48 + promgoods_list: {}
59 49
60 - //判断是否有登录  
61 - t.auth.hadAuth() && t.getUserInfo(function () {  
62 - //a.getCardList();  
63 - }); 50 + },
  51 + onLoad: function () {
64 52
65 - },  
66 - onShow: function () {  
67 - //每次显示都清空  
68 - this.data.in_zhact_gdmap = {};  
69 - this.setData({  
70 - invalidList:[]  
71 - }); 53 + var a = this,
  54 + ee = a;
72 55
73 - if (typeof this.getTabBar === 'function' && this.getTabBar()) {  
74 - var index = getApp().getPageIndex(this);  
75 - this.getTabBar().setData({  
76 - active: index //数字是当前页面在tabbar的索引  
77 - }) 56 + wx.setNavigationBarTitle({
  57 + title: "购物车",
  58 + })
  59 +
  60 + //判断是否有登录
  61 + t.auth.hadAuth() && t.getUserInfo(function () {
  62 + //a.getCardList();
  63 + });
  64 +
  65 + },
  66 + onShow: function () {
  67 + //每次显示都清空
  68 + this.data.in_zhact_gdmap = {};
  69 + this.setData({
  70 + invalidList: []
  71 + });
  72 +
  73 + if (typeof this.getTabBar === 'function' && this.getTabBar()) {
  74 + var index = getApp().getPageIndex(this);
  75 + this.getTabBar().setData({
  76 + active: index //数字是当前页面在tabbar的索引
  77 + })
  78 +
  79 + getApp().requestCardNum(this);
  80 + }
78 81
79 - getApp().requestCardNum(this); 82 + var th = this;
  83 + this.setData({
  84 + requestData: null,
  85 + is_load: 0
  86 + });
  87 + //调用底部导航
  88 + //t.editTabBar(th,getApp().globalData.setting.stoid,getApp().globalData.url);
  89 + //----获取系统参数-----
  90 + getApp().getConfig2(function (e) {
  91 + var json_d = JSON.parse(e.switch_list);
  92 + var is_open_offline = json_d.is_pricing_open;
  93 + th.setData({
  94 + bconfig: e,
  95 + freight_free: e.freight_free,
  96 + weight_free: e.weight_free,
  97 + sales_rules: e.sales_rules,
  98 + appoint_pick_keyid: json_d.appoint_pick_keyid
  99 + });
  100 + getApp().request.promiseGet("/store/storemoduleendtime/page?store_id=" + os.stoid + "&type=6", {}).then(res => {
  101 + //未购买
  102 + if (res.data.code != 0 || !res.data.data || !res.data.data.pageData || !res.data.data.pageData.length) {
  103 + is_open_offline = 0;
  104 + } else {
  105 + //已经过期
  106 + var item = res.data.data.pageData[0];
  107 + if (item.end_time < ut.gettimestamp()) {
  108 + is_open_offline = 0;
  109 + }
80 } 110 }
  111 + th.data.is_open_offline = is_open_offline;
  112 + th.getCardList();
  113 + });
81 114
82 - var th = this;  
83 - this.setData({  
84 - requestData: null,  
85 - is_load: 0 115 + }, 1)
  116 +
  117 + //-- 判断有没有自定义的广告图片 --
  118 + getApp().request.promiseGet("/api/weshop/ad/page?pid=1101&store_id=" + os.stoid, {
  119 + data: {
  120 + enabled: 1
  121 + }
  122 + }).then(res => {
  123 + if (ut.ajax_ok(res)) {
  124 + var a = res.data.data.pageData;
  125 + var narr = [];
  126 + for (var i in a) {
  127 + var tt = {
  128 + 'ad_code': os.imghost + a[i].ad_code,
  129 + 'media_link': '',
  130 + 'ad_weapplink': a[i].ad_weapplink
  131 + };
  132 + narr.push(tt);
  133 + }
  134 + th.setData({ ad_data: narr });
  135 + } else {
  136 +
  137 + var user_id = getApp().globalData.user_id;
  138 + if (!user_id) user_id = 0;
  139 + var req_d = {
  140 + store_id: oo.stoid,
  141 + timetype: 2,
  142 + is_end: 0,
  143 + is_show: 1,
  144 + pageSize: 1,
  145 + user_id: user_id
  146 + }
  147 + //--获取是否又秒杀活动--
  148 + getApp().request.promiseGet("/api/ms/flash_sale/spikepage", {
  149 + data: req_d,
  150 + }).then(res => {
  151 + if (ut.ajax_ok(res)) {
  152 + th.setData({
  153 + is_has_flash: 1
  154 + })
  155 + }
86 }); 156 });
87 - //调用底部导航  
88 - //t.editTabBar(th,getApp().globalData.setting.stoid,getApp().globalData.url);  
89 - //----获取系统参数-----  
90 - getApp().getConfig2(function(e) {  
91 - var json_d = JSON.parse(e.switch_list);  
92 - var is_open_offline=json_d.is_pricing_open;  
93 - th.setData({  
94 - bconfig: e,  
95 - freight_free:e.freight_free,  
96 - weight_free:e.weight_free,  
97 - sales_rules:e.sales_rules,  
98 - appoint_pick_keyid:json_d.appoint_pick_keyid  
99 - });  
100 - getApp().request.promiseGet("/store/storemoduleendtime/page?store_id=" +os.stoid + "&type=6",{}).then(res=>{  
101 - //未购买  
102 - if(res.data.code!=0 || !res.data.data || !res.data.data.pageData || !res.data.data.pageData.length){  
103 - is_open_offline=0;  
104 - }else{  
105 - //已经过期  
106 - var item=res.data.data.pageData[0];  
107 - if(item.end_time<ut.gettimestamp()){  
108 - is_open_offline=0;  
109 - }  
110 - }  
111 - th.data.is_open_offline=is_open_offline;  
112 - th.getCardList();  
113 - }); 157 + }
  158 + })
114 159
115 - },1)  
116 -  
117 - //-- 判断有没有自定义的广告图片 --  
118 - getApp().request.promiseGet("/api/weshop/ad/page?pid=1101&store_id=" + os.stoid, {  
119 - data: {  
120 - enabled: 1  
121 - }  
122 - }).then(res => {  
123 - if( ut.ajax_ok(res)){  
124 - var a = res.data.data.pageData;  
125 - var narr=[];  
126 - for(var i in a){  
127 - var tt = {  
128 - 'ad_code': os.imghost + a[i].ad_code,  
129 - 'media_link': '',  
130 - 'ad_weapplink':a[i].ad_weapplink  
131 - };  
132 - narr.push(tt);  
133 - }  
134 - th.setData({ad_data:narr});  
135 - }else{  
136 -  
137 - var user_id=getApp().globalData.user_id;  
138 - if(!user_id) user_id=0;  
139 - var req_d= {  
140 - store_id: oo.stoid,  
141 - timetype: 2,  
142 - is_end: 0,  
143 - is_show: 1,  
144 - pageSize: 1,  
145 - user_id: user_id  
146 - }  
147 - //--获取是否又秒杀活动--  
148 - getApp().request.promiseGet("/api/ms/flash_sale/spikepage", {  
149 - data: req_d,  
150 - }).then(res => {  
151 - if (ut.ajax_ok(res)) {  
152 - th.setData({  
153 - is_has_flash: 1  
154 - })  
155 - }  
156 - });  
157 - }  
158 - })  
159 160
  161 + },
160 162
161 - },  
162 -  
163 - onHide() {  
164 - this.data.zuhe_map = {};  
165 - this.data.promgoods_map={};  
166 - this.data.promgoods_list={};  
167 - },  
168 - onUnLoad() {  
169 - getApp().globalData.cart_zh_act = null;  
170 - },  
171 -  
172 - //失效商品处理  
173 - // invType 表示失效的原因,classType 表示类别 0 表示商品,1表示服务  
174 - disInvalid(item,invType=0,classType=0){  
175 - let invalidList = this.data.invalidList;  
176 - let off = true;  
177 - console.log('失效商品-----1')  
178 - console.log(item)  
179 - console.log('失效商品-----2')  
180 - invalidList.map(ite=>{  
181 - if(classType ==0 && ite.goods_id == item.goods_id){ //判断该商品是否存在于失效列表中  
182 - off = false;  
183 - }  
184 - if(classType ==1 && ite.service_id == item.service_id){ //判断该商品是否存在于失效列表中  
185 - off = false;  
186 - }  
187 - });  
188 - if(off){  
189 - if(invType==0){  
190 - item.invalid = '商品活动变动';  
191 - }else if(invType ==1){  
192 - item.invalid = '商品已下架';  
193 - }else{  
194 - item.invalid ="商品超出限购"  
195 - }  
196 - item.classType = classType  
197 - invalidList.push(item);  
198 - this.setData({invalidList}); 163 + onHide() {
  164 + this.data.zuhe_map = {};
  165 + this.data.promgoods_map = {};
  166 + this.data.promgoods_list = {};
  167 + },
  168 + onUnLoad() {
  169 + getApp().globalData.cart_zh_act = null;
  170 + },
  171 +
  172 + //失效商品处理
  173 + // invType 表示失效的原因,classType 表示类别 0 表示商品,1表示服务
  174 + disInvalid(item, invType = 0, classType = 0) {
  175 + let invalidList = this.data.invalidList;
  176 + let off = true;
  177 + console.log('失效商品-----1')
  178 + console.log(item)
  179 + console.log('失效商品-----2')
  180 + invalidList.map(ite => {
  181 + if (classType == 0 && ite.goods_id == item.goods_id) { //判断该商品是否存在于失效列表中
  182 + off = false;
199 } 183 }
200 - },  
201 - //-------------获取购物车列表,要安装门店进行分类订单-----------  
202 - getCardList: function () {  
203 - this.setData({invalidList:[]}); //重置失效商品  
204 - var th = this;  
205 -  
206 - //要获取会员是不是等级会员  
207 - getApp().getConfig2(function (conf) {  
208 - //--- 看后台是不是有开通等级卡 ---  
209 - if (conf.switch_list) {  
210 - var s_list = JSON.parse(conf.switch_list);  
211 - var user = getApp().globalData.userInfo;  
212 - //如果后台有开启等级价的功能  
213 - if (user && parseInt(s_list.rank_switch) == 2 && user['card_expiredate']) {  
214 -  
215 - var str = user['card_expiredate'].replace(/-/g, '/');  
216 - var end = new Date(str);  
217 - end = Date.parse(end) / 1000;  
218 - var now = ut.gettimestamp();  
219 - //--- 判断是等级会员,且在有效期范围内 ---  
220 - if (user.card_field && now < end) {  
221 - th.setData({  
222 - card_field: user.card_field  
223 - })  
224 - }  
225 - } 184 + if (classType == 1 && ite.service_id == item.service_id) { //判断该商品是否存在于失效列表中
  185 + off = false;
  186 + }
  187 + });
  188 + if (off) {
  189 + if (invType == 0) {
  190 + item.invalid = '商品活动变动';
  191 + } else if (invType == 1) {
  192 + item.invalid = '商品已下架';
  193 + } else {
  194 + item.invalid = "商品超出限购"
  195 + }
  196 + item.classType = classType
  197 + invalidList.push(item);
  198 + this.setData({ invalidList });
  199 + }
  200 + },
  201 + //-------------获取购物车列表,要安装门店进行分类订单-----------
  202 + getCardList: function () {
  203 + this.setData({ invalidList: [] }); //重置失效商品
  204 + var th = this;
  205 +
  206 + //要获取会员是不是等级会员
  207 + getApp().getConfig2(function (conf) {
  208 + //--- 看后台是不是有开通等级卡 ---
  209 + if (conf.switch_list) {
  210 + var s_list = JSON.parse(conf.switch_list);
  211 + var user = getApp().globalData.userInfo;
  212 + //如果后台有开启等级价的功能
  213 + if (user && parseInt(s_list.rank_switch) == 2 && user['card_expiredate']) {
  214 +
  215 + var str = user['card_expiredate'].replace(/-/g, '/');
  216 + var end = new Date(str);
  217 + end = Date.parse(end) / 1000;
  218 + var now = ut.gettimestamp();
  219 + //--- 判断是等级会员,且在有效期范围内 ---
  220 + if (user.card_field && now < end) {
  221 + th.setData({
  222 + card_field: user.card_field
  223 + })
  224 + }
  225 + }
226 226
227 - //如果门店还未读出来的时候  
228 - if (th.data.allsto == null) {  
229 - //读取门店  
230 - app.get_allsto(function (e) {  
231 - th.setData({  
232 - allsto: e  
233 - });  
234 - th.get_cart();  
235 - th.get_ser_cart();  
236 - })  
237 - } else {  
238 - th.get_cart();  
239 - th.get_ser_cart();  
240 - } 227 + //如果门店还未读出来的时候
  228 + if (th.data.allsto == null) {
  229 + //读取门店
  230 + app.get_allsto(function (e) {
  231 + th.setData({
  232 + allsto: e
  233 + });
  234 + th.get_cart();
  235 + th.get_ser_cart();
  236 + })
  237 + } else {
  238 + th.get_cart();
  239 + th.get_ser_cart();
  240 + }
241 241
242 242
243 - }  
244 - })  
245 - if ((!this.data.requestData || this.data.requestData.length == 0) && (!this.data.service_data || this.data.service_data.length == 0)) {  
246 - setTimeout(function () {  
247 - var goods_list = th.selectComponent("#goods_list"); //组件的id  
248 - if (goods_list) {  
249 - goods_list.init();  
250 - goods_list.get_list();  
251 - }  
252 - }, 800) 243 + }
  244 + })
  245 + if ((!this.data.requestData || this.data.requestData.length == 0) && (!this.data.service_data || this.data.service_data.length == 0)) {
  246 + setTimeout(function () {
  247 + var goods_list = th.selectComponent("#goods_list"); //组件的id
  248 + if (goods_list) {
  249 + goods_list.init();
  250 + goods_list.get_list();
253 } 251 }
254 - },  
255 - //失效单选  
256 - inCheck_th_item: async function(e){  
257 - console.log('失效单选');  
258 - console.log(e);  
259 - let i = e.currentTarget.dataset.item;  
260 - let invalidList = this.data.invalidList;  
261 - console.log(i)  
262 - console.log(invalidList[i])  
263 - invalidList[i].selected = invalidList[i].selected == 1 ? 0 : 1;  
264 - console.log(invalidList);  
265 - this.setData({invalidList});  
266 - console.log(this.data.invalidList);  
267 - // this.doCheckAll();  
268 -  
269 - },  
270 - //清空失效宝贝  
271 - delInva_all(obj=null){  
272 -  
273 - var th = this;  
274 - wx.showModal({  
275 - title: '提示',  
276 - content: '确认要清空全部失效商品吗?',  
277 - success(res) {  
278 - if (res.confirm) {  
279 - th.delInva(obj);  
280 - }  
281 - }  
282 - })  
283 - }, 252 + }, 800)
  253 + }
  254 + },
  255 + //失效单选
  256 + inCheck_th_item: async function (e) {
  257 + console.log('失效单选');
  258 + console.log(e);
  259 + let i = e.currentTarget.dataset.item;
  260 + let invalidList = this.data.invalidList;
  261 + console.log(i)
  262 + console.log(invalidList[i])
  263 + invalidList[i].selected = invalidList[i].selected == 1 ? 0 : 1;
  264 + console.log(invalidList);
  265 + this.setData({ invalidList });
  266 + console.log(this.data.invalidList);
  267 + // this.doCheckAll();
284 268
  269 + },
  270 + //清空失效宝贝
  271 + delInva_all(obj = null) {
  272 +
  273 + var th = this;
  274 + wx.showModal({
  275 + title: '提示',
  276 + content: '确认要清空全部失效商品吗?',
  277 + success(res) {
  278 + if (res.confirm) {
  279 + th.delInva(obj);
  280 + }
  281 + }
  282 + })
  283 + },
285 284
286 - delInva(obj){  
287 - var th=this;  
288 - let ainvalid='';  
289 - let binvalid='';  
290 - var user_id = getApp().globalData.user_id;  
291 285
292 - let ab = 0; //选中  
293 - let abc = 0; //  
294 - let arr = obj.id ? [obj] : th.data.invalidList  
295 - console.log('失效-----')  
296 - console.log(arr);  
297 - arr.map(item=>{  
298 - if (item.classType ==0 ) {  
299 - ainvalid+=item.id + ',';  
300 - ab = 1;  
301 - }  
302 - if (item.classType ==1 ) {  
303 - binvalid+=item.id + ',';  
304 - abc = 1;  
305 - }  
306 - }); 286 + delInva(obj) {
  287 + var th = this;
  288 + let ainvalid = '';
  289 + let binvalid = '';
  290 + var user_id = getApp().globalData.user_id;
  291 +
  292 + let ab = 0; //选中
  293 + let abc = 0; //
  294 + let arr = obj.id ? [obj] : th.data.invalidList
  295 + console.log('失效-----')
  296 + console.log(arr);
  297 + arr.map(item => {
  298 + if (item.classType == 0) {
  299 + ainvalid += item.id + ',';
  300 + ab = 1;
  301 + }
  302 + if (item.classType == 1) {
  303 + binvalid += item.id + ',';
  304 + abc = 1;
  305 + }
  306 + });
307 307
308 308
309 - if (ab == 0 && abc == 0 ) {  
310 - t.my_warnning('没有需要清空的失效宝贝', 0, th);  
311 - return false;  
312 - }  
313 - if (ab) {  
314 - ainvalid = ainvalid.substring(0, ainvalid.length - 1);  
315 - //要删除购物车中的商品  
316 - var url = '/api/weshop/cart/delIds/' + oo.stoid + '/' + user_id + '/' + ainvalid;  
317 - getApp().request.delete(url, {  
318 - success: function (t) {  
319 - th.getCardList();  
320 - getApp().requestCardNum(th);  
321 - }  
322 - }); 309 + if (ab == 0 && abc == 0) {
  310 + t.my_warnning('没有需要清空的失效宝贝', 0, th);
  311 + return false;
  312 + }
  313 + if (ab) {
  314 + ainvalid = ainvalid.substring(0, ainvalid.length - 1);
  315 + //要删除购物车中的商品
  316 + var url = '/api/weshop/cart/delIds/' + oo.stoid + '/' + user_id + '/' + ainvalid;
  317 + getApp().request.delete(url, {
  318 + success: function (t) {
  319 + th.getCardList();
  320 + getApp().requestCardNum(th);
323 } 321 }
324 - if (abc) {  
325 - binvalid = binvalid.substring(0, binvalid.length - 1);  
326 - //要删除购物车中的商品  
327 - var url = '/api/weshop/cartService/delIds/' + oo.stoid + '/' + user_id + '/' + binvalid;  
328 - getApp().request.delete(url, {  
329 - success: function (t) {  
330 - th.getCardList();  
331 - getApp().requestCardNum(th);  
332 - }  
333 - }); 322 + });
  323 + }
  324 + if (abc) {
  325 + binvalid = binvalid.substring(0, binvalid.length - 1);
  326 + //要删除购物车中的商品
  327 + var url = '/api/weshop/cartService/delIds/' + oo.stoid + '/' + user_id + '/' + binvalid;
  328 + getApp().request.delete(url, {
  329 + success: function (t) {
  330 + th.getCardList();
  331 + getApp().requestCardNum(th);
334 } 332 }
335 - }, 333 + });
  334 + }
  335 + },
336 336
337 337
338 - //---------点击收藏------------  
339 - collectGoods: async function () {  
340 -  
341 - let t = this  
342 - let timestamp = Date.parse(new Date());  
343 - timestamp = timestamp / 1000;  
344 - let d = {  
345 - // goods_id: t.data.data.goods_id,  
346 - user_id: app.globalData.user_id,  
347 - store_id: oo.stoid,  
348 - add_time: timestamp,  
349 - };  
350 - //加入收藏夹就是导购的ID  
351 - if (getApp().globalData.guide_id) {  
352 - d.guide_id = getApp().globalData.guide_id;  
353 - d.guide_type = 2;  
354 - }  
355 - let off = false  
356 - let errOff = false  
357 - var invalidList= [...this.data.invalidList]  
358 - var arr=[]  
359 - invalidList.map(async (item,index)=>{  
360 - if (item.selected) {  
361 - off = true  
362 - if(item.classType ==1 ){  
363 - d.goods_id = item.service_id  
364 - d.type = 1  
365 - }else{  
366 - d.goods_id = item.goods_id  
367 - d.type =0 338 + //---------点击收藏------------
  339 + collectGoods: async function () {
  340 +
  341 + let t = this
  342 + let timestamp = Date.parse(new Date());
  343 + timestamp = timestamp / 1000;
  344 + let d = {
  345 + // goods_id: t.data.data.goods_id,
  346 + user_id: app.globalData.user_id,
  347 + store_id: oo.stoid,
  348 + add_time: timestamp,
  349 + };
  350 + //加入收藏夹就是导购的ID
  351 + if (getApp().globalData.guide_id) {
  352 + d.guide_id = getApp().globalData.guide_id;
  353 + d.guide_type = 2;
  354 + }
  355 + let off = false
  356 + let errOff = false
  357 + var invalidList = [...this.data.invalidList]
  358 + var arr = []
  359 + invalidList.map(async (item, index) => {
  360 + if (item.selected) {
  361 + off = true
  362 + if (item.classType == 1) {
  363 + d.goods_id = item.service_id
  364 + d.type = 1
  365 + } else {
  366 + d.goods_id = item.goods_id
  367 + d.type = 0
  368 + }
  369 + let is_collect = 0
  370 + //------是否收藏----------
  371 + await getApp().request.promiseGet("/api/weshop/goodscollect/page", {
  372 + data: {
  373 + store_id: oo.stoid,
  374 + goods_id: d.goods_id,
  375 + user_id: app.globalData.user_id,
368 } 376 }
369 - let is_collect = 0  
370 - //------是否收藏----------  
371 - await getApp().request.promiseGet("/api/weshop/goodscollect/page", {  
372 - data: {  
373 - store_id: oo.stoid,  
374 - goods_id: d.goods_id,  
375 - user_id: app.globalData.user_id,  
376 - }  
377 - }).then(res => {  
378 - let t = res;  
379 - let data = t.data.data.pageData;  
380 - if (data && data.length > 0) {  
381 - is_collect =1  
382 - }  
383 - })  
384 - if (is_collect) {  
385 - t.delInva(item)  
386 - return 377 + }).then(res => {
  378 + let t = res;
  379 + let data = t.data.data.pageData;
  380 + if (data && data.length > 0) {
  381 + is_collect = 1
387 } 382 }
388 - await getApp().request.post("/api/weshop/goodscollect/save", { //添加收藏  
389 - data: d,  
390 - success: function (e) {  
391 - t.data.is_collect_load = 0;  
392 - if (e.data.code == 0) {  
393 - t.delInva(item)  
394 - }else{  
395 - errOff = true  
396 - arr.push(item)  
397 - }  
398 - }  
399 - });  
400 - }else{  
401 - arr.push(item)  
402 - }  
403 - });  
404 - if (off) {  
405 - t.setData({  
406 - invalidList:arr  
407 }) 383 })
408 - if (errOff) {  
409 - getApp().my_warnning('移到收藏夹错误', 0, t);  
410 - }else{  
411 - wx.showToast({  
412 - title: "收藏成功",  
413 - icon: 'none',  
414 - duration: 2000  
415 - }) 384 + if (is_collect) {
  385 + t.delInva(item)
  386 + return
416 } 387 }
417 - console.log('移动成功')  
418 - }else{  
419 - getApp().my_warnning('请先选择失效宝贝', 0, t); 388 + await getApp().request.post("/api/weshop/goodscollect/save", { //添加收藏
  389 + data: d,
  390 + success: function (e) {
  391 + t.data.is_collect_load = 0;
  392 + if (e.data.code == 0) {
  393 + t.delInva(item)
  394 + } else {
  395 + errOff = true
  396 + arr.push(item)
  397 + }
  398 + }
  399 + });
  400 + } else {
  401 + arr.push(item)
  402 + }
  403 + });
  404 + if (off) {
  405 + t.setData({
  406 + invalidList: arr
  407 + })
  408 + if (errOff) {
  409 + getApp().my_warnning('移到收藏夹错误', 0, t);
  410 + } else {
  411 + wx.showToast({
  412 + title: "收藏成功",
  413 + icon: 'none',
  414 + duration: 2000
  415 + })
420 } 416 }
  417 + console.log('移动成功')
  418 + } else {
  419 + getApp().my_warnning('请先选择失效宝贝', 0, t);
  420 + }
421 }, 421 },
422 422
423 - //-----真的获取购物车--------  
424 - get_cart: function () {  
425 - var th = this;  
426 - th.data.in_zhact_gdmap={};  
427 - th.data.ladder_map={};  
428 - var rd = Math.random().toString(36).substr(2, 15);  
429 - var user_id = getApp().globalData.user_id;  
430 - getApp().request.get("/api/weshop/cart/list", {  
431 - data: {  
432 - user_id: app.globalData.user_id,  
433 - rd: rd,  
434 - store_id: oo.stoid,  
435 - pageSize: 600,  
436 - state: 0  
437 - },  
438 - success: async function (su) {  
439 - console.log(su, 10000);  
440 - //按门店分类的数组  
441 - var arr = new Array(), carr = su.data.data.pageData;  
442 - var all_num = 0;  
443 -  
444 - if (carr && carr.length > 0) {  
445 - var g_arr = [];  
446 - for (var i = 0; i < carr.length; i++) {  
447 - if (g_arr.length == 0) g_arr.push(carr[i].goods_id);  
448 - else {  
449 - var ind = g_arr.findIndex(function (ele) {  
450 - return ele.goods_id == carr[i].goods_id  
451 - })  
452 - if (ind > -1) continue;  
453 - g_arr.push(carr[i].goods_id)  
454 - }  
455 - }  
456 -  
457 - var by_map = null;  
458 - //--要获得商品,该用户买了多少件,同步应用--  
459 - await getApp().request.promiseGet("/api/weshop/ordergoods/listUserBuyGoodsNum", {  
460 - data: {  
461 - store_id: oo.stoid,  
462 - user_id: user_id,  
463 - goods_ids: g_arr.join(','),  
464 -  
465 - },  
466 - }).then(res => {  
467 - if(ut.ajax_ok2(res)) {  
468 - by_map = {};  
469 - for (let i in res.data.data) {  
470 - let item = res.data.data[i];  
471 - by_map[item.goods_id] = item;  
472 - }  
473 - }  
474 - })  
475 -  
476 - for (var i = 0; i < carr.length; i++) {  
477 - var item = carr[i];  
478 - var good = item;  
479 - if (item.is_gift) {  
480 - var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
481 - getApp().request.delete(url, {  
482 - success: function (t) {}  
483 - });  
484 - //商品已经下架  
485 - continue;  
486 - } 423 + //-----真的获取购物车--------
  424 + get_cart: function () {
  425 + var th = this;
  426 + th.data.in_zhact_gdmap = {};
  427 + th.data.ladder_map = {};
  428 + var rd = Math.random().toString(36).substr(2, 15);
  429 + var user_id = getApp().globalData.user_id;
  430 + getApp().request.get("/api/weshop/cart/list", {
  431 + data: {
  432 + user_id: app.globalData.user_id,
  433 + rd: rd,
  434 + store_id: oo.stoid,
  435 + pageSize: 600,
  436 + state: 0
  437 + },
  438 + success: async function (su) {
  439 + console.log(su, 10000);
  440 + //按门店分类的数组
  441 + var arr = new Array(), carr = su.data.data.pageData;
  442 + var all_num = 0;
  443 +
  444 +
  445 + if (carr && carr.length > 0) {
  446 + var g_arr = [];
  447 + for (var i = 0; i < carr.length; i++) {
487 448
488 - var tt = ut.gettimestamp();  
489 - //如果商品下架了,或者商品是赠品,一开始都要清除  
490 - if ((good.down_time > 0 && good.down_time < tt) || good.is_on_sale == 0) {  
491 - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
492 - // getApp().request.delete(url, {  
493 - // success: function (t) {}  
494 - // });  
495 - th.disInvalid(item,1);  
496 - //商品已经下架  
497 - continue;  
498 - }  
499 - var goodsbuynum = 0,  
500 - promgoodsbuynum = 0,  
501 - limit = 0;  
502 - if (by_map && by_map[good.goods_id]) {  
503 - goodsbuynum = by_map[good.goods_id].goodsbuynum;  
504 - promgoodsbuynum = by_map[good.goods_id].promgoodsbuynum;  
505 - }  
506 449
507 - limit = good.viplimited;  
508 - //判断商品的限购  
509 - if (item.goods_num + goodsbuynum > limit && limit > 0) {  
510 - var cbuy = limit - goodsbuynum;  
511 - if (cbuy <= 0) {  
512 - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
513 - // a.delete(url, {});  
514 - th.disInvalid(item,2);  
515 - continue;  
516 - }  
517 - //-- 购物车更新 --  
518 - var updata1 = {  
519 - id: item.id,  
520 - goods_num: cbuy,  
521 - store_id: os.stoid,  
522 - user_id: getApp().globalData.userInfo.user_id  
523 - };  
524 - getApp().request.put("/api/weshop/cart/update", {  
525 - data: updata1,  
526 - })  
527 - item.goods_num = cbuy;  
528 - }  
529 - //判断如果是普通商品,后面参加活动了,变成失效商品  
530 - if (item.prom_type == 0) {  
531 - var prom = null;  
532 - var now = ut.gettimestamp();  
533 - await getApp().request.promiseGet(`/api/weshop/activitylist/listGoodActInfo2`, {  
534 - data:{  
535 - "store_id": oo.stoid,  
536 - "goods_id": item.goods_id,  
537 - "user_id": user_id,  
538 - }  
539 - }).then(res => {  
540 - if (res.data.code == 0) {  
541 - prom = res.data.data  
542 - }  
543 - })  
544 - let prom_true = 0  
545 - let prom_id=0  
546 - if (prom) {  
547 - prom.map(item=>{  
548 - if (item.prom_type==3 || item.prom_type==7) {  
549 - prom_true = item.prom_type  
550 - prom_id = item.act_id  
551 - }  
552 - })  
553 - }  
554 - if (prom_true) {  
555 - //-- 购物车更新 --  
556 - var updata1 = {  
557 - id: item.id,  
558 - prom_type: prom_true,  
559 - prom_id,  
560 - store_id: os.stoid,  
561 - user_id: getApp().globalData.userInfo.user_id  
562 - };  
563 - item.prom_id = prom_id  
564 - item.prom_type = prom_true  
565 - getApp().request.put("/api/weshop/cart/update", {  
566 - data: updata1,  
567 - })  
568 -  
569 - }else{  
570 - if(prom && !item.is_integral_normal && !item.is_pd_normal && prom[0].prom_type!=5){  
571 - th.disInvalid(item);  
572 - continue;  
573 - }  
574 - }  
575 - }  
576 - //如果秒杀活动都去掉了,或者结束了,那么这个商品也没有必要留着  
577 - if (item.prom_type == 1) {  
578 - var prom = null;  
579 - var now = ut.gettimestamp();  
580 - await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + os.stoid + '/' + user_id + "/" + item.prom_id, {}).then(res => {  
581 - console.log('活动情况----------------')  
582 - console.log(res)  
583 - if (res.data.code == 0) {  
584 - prom = res.data.data;  
585 - prom.price = prom.user_price;  
586 - }  
587 - })  
588 - //---如果互动都已经过期,或者还未开始,或者无活动  
589 - if (!prom || prom.is_end == 1 || prom.end_time < now || prom.start_time > now) {  
590 - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
591 - // a.delete(url, {  
592 - // success: function (t) {}  
593 - // });  
594 - th.disInvalid(item);  
595 - //商品已经下架  
596 - continue;  
597 - } 450 + if (g_arr.length == 0) g_arr.push(carr[i].goods_id);
  451 + else {
  452 + var ind = g_arr.findIndex(function (ele) {
  453 + return ele.goods_id == carr[i].goods_id
  454 + })
  455 + if (ind > -1) continue;
  456 + g_arr.push(carr[i].goods_id)
  457 + }
  458 + }
598 459
599 - //判断秒杀的限购  
600 - if (item.goods_num + promgoodsbuynum > prom.buy_limit && prom.buy_limit > 0) {  
601 - var cbuy = prom.buy_limit - promgoodsbuynum;  
602 - if (cbuy <= 0) {  
603 - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
604 - // a.delete(url, {});  
605 - th.disInvalid(item,2);  
606 - continue;  
607 - }  
608 - //-- 购物车更新 --  
609 - var updata1 = {  
610 - id: item.id,  
611 - goods_num: cbuy,  
612 - store_id: os.stoid,  
613 - user_id: getApp().globalData.userInfo.user_id  
614 - };  
615 - getApp().request.put("/api/weshop/cart/update", {  
616 - data: updata1,  
617 - })  
618 - item.goods_num = cbuy;  
619 - } 460 + var by_map = null;
  461 +
  462 + //--要获得商品,该用户买了多少件,同步应用--
  463 + await getApp().request.promiseGet("/api/weshop/ordergoods/listUserBuyGoodsNum", {
  464 + data: {
  465 + store_id: oo.stoid,
  466 + user_id: user_id,
  467 + goods_ids: g_arr.join(','),
620 468
621 - //价格不对,就要更新一下  
622 - if (good.goods_price != prom.price) {  
623 - good.goods_price = prom.price;  
624 - //-- 购物车更新秒杀价格 --  
625 - var updata1 = {  
626 - id: item.id,  
627 - goods_price: prom.price,  
628 - store_id: os.stoid,  
629 - user_id: getApp().globalData.userInfo.user_id  
630 - };  
631 - getApp().request.put("/api/weshop/cart/update", {  
632 - data: updata1,  
633 - })  
634 - }  
635 - }  
636 - // 判断团购活动都去掉了,或者结束了,那么这个商品也没有必要留着  
637 - else if(item.prom_type ==2){  
638 - var prom = null;  
639 - var now = ut.gettimestamp();  
640 - await getApp().request.promiseGet('/api/weshop/goods/groupBuy/getActInfo/'+ oo.stoid + '/' + item.goods_id + '/' + item.prom_id, {}).then(res => {  
641 - if (res.data.code == 0) {  
642 - prom = res.data.data;  
643 - prom.price = prom.user_price;  
644 - }  
645 - });  
646 - //---如果互动都已经过期,或者还未开始,或者无活动  
647 - if (!prom || prom.is_end == 1 || prom.end_time < now || prom.start_time > now) {  
648 - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
649 - // a.delete(url, {  
650 - // success: function (t) {}  
651 - // });  
652 - console.log('团购活动-----');  
653 - th.disInvalid(item);  
654 - //商品已经下架  
655 - continue;  
656 - }  
657 -  
658 -  
659 - }  
660 - //--判断优惠活动有没有过期,--  
661 - else if (item.prom_type == 3) {  
662 - var isok = 1,is_g_prom=0;  
663 -  
664 - //因为有全场优惠活动,商品参加的活动还未开始  
665 - var url="/api/weshop/activitylist/getGoodActInfo";  
666 - var req_data={  
667 - store_id:os.stoid,goodsidlist:item.goods_id,is_detail:1,user_id:user_id  
668 - };  
669 - await getApp().request.promiseGet(url, {data:req_data}).then(async function (res) {  
670 - if(res.data.code==0 && res.data.data && res.data.data.length){  
671 - for(let i in res.data.data){  
672 - let item=res.data.data[i];  
673 - if(item.prom_type==3) {  
674 - is_g_prom=1; break;  
675 - }  
676 - }  
677 - }  
678 - })  
679 -  
680 - if (is_g_prom) {  
681 - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + item.goods_id + "/1"+"/"+getApp().globalData.user_id, {}).then(res => {  
682 - if (res.data.code == 0) {  
683 - var r_data = res.data.data;  
684 - if (!r_data.promGoodsLists) {  
685 - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
686 - // getApp().request.delete(url, {});  
687 - //商品已经无活动  
688 - // th.disInvalid(item);  
689 - // isok = 0;  
690 - item.prom_type = 0  
691 - //购物车更新  
692 - th.cartUpFn(item)  
693 - } else {  
694 - //如果活动的ID不一样,说明原先的活动已经没有参与了或者过期了  
695 - if (item.prom_id != r_data.promGoodsLists[0].prom_id) {  
696 - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
697 - // getApp().request.delete(url, {});  
698 - //商品已经下架  
699 - // th.disInvalid(item);  
700 - // isok = 0;  
701 - item.prom_type = 0  
702 - //购物车更新  
703 - th.cartUpFn(item)  
704 - }  
705 - }  
706 -  
707 - } else {  
708 - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
709 - // getApp().request.delete(url, {});  
710 - // th.disInvalid(item);  
711 - // //商品已经下架  
712 - // isok = 0;  
713 - item.prom_type = 0  
714 - //购物车更新  
715 - th.cartUpFn(item)  
716 - }  
717 - }) 469 + },
  470 + }).then(res => {
  471 + if (ut.ajax_ok2(res)) {
  472 + by_map = {};
  473 + for (let i in res.data.data) {
  474 + let item = res.data.data[i];
  475 + by_map[item.goods_id] = item;
  476 + }
  477 + }
  478 + })
  479 +
  480 + for (var i = 0; i < carr.length; i++) {
  481 + var item = carr[i];
  482 + var good = item;
  483 + if (item.is_gift) {
  484 + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  485 + getApp().request.delete(url, {
  486 + success: function (t) { }
  487 + });
  488 + //商品已经下架
  489 + continue;
  490 + }
718 491
719 - } else {  
720 - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromNormal/" + os.stoid + "/" + item.goods_id, {}).then(res => {  
721 - if (res.data.code == 0) {  
722 - var r_data = res.data.data;  
723 - if (!r_data.promGoodsLists) {  
724 - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
725 - // getApp().request.delete(url, {});  
726 - // th.disInvalid(item);  
727 - // //商品已经无活动  
728 - // isok = 0;  
729 - item.prom_type = 0  
730 - //购物车更新  
731 - th.cartUpFn(item)  
732 - } else {  
733 - //如果活动的ID不一样,说明原先的活动已经没有参与了或者过期了  
734 - if (item.prom_id != r_data.promGoodsLists[0].prom_id) {  
735 - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
736 - // getApp().request.delete(url, {});  
737 - // th.disInvalid(item);  
738 - // //商品已经下架  
739 - // isok = 0;  
740 - item.prom_type = 0  
741 - //购物车更新  
742 - th.cartUpFn(item)  
743 - }  
744 - }  
745 -  
746 - } else {  
747 - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
748 - // getApp().request.delete(url, {});  
749 - // th.disInvalid(item,1);  
750 - // //商品已经下架  
751 - // isok = 0;  
752 - item.prom_type = 0  
753 - //购物车更新  
754 - th.cartUpFn(item)  
755 - }  
756 - })  
757 - }  
758 - // if (!isok) continue;  
759 - }  
760 - else if (item.prom_type == 7) {  
761 - console.log('组合购------------');  
762 - if(!th.data.zuhe_map[item.prom_id]){  
763 - console.log('组1')  
764 - //如果有组合购  
765 - var isok = 1;  
766 - var is_flag = 1;  
767 - var act = null;  
768 - var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + item.prom_id + "/" + getApp().globalData.user_id;  
769 - await getApp().request.promiseGet(url, {}).then(res => {  
770 - console.log(res);  
771 - if (res.data.code == 0 && res.data.data) {  
772 - if (res.data.data.is_show != 1) {  
773 - isok = 0;  
774 - }  
775 - //如果活动已经结束  
776 - if (res.data.data.is_end == 1) {  
777 - isok = 0;  
778 - }  
779 - //已经结束  
780 - if (ut.gettimestamp() > res.data.data.end_time) {  
781 - isok = 0;  
782 - }  
783 - //还未开始  
784 - if (ut.gettimestamp() < res.data.data.start_time) {  
785 - isok = 0;  
786 - }  
787 - act = res.data.data;  
788 -  
789 - } else {  
790 - //未找到商品的活动  
791 - is_flag = 0;  
792 - }  
793 - })  
794 - if (!isok) {  
795 - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
796 - // getApp().request.delete(url, {});  
797 - //组合购失效不处理  
798 - // th.disInvalid(item);  
799 - // th.data.zuhe_map[item.prom_id] = -1;  
800 - // continue;  
801 - item.prom_type = 0  
802 - //购物车更新  
803 - th.cartUpFn(item)  
804 - }else{  
805 - th.data.zuhe_map[item.prom_id] = act;  
806 - var url1 = "/api/weshop/prom/zhbuyGoods/page";  
807 - var req_data = {  
808 - page: 1,  
809 - pageSize: 2000,  
810 - store_id: os.stoid,  
811 - zh_id: item.prom_id,  
812 - }  
813 - await getApp().request.promiseGet(url1, {  
814 - data: req_data  
815 - }).then(res => {  
816 - console.log(res, 2000);  
817 - if (ut.ajax_ok(res)) {  
818 - var gdlist = res.data.data.pageData;  
819 - gdlist.forEach(i => {  
820 - if (item.goods_id == i.goods_id && !is_flag) {  
821 - item.prom_type = 0;  
822 - item.prom_type1 = 0;  
823 - item.prom_id = 0;  
824 - item.prom_id1 = 0  
825 - }  
826 - })  
827 - th.data.zuhe_map_good[item.prom_id] = gdlist;  
828 - }  
829 - })  
830 - }  
831 - }  
832 - console.log('组2')  
833 - if (th.data.zuhe_map[item.prom_id] && th.data.zuhe_map[item.prom_id] != -1) {  
834 - console.log('组3')  
835 - var gdlist = th.data.zuhe_map_good[item.prom_id];  
836 - var t_item = gdlist.find(function (ele) {  
837 - return ele.goods_id == item.goods_id  
838 - })  
839 - if (!t_item) {  
840 - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
841 - // getApp().request.delete(url, {});  
842 - //组合购不处理  
843 - // th.disInvalid(item,1);  
844 - // th.data.zuhe_map[item.prom_id] = -1;  
845 - // continue;  
846 - item.prom_type = 0  
847 - //购物车更新  
848 - th.cartUpFn(item)  
849 - }else{  
850 - item.buyqty = t_item.buyqty;  
851 - item.zh_b_num = promgoodsbuynum;  
852 - item.act = th.data.zuhe_map[item.prom_id];  
853 - }  
854 - } //else{  
855 - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
856 - // getApp().request.delete(url, {});  
857 - // th.data.zuhe_map[item.prom_id]=-1;  
858 - // continue;  
859 - // }  
860 - }  
861 - else if (item.prom_type == 10) {  
862 - if(!th.data.ladder_map[item.prom_id]){  
863 - //如果有阶梯购  
864 - var isok = 1;  
865 - var is_flag=1;  
866 - var act=null;  
867 - var url="/api/weshop/prom/ladderForm/getNew/"+os.stoid+"/"+user_id+"/"+item.prom_id;  
868 - await getApp().request.promiseGet(url, {}).then(res => {  
869 - console.log(res,1000);  
870 - if(res.data.code==0 && res.data.data){  
871 - if(res.data.data.isuse!=1){  
872 - isok=0;  
873 - }  
874 - //如果活动已经结束  
875 - if(res.data.data.is_end==1){  
876 - isok=0;  
877 - }  
878 - //已经结束  
879 - if(ut.gettimestamp()>res.data.data.end_time){  
880 - isok=0;  
881 - }  
882 - //还未开始  
883 - if(ut.gettimestamp()<res.data.data.start_time){  
884 - isok=0;  
885 - }  
886 - act=res.data.data;  
887 -  
888 - }else{  
889 - //未找到商品的活动  
890 - isok = 0;  
891 - }  
892 - })  
893 - if (!isok){  
894 - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
895 - // getApp().request.delete(url, {});  
896 - th.disInvalid(item,1);  
897 - th.data.ladder_map[item.prom_id]=-1;  
898 - continue;  
899 - }  
900 - th.data.ladder_map[item.prom_id]=act;  
901 -  
902 - //-- 获取阶梯规则 --  
903 - var url1 = "/api/weshop/prom/ladderList/list";  
904 - var req_data = {  
905 - store_id: os.stoid,  
906 - form_id: item.prom_id,  
907 - }  
908 - await getApp().request.promiseGet(url1, {  
909 - data: req_data  
910 - }).then(rs1 => {  
911 - if (rs1.data.code==0 && rs1.data.data) {  
912 - var gdlist = rs1.data.data;  
913 - th.data.ladder_map[item.prom_id].ladder_list=gdlist;  
914 - }  
915 - })  
916 - }  
917 - //直接把活动赋值给元素  
918 - if(th.data.ladder_map[item.prom_id] && th.data.ladder_map[item.prom_id]!=-1 ){  
919 - item.act=th.data.ladder_map[item.prom_id];  
920 - } 492 + var tt = ut.gettimestamp();
  493 + //如果商品下架了,或者商品是赠品,一开始都要清除
  494 + if ((good.down_time > 0 && good.down_time < tt) || good.is_on_sale == 0) {
  495 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  496 + // getApp().request.delete(url, {
  497 + // success: function (t) {}
  498 + // });
  499 + th.disInvalid(item, 1);
  500 + //商品已经下架
  501 + continue;
  502 + }
  503 + var goodsbuynum = 0,
  504 + promgoodsbuynum = 0,
  505 + limit = 0;
  506 + if (by_map && by_map[good.goods_id]) {
  507 + goodsbuynum = by_map[good.goods_id].goodsbuynum;
  508 + promgoodsbuynum = by_map[good.goods_id].promgoodsbuynum;
  509 + }
921 510
922 - }  
923 - //判断不是代发的商品  
924 - else if(item.prom_type == 0 && !item.whsle_id) {  
925 -  
926 - //如果有优惠活动,要更新活动  
927 - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + item.goods_id + "/1"+"/"+getApp().globalData.user_id, {}).then(res => {  
928 - if (res.data.code == 0) {  
929 - var r_data = res.data.data;  
930 - if (r_data.promGoodsLists) {  
931 - var url = '/api/weshop/cart/update';  
932 - getApp().request.put(url, {  
933 - data: {  
934 - id: item.id,  
935 - store_id: oo.stoid,  
936 - prom_type: 3,  
937 - prom_id: r_data.promGoodsLists[0].prom_id  
938 - }  
939 - });  
940 - item.prom_type=3;  
941 - item.prom_id=r_data.promGoodsLists[0].prom_id;  
942 - }else if(r_data.ladderLists){  
943 -  
944 - item.prom_type=10;  
945 - item.prom_id=r_data.ladderLists[0].form_id;  
946 -  
947 - }  
948 - }  
949 - })  
950 -  
951 - //如果是阶梯购的时候  
952 - if(item.prom_type==10){  
953 -  
954 -  
955 - if(!th.data.ladder_map[item.prom_id]){  
956 - //如果有阶梯购,要判断身份  
957 - var isok = 1;  
958 - var is_flag=1;  
959 - var act=null;  
960 - var url="/api/weshop/prom/ladderForm/getNew/"+os.stoid+"/"+user_id+"/"+item.prom_id;  
961 - await getApp().request.promiseGet(url, {}).then(res => {  
962 - console.log(res,1000);  
963 - if(res.data.code==0 && res.data.data){  
964 - if(res.data.data.isuse!=1){  
965 - isok=0;  
966 - }  
967 - //如果活动已经结束  
968 - if(res.data.data.is_end==1){  
969 - isok=0;  
970 - }  
971 - //已经结束  
972 - if(ut.gettimestamp()>res.data.data.end_time){  
973 - isok=0;  
974 - }  
975 - //还未开始  
976 - if(ut.gettimestamp()<res.data.data.start_time){  
977 - isok=0;  
978 - }  
979 - act=res.data.data;  
980 -  
981 - }else{  
982 - //未找到商品的活动  
983 - isok = 0;  
984 - }  
985 - })  
986 - if (!isok){  
987 - item.prom_type=0;  
988 - item.prom_id=0;  
989 - }else{  
990 -  
991 - th.data.ladder_map[item.prom_id]=act;  
992 - //-- 获取阶梯规则 --  
993 - var url1 = "/api/weshop/prom/ladderList/list";  
994 - var req_data = {  
995 - store_id: os.stoid,  
996 - form_id: item.prom_id,  
997 - }  
998 - await getApp().request.promiseGet(url1, {  
999 - data: req_data  
1000 - }).then(rs1 => {  
1001 - if (rs1.data.code==0 && rs1.data.data) {  
1002 - var gdlist = rs1.data.data;  
1003 - th.data.ladder_map[item.prom_id].ladder_list=gdlist;  
1004 - }  
1005 - })  
1006 - }  
1007 -  
1008 - }  
1009 - //直接把活动赋值给元素  
1010 - if(th.data.ladder_map[item.prom_id] && th.data.ladder_map[item.prom_id]!=-1 ){  
1011 - item.act=th.data.ladder_map[item.prom_id];  
1012 -  
1013 - //如果有活动,就更新商品的活动那个  
1014 - var url = '/api/weshop/cart/update';  
1015 - getApp().request.put(url, {  
1016 - data:{id:item.id,store_id:oo.stoid,prom_type:10,prom_id:item.prom_id}  
1017 - });  
1018 -  
1019 - }  
1020 - } 511 + limit = good.viplimited;
  512 + //判断商品的限购
  513 + if (item.goods_num + goodsbuynum > limit && limit > 0) {
  514 + var cbuy = limit - goodsbuynum;
  515 + if (cbuy <= 0) {
  516 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  517 + // a.delete(url, {});
  518 + th.disInvalid(item, 2);
  519 + continue;
  520 + }
  521 + //-- 购物车更新 --
  522 + var updata1 = {
  523 + id: item.id,
  524 + goods_num: cbuy,
  525 + store_id: os.stoid,
  526 + user_id: getApp().globalData.userInfo.user_id
  527 + };
  528 + getApp().request.put("/api/weshop/cart/update", {
  529 + data: updata1,
  530 + })
  531 + item.goods_num = cbuy;
  532 + }
  533 +
  534 + //判断如果是普通商品,后面参加活动了,变成失效商品
  535 + if (item.prom_type == 0 ) {
1021 536
1022 - }  
1023 537
1024 - all_num += item.goods_num;  
1025 - item.original_img = oo.imghost + item.original_img;  
1026 - item.selected = 0;  
1027 - item.erpwareid = good.erpwareid; //要同步下线商品的id  
1028 - item.shop_price = good.shop_price; //要同步下线商品的id 538 + var prom = null;
  539 + var now = ut.gettimestamp();
  540 + await getApp().request.promiseGet(`/api/weshop/activitylist/listGoodActInfo2`, {
  541 + data: {
  542 + "store_id": oo.stoid,
  543 + "goods_id": item.goods_id,
  544 + "user_id": user_id,
  545 + }
  546 + }).then(res => {
  547 + if (res.data.code == 0) {
  548 + prom = res.data.data
  549 + }
  550 + })
  551 + let prom_true = 0
  552 + let prom_id = 0
  553 + if (prom) {
  554 + prom.map(item => {
  555 + if (item.prom_type == 3 || item.prom_type == 7) {
  556 + prom_true = item.prom_type
  557 + prom_id = item.act_id
  558 + }
  559 + })
  560 + }
  561 + if (prom_true) {
  562 + //-- 购物车更新 --
  563 + var updata1 = {
  564 + id: item.id,
  565 + prom_type: prom_true,
  566 + prom_id,
  567 + store_id: os.stoid,
  568 + user_id: getApp().globalData.userInfo.user_id
  569 + };
  570 + item.prom_id = prom_id
  571 + item.prom_type = prom_true
  572 + getApp().request.put("/api/weshop/cart/update", {
  573 + data: updata1,
  574 + })
1029 575
1030 - //当商品要计算等级价的售  
1031 - if (item.prom_type == 0 || item.prom_type == 3 || item.prom_type == 5 || item.prom_type == 7) {  
1032 - if (th.data.card_field && good[th.data.card_field]) {  
1033 - item.goods_price = good[th.data.card_field]; //要同步下线商品的id  
1034 - } else {  
1035 - item.goods_price = good.shop_price;  
1036 - } 576 + } else {
  577 + if (prom && !item.is_integral_normal && !item.is_pd_normal && prom[0].prom_type != 5) {
  578 + th.disInvalid(item);
  579 + continue;
  580 + }
  581 + }
  582 + }
  583 +
  584 + //如果秒杀活动都去掉了,或者结束了,那么这个商品也没有必要留着
  585 + if (item.prom_type == 1) {
  586 + var prom = null;
  587 + var now = ut.gettimestamp();
  588 + await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + os.stoid + '/' + user_id + "/" + item.prom_id, {}).then(res => {
  589 + console.log('活动情况----------------')
  590 + console.log(res)
  591 + if (res.data.code == 0) {
  592 + prom = res.data.data;
  593 + prom.price = prom.user_price;
  594 + }
  595 + })
  596 + //---如果互动都已经过期,或者还未开始,或者无活动
  597 + if (!prom || prom.is_end == 1 || prom.end_time < now || prom.start_time > now) {
  598 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  599 + // a.delete(url, {
  600 + // success: function (t) {}
  601 + // });
  602 + th.disInvalid(item);
  603 + //商品已经下架
  604 + continue;
  605 + }
1037 606
1038 - var t = {  
1039 - id: item.id,  
1040 - store_id: os.stoid,  
1041 - user_id: getApp().globalData.userInfo.user_id,  
1042 - goods_price: item.goods_price  
1043 - }  
1044 - getApp().request.put("/api/weshop/cart/update", {  
1045 - isShowLoading: 0,  
1046 - data: t,  
1047 - }) 607 + //判断秒杀的限购
  608 + if (item.goods_num + promgoodsbuynum > prom.buy_limit && prom.buy_limit > 0) {
  609 + var cbuy = prom.buy_limit - promgoodsbuynum;
  610 + if (cbuy <= 0) {
  611 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  612 + // a.delete(url, {});
  613 + th.disInvalid(item, 2);
  614 + continue;
  615 + }
  616 + //-- 购物车更新 --
  617 + var updata1 = {
  618 + id: item.id,
  619 + goods_num: cbuy,
  620 + store_id: os.stoid,
  621 + user_id: getApp().globalData.userInfo.user_id
  622 + };
  623 + getApp().request.put("/api/weshop/cart/update", {
  624 + data: updata1,
  625 + })
  626 + item.goods_num = cbuy;
  627 + }
1048 628
1049 - } 629 + //价格不对,就要更新一下
  630 + if (good.goods_price != prom.price) {
  631 + good.goods_price = prom.price;
  632 + //-- 购物车更新秒杀价格 --
  633 + var updata1 = {
  634 + id: item.id,
  635 + goods_price: prom.price,
  636 + store_id: os.stoid,
  637 + user_id: getApp().globalData.userInfo.user_id
  638 + };
  639 + getApp().request.put("/api/weshop/cart/update", {
  640 + data: updata1,
  641 + })
  642 + }
  643 + }
  644 + // 判断团购活动都去掉了,或者结束了,那么这个商品也没有必要留着
  645 + else if (item.prom_type == 2) {
  646 + var prom = null;
  647 + var now = ut.gettimestamp();
  648 + await getApp().request.promiseGet('/api/weshop/goods/groupBuy/getActInfo/' + oo.stoid + '/' + item.goods_id + '/' + item.prom_id, {}).then(res => {
  649 + if (res.data.code == 0) {
  650 + prom = res.data.data;
  651 + prom.price = prom.user_price;
  652 + }
  653 + });
  654 + //---如果互动都已经过期,或者还未开始,或者无活动
  655 + if (!prom || prom.is_end == 1 || prom.end_time < now || prom.start_time > now) {
  656 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  657 + // a.delete(url, {
  658 + // success: function (t) {}
  659 + // });
  660 + console.log('团购活动-----');
  661 + th.disInvalid(item);
  662 + //商品已经下架
  663 + continue;
  664 + }
1050 665
1051 - var pcid = item.pick_id;  
1052 - var find = 0;  
1053 - //---------循环查找门店---  
1054 - if (arr.length > 0) {  
1055 - for (var j = 0; j < arr.length; j++) {  
1056 - if (arr[j].pid == pcid) {  
1057 - arr[j].goods.push(item);  
1058 - find = 1;  
1059 - break;  
1060 - }  
1061 - }  
1062 - }  
1063 666
1064 - //------如果没有找到-----  
1065 - if (find == 0) {  
1066 - var pikname = '';  
1067 - //找到门店名称  
1068 - for (var k = 0; k < th.data.allsto.length; k++) {  
1069 - if (pcid == th.data.allsto[k].pickup_id) {  
1070 - pikname = th.data.allsto[k].pickup_name;  
1071 - break;  
1072 - }  
1073 - }  
1074 - var narr = new Array();  
1075 - narr.push(item);  
1076 - var ie = {  
1077 - pid: pcid,  
1078 - pname: pikname,  
1079 - goods: narr,  
1080 - selected: 0  
1081 - };  
1082 - arr.push(ie);  
1083 - } 667 + }
  668 + //--判断优惠活动有没有过期,--
  669 + else if (item.prom_type == 3) {
  670 + var isok = 1, is_g_prom = 0;
  671 +
  672 + //因为有全场优惠活动,商品参加的活动还未开始
  673 + var url = "/api/weshop/activitylist/getGoodActInfo";
  674 + var req_data = {
  675 + store_id: os.stoid, goodsidlist: item.goods_id, is_detail: 1, user_id: user_id
  676 + };
  677 + await getApp().request.promiseGet(url, { data: req_data }).then(async function (res) {
  678 + if (res.data.code == 0 && res.data.data && res.data.data.length) {
  679 + for (let i in res.data.data) {
  680 + let item = res.data.data[i];
  681 + if (item.prom_type == 3) {
  682 + is_g_prom = 1; break;
1084 } 683 }
  684 + }
1085 } 685 }
  686 + })
1086 687
1087 - if (th.data.is_open_offline && th.data.is_open_offline > 0 && th.data.sales_rules == 2) {  
1088 - //-- 此时要实时更新线下取价价格 --  
1089 - for (var i = 0; i < arr.length; i++) {  
1090 - //每个门店都去看下线下取价  
1091 - var list = arr[i];  
1092 - await th.set_offline(list); 688 + if (is_g_prom) {
  689 + await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + item.goods_id + "/1" + "/" + getApp().globalData.user_id, {}).then(res => {
  690 + if (res.data.code == 0) {
  691 + var r_data = res.data.data;
  692 + if (!r_data.promGoodsLists) {
  693 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  694 + // getApp().request.delete(url, {});
  695 + //商品已经无活动
  696 + // th.disInvalid(item);
  697 + // isok = 0;
  698 + item.prom_type = 0
  699 + //购物车更新
  700 + th.cartUpFn(item)
  701 + } else {
  702 + //如果活动的ID不一样,说明原先的活动已经没有参与了或者过期了
  703 + if (item.prom_id != r_data.promGoodsLists[0].prom_id) {
  704 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  705 + // getApp().request.delete(url, {});
  706 + //商品已经下架
  707 + // th.disInvalid(item);
  708 + // isok = 0;
  709 + item.prom_type = 0
  710 + //购物车更新
  711 + th.cartUpFn(item)
  712 + }
1093 } 713 }
1094 - } else {  
1095 - //-- 此时要实时更新线下取价价格 --  
1096 - for (var ij in arr) {  
1097 - //每个门店都去看下线下取价  
1098 - var list = arr[ij];  
1099 - for (var i in list.goods) {  
1100 - list.goods[i].offline_price = 0  
1101 - } 714 +
  715 + } else {
  716 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  717 + // getApp().request.delete(url, {});
  718 + // th.disInvalid(item);
  719 + // //商品已经下架
  720 + // isok = 0;
  721 + item.prom_type = 0
  722 + //购物车更新
  723 + th.cartUpFn(item)
  724 + }
  725 + })
  726 +
  727 + } else {
  728 + await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromNormal/" + os.stoid + "/" + item.goods_id, {}).then(res => {
  729 + if (res.data.code == 0) {
  730 + var r_data = res.data.data;
  731 + if (!r_data.promGoodsLists) {
  732 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  733 + // getApp().request.delete(url, {});
  734 + // th.disInvalid(item);
  735 + // //商品已经无活动
  736 + // isok = 0;
  737 + item.prom_type = 0
  738 + //购物车更新
  739 + th.cartUpFn(item)
  740 + } else {
  741 + //如果活动的ID不一样,说明原先的活动已经没有参与了或者过期了
  742 + if (item.prom_id != r_data.promGoodsLists[0].prom_id) {
  743 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  744 + // getApp().request.delete(url, {});
  745 + // th.disInvalid(item);
  746 + // //商品已经下架
  747 + // isok = 0;
  748 + item.prom_type = 0
  749 + //购物车更新
  750 + th.cartUpFn(item)
  751 + }
1102 } 752 }
1103 - }  
1104 -  
1105 - for (let u1 in arr) {  
1106 - var u_item=arr[u1];  
1107 - //把组合购进行分组  
1108 - var obj=zh_calc.find_split(u_item);  
1109 - if(!obj) continue;  
1110 - //存储不同活动的商品列表  
1111 - u_item.zh_prom_goods={};  
1112 - for (let var1 in obj) {  
1113 - var h_item=obj[var1];  
1114 - var gdlist= th.data.zuhe_map_good[h_item.prom_id];  
1115 - //获取活动需要的商品列表  
1116 - u_item.zh_prom_goods[h_item.prom_id]=gdlist;  
1117 - }  
1118 - }  
1119 -  
1120 - th.setData({  
1121 - requestData: arr,  
1122 - all_num: all_num,  
1123 - is_load: 1,  
1124 - is_edit: 0  
1125 - }),  
1126 - th.doCheckAll(), wx.stopPullDownRefresh();  
1127 753
  754 + } else {
  755 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  756 + // getApp().request.delete(url, {});
  757 + // th.disInvalid(item,1);
  758 + // //商品已经下架
  759 + // isok = 0;
  760 + item.prom_type = 0
  761 + //购物车更新
  762 + th.cartUpFn(item)
  763 + }
  764 + })
  765 + }
  766 + // if (!isok) continue;
1128 } 767 }
1129 - });  
1130 - },  
1131 - //商品购物车修改  
1132 - cartUpFn(item){  
1133 - let updata1 = {  
1134 - id: item.id,  
1135 - prom_type: 0,  
1136 - prom_id:item.prom_id,  
1137 - store_id: os.stoid,  
1138 - user_id: getApp().globalData.userInfo.user_id  
1139 - };  
1140 - getApp().request.put("/api/weshop/cart/update", {  
1141 - data: updata1,  
1142 - })  
1143 - },  
1144 - //-----真的获取购物车--------  
1145 - get_ser_cart: function () {  
1146 - var th = this;  
1147 - var user_id = getApp().globalData.user_id;  
1148 - var rd = Math.random().toString(36).substr(2, 15);  
1149 - getApp().request.get("/api/weshop/cartService/page", {  
1150 - data: {  
1151 - user_id: app.globalData.user_id,  
1152 - rd: rd,  
1153 - store_id: oo.stoid,  
1154 - pageSize: 600,  
1155 - },  
1156 - success: async function (su) {  
1157 - //按门店分类的数组  
1158 - var arr = new Array(),  
1159 - carr = su.data.data.pageData;  
1160 - var all_num = 0;  
1161 -  
1162 - if (carr && carr.length > 0) {  
1163 - for (var i = 0; i < carr.length; i++) {  
1164 - var item = carr[i];  
1165 - var good = null;  
1166 -  
1167 - await getApp().request.promiseGet("/api/weshop/serviceCard/get/" + oo.stoid + "/" + item.service_id, {}).then(res => {  
1168 - good = res.data.data;  
1169 - })  
1170 - if (!good) {  
1171 - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
1172 - // getApp().request.delete(url, {  
1173 - // success: function (t) {}  
1174 - // });  
1175 - th.disInvalid({  
1176 - ...item,  
1177 - original_img: good.imgUrl  
1178 - },1,1);  
1179 - continue;  
1180 - }  
1181 -  
1182 - //如果商品下架了,或者商品是赠品,一开始都要清除  
1183 - if (good.is_show == 0) {  
1184 - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
1185 - // getApp().request.delete(url, {  
1186 - // success: function (t) {}  
1187 - // });  
1188 - th.disInvalid({  
1189 - ...item,  
1190 - original_img: good.imgUrl  
1191 - },1,1);  
1192 - //商品已经下架  
1193 - continue;  
1194 - } 768 + else if (item.prom_type == 7) {
  769 + console.log('组合购------------');
  770 + if (!th.data.zuhe_map[item.prom_id]) {
  771 + console.log('组1')
  772 + //如果有组合购
  773 + var isok = 1;
  774 + var is_flag = 1;
  775 + var act = null;
  776 + var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + item.prom_id + "/" + getApp().globalData.user_id;
  777 + await getApp().request.promiseGet(url, {}).then(res => {
  778 + console.log(res);
  779 + if (res.data.code == 0 && res.data.data) {
  780 + if (res.data.data.is_show != 1) {
  781 + isok = 0;
  782 + }
  783 + //如果活动已经结束
  784 + if (res.data.data.is_end == 1) {
  785 + isok = 0;
  786 + }
  787 + //已经结束
  788 + if (ut.gettimestamp() > res.data.data.end_time) {
  789 + isok = 0;
  790 + }
  791 + //还未开始
  792 + if (ut.gettimestamp() < res.data.data.start_time) {
  793 + isok = 0;
  794 + }
  795 + act = res.data.data;
1195 796
1196 - if(item.prom_type ==0){  
1197 - var prom = null;  
1198 - var now = ut.gettimestamp();  
1199 - await getApp().request.promiseGet(`/api/weshop/activitylist/listGoodActInfo2`, {  
1200 - data:{  
1201 - store_id: oo.stoid,  
1202 - goods_id: item.service_id,  
1203 - user_id: user_id,  
1204 - goods_type: 1,  
1205 - }  
1206 - }).then(res => {  
1207 - console.log('服务卡活动信息')  
1208 - console.log(res)  
1209 - console.log('服务卡活动信息-------------')  
1210 - if (res.data.code == 0) {  
1211 - prom = res.data.data  
1212 - }  
1213 - })  
1214 - if(prom){  
1215 - th.disInvalid({  
1216 - ...item,  
1217 - original_img: good.imgUrl  
1218 - },2,1)  
1219 - continue;  
1220 - } 797 + } else {
  798 + //未找到商品的活动
  799 + is_flag = 0;
  800 + }
  801 + })
  802 + if (!isok) {
  803 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  804 + // getApp().request.delete(url, {});
  805 + //组合购失效不处理
  806 + // th.disInvalid(item);
  807 + // th.data.zuhe_map[item.prom_id] = -1;
  808 + // continue;
  809 + item.prom_type = 0
  810 + //购物车更新
  811 + th.cartUpFn(item)
  812 + } else {
  813 + th.data.zuhe_map[item.prom_id] = act;
  814 + var url1 = "/api/weshop/prom/zhbuyGoods/page";
  815 + var req_data = {
  816 + page: 1,
  817 + pageSize: 2000,
  818 + store_id: os.stoid,
  819 + zh_id: item.prom_id,
  820 + }
  821 + await getApp().request.promiseGet(url1, {
  822 + data: req_data
  823 + }).then(res => {
  824 + console.log(res, 2000);
  825 + if (ut.ajax_ok(res)) {
  826 + var gdlist = res.data.data.pageData;
  827 + gdlist.forEach(i => {
  828 + if (item.goods_id == i.goods_id && !is_flag) {
  829 + item.prom_type = 0;
  830 + item.prom_type1 = 0;
  831 + item.prom_id = 0;
  832 + item.prom_id1 = 0
1221 } 833 }
  834 + })
  835 + th.data.zuhe_map_good[item.prom_id] = gdlist;
  836 + }
  837 + })
  838 + }
  839 + }
  840 + console.log('组2')
  841 + if (th.data.zuhe_map[item.prom_id] && th.data.zuhe_map[item.prom_id] != -1) {
  842 + console.log('组3')
  843 + var gdlist = th.data.zuhe_map_good[item.prom_id];
  844 + var t_item = gdlist.find(function (ele) {
  845 + return ele.goods_id == item.goods_id
  846 + })
  847 + if (!t_item) {
  848 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  849 + // getApp().request.delete(url, {});
  850 + //组合购不处理
  851 + // th.disInvalid(item,1);
  852 + // th.data.zuhe_map[item.prom_id] = -1;
  853 + // continue;
  854 + item.prom_type = 0
  855 + //购物车更新
  856 + th.cartUpFn(item)
  857 + } else {
  858 + let act =th.data.zuhe_map[item.prom_id]
  859 + //判断是否超出组合购次数限制
  860 +
  861 + if(act.buy_limit !=0){
  862 + let userbuynum = await th.getUserBuyPromNum(item.goods_prom_id)
  863 + if(userbuynum>=act.buy_limit){
  864 + item.goods_prom_type = 0
  865 + item.goods_prom_id = 0
  866 + item.prom_type = 0
  867 + item.prom_id = 0
  868 + //购物车更新
  869 + th.cartUpFn(item)
  870 + }else{
  871 + item.buyqty = t_item.buyqty;
  872 + item.zh_b_num = promgoodsbuynum;
  873 + item.act = th.data.zuhe_map[item.prom_id];
  874 + }
  875 + }else{
  876 + item.buyqty = t_item.buyqty;
  877 + item.zh_b_num = promgoodsbuynum;
  878 + item.act = th.data.zuhe_map[item.prom_id];
  879 + }
  880 + }
  881 + } //else{
  882 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  883 + // getApp().request.delete(url, {});
  884 + // th.data.zuhe_map[item.prom_id]=-1;
  885 + // continue;
  886 + // }
  887 + }
  888 + else if (item.prom_type == 10) {
  889 + if (!th.data.ladder_map[item.prom_id]) {
  890 + //如果有阶梯购
  891 + var isok = 1;
  892 + var is_flag = 1;
  893 + var act = null;
  894 + var url = "/api/weshop/prom/ladderForm/getNew/" + os.stoid + "/" + user_id + "/" + item.prom_id;
  895 + await getApp().request.promiseGet(url, {}).then(res => {
  896 + console.log(res, 1000);
  897 + if (res.data.code == 0 && res.data.data) {
  898 + if (res.data.data.isuse != 1) {
  899 + isok = 0;
  900 + }
  901 + //如果活动已经结束
  902 + if (res.data.data.is_end == 1) {
  903 + isok = 0;
  904 + }
  905 + //已经结束
  906 + if (ut.gettimestamp() > res.data.data.end_time) {
  907 + isok = 0;
  908 + }
  909 + //还未开始
  910 + if (ut.gettimestamp() < res.data.data.start_time) {
  911 + isok = 0;
  912 + }
  913 + act = res.data.data;
1222 914
1223 - if (item.prom_type == 1) {  
1224 - var prom = null;  
1225 - var now = ut.gettimestamp();  
1226 - await getApp().request.promiseGet('/api/ms/flash_sale/getNew/' + os.stoid + '/' + user_id + '/' + item.prom_id, {}).then(res => {  
1227 - if (res.data.code == 0) {  
1228 - prom = res.data.data;  
1229 - prom.price = prom.user_price;  
1230 - }  
1231 - });  
1232 - console.log('服务的秒杀信息')  
1233 - console.log(prom)  
1234 - //---如果互动都已经过期,或者还未开始,或者无活动  
1235 - if (!prom || prom.is_end == 1 || prom.end_time < now || prom.start_time > now) {  
1236 - th.disInvalid({  
1237 - ...item,  
1238 - original_img: good.imgUrl  
1239 - },0,1);  
1240 - continue;  
1241 - }  
1242 - //判断秒杀的限购  
1243 - var msNum=0  
1244 - await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum", {  
1245 - data: {  
1246 - store_id: os.stoid,  
1247 - user_id: user_id,  
1248 - card_id: prom.goods_id,  
1249 - }  
1250 - }).then(res=>{  
1251 - if (res.data.code==0) {  
1252 - msNum = res.data.data.cardbuynum  
1253 - console.log('秒杀限购:'+msNum)  
1254 - }  
1255 - })  
1256 - }  
1257 - if (msNum && (msNum >= prom.buy_limit) ) {  
1258 - console.log('秒杀限购')  
1259 - th.disInvalid({  
1260 - ...item,  
1261 - original_img: good.imgUrl  
1262 - },2,1)  
1263 - continue;  
1264 - } 915 + } else {
  916 + //未找到商品的活动
  917 + isok = 0;
  918 + }
  919 + })
  920 + if (!isok) {
  921 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  922 + // getApp().request.delete(url, {});
  923 + th.disInvalid(item, 1);
  924 + th.data.ladder_map[item.prom_id] = -1;
  925 + continue;
  926 + }
  927 + th.data.ladder_map[item.prom_id] = act;
1265 928
1266 - all_num += item.goods_num;  
1267 - item.img_url = oo.imghost + good.imgUrl;  
1268 - item.selected = 0;  
1269 -  
1270 -  
1271 - var pcid = item.pick_id;  
1272 - var find = 0;  
1273 - //---------循环查找门店---  
1274 - if (arr.length > 0) {  
1275 - for (var j = 0; j < arr.length; j++) {  
1276 - if (arr[j].pid == pcid) {  
1277 - arr[j].goods.push(item);  
1278 - find = 1;  
1279 - break;  
1280 - }  
1281 - }  
1282 - } 929 + //-- 获取阶梯规则 --
  930 + var url1 = "/api/weshop/prom/ladderList/list";
  931 + var req_data = {
  932 + store_id: os.stoid,
  933 + form_id: item.prom_id,
  934 + }
  935 + await getApp().request.promiseGet(url1, {
  936 + data: req_data
  937 + }).then(rs1 => {
  938 + if (rs1.data.code == 0 && rs1.data.data) {
  939 + var gdlist = rs1.data.data;
  940 + th.data.ladder_map[item.prom_id].ladder_list = gdlist;
  941 + }
  942 + })
  943 + }
  944 + //直接把活动赋值给元素
  945 + if (th.data.ladder_map[item.prom_id] && th.data.ladder_map[item.prom_id] != -1) {
  946 + item.act = th.data.ladder_map[item.prom_id];
  947 + }
1283 948
1284 - //------如果没有找到-----  
1285 - if (find == 0) {  
1286 - var pikname = '';  
1287 - //找到门店名称  
1288 - for (var k = 0; k < th.data.allsto.length; k++) {  
1289 - if (pcid == th.data.allsto[k].pickup_id) {  
1290 - pikname = th.data.allsto[k].pickup_name;  
1291 - break;  
1292 - }  
1293 - }  
1294 - var narr = new Array();  
1295 - narr.push(item);  
1296 - var ie = {  
1297 - pid: pcid,  
1298 - pname: pikname,  
1299 - goods: narr,  
1300 - selected: 0  
1301 - };  
1302 - arr.push(ie);  
1303 - } 949 + }
  950 + //判断不是代发的商品
  951 + else if (item.prom_type == 0 && !item.whsle_id) {
  952 +
  953 + //如果有优惠活动,要更新活动
  954 + await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + item.goods_id + "/1" + "/" + getApp().globalData.user_id, {}).then(res => {
  955 + if (res.data.code == 0) {
  956 + var r_data = res.data.data;
  957 + if (r_data.promGoodsLists) {
  958 + var url = '/api/weshop/cart/update';
  959 + getApp().request.put(url, {
  960 + data: {
  961 + id: item.id,
  962 + store_id: oo.stoid,
  963 + prom_type: 3,
  964 + prom_id: r_data.promGoodsLists[0].prom_id
  965 + }
  966 + });
  967 + item.prom_type = 3;
  968 + item.prom_id = r_data.promGoodsLists[0].prom_id;
  969 + } else if (r_data.ladderLists) {
  970 +
  971 + item.prom_type = 10;
  972 + item.prom_id = r_data.ladderLists[0].form_id;
  973 +
  974 + }
  975 + }
  976 + })
  977 +
  978 + //如果是阶梯购的时候
  979 + if (item.prom_type == 10) {
  980 +
  981 +
  982 + if (!th.data.ladder_map[item.prom_id]) {
  983 + //如果有阶梯购,要判断身份
  984 + var isok = 1;
  985 + var is_flag = 1;
  986 + var act = null;
  987 + var url = "/api/weshop/prom/ladderForm/getNew/" + os.stoid + "/" + user_id + "/" + item.prom_id;
  988 + await getApp().request.promiseGet(url, {}).then(res => {
  989 + console.log(res, 1000);
  990 + if (res.data.code == 0 && res.data.data) {
  991 + if (res.data.data.isuse != 1) {
  992 + isok = 0;
  993 + }
  994 + //如果活动已经结束
  995 + if (res.data.data.is_end == 1) {
  996 + isok = 0;
  997 + }
  998 + //已经结束
  999 + if (ut.gettimestamp() > res.data.data.end_time) {
  1000 + isok = 0;
  1001 + }
  1002 + //还未开始
  1003 + if (ut.gettimestamp() < res.data.data.start_time) {
  1004 + isok = 0;
  1005 + }
  1006 + act = res.data.data;
  1007 +
  1008 + } else {
  1009 + //未找到商品的活动
  1010 + isok = 0;
  1011 + }
  1012 + })
  1013 + if (!isok) {
  1014 + item.prom_type = 0;
  1015 + item.prom_id = 0;
  1016 + } else {
  1017 +
  1018 + th.data.ladder_map[item.prom_id] = act;
  1019 + //-- 获取阶梯规则 --
  1020 + var url1 = "/api/weshop/prom/ladderList/list";
  1021 + var req_data = {
  1022 + store_id: os.stoid,
  1023 + form_id: item.prom_id,
1304 } 1024 }
  1025 + await getApp().request.promiseGet(url1, {
  1026 + data: req_data
  1027 + }).then(rs1 => {
  1028 + if (rs1.data.code == 0 && rs1.data.data) {
  1029 + var gdlist = rs1.data.data;
  1030 + th.data.ladder_map[item.prom_id].ladder_list = gdlist;
  1031 + }
  1032 + })
  1033 + }
  1034 +
1305 } 1035 }
  1036 + //直接把活动赋值给元素
  1037 + if (th.data.ladder_map[item.prom_id] && th.data.ladder_map[item.prom_id] != -1) {
  1038 + item.act = th.data.ladder_map[item.prom_id];
  1039 +
  1040 + //如果有活动,就更新商品的活动那个
  1041 + var url = '/api/weshop/cart/update';
  1042 + getApp().request.put(url, {
  1043 + data: { id: item.id, store_id: oo.stoid, prom_type: 10, prom_id: item.prom_id }
  1044 + });
  1045 +
  1046 + }
  1047 + }
  1048 +
  1049 + }
  1050 +
  1051 + all_num += item.goods_num;
  1052 + item.original_img = oo.imghost + item.original_img;
  1053 + item.selected = 0;
  1054 + item.erpwareid = good.erpwareid; //要同步下线商品的id
  1055 + item.shop_price = good.shop_price; //要同步下线商品的id
  1056 +
  1057 + //当商品要计算等级价的售
  1058 + if (item.prom_type == 0 || item.prom_type == 3 || item.prom_type == 5 || item.prom_type == 7) {
  1059 + if (th.data.card_field && good[th.data.card_field]) {
  1060 + item.goods_price = good[th.data.card_field]; //要同步下线商品的id
  1061 + } else {
  1062 + item.goods_price = good.shop_price;
  1063 + }
  1064 +
  1065 + var t = {
  1066 + id: item.id,
  1067 + store_id: os.stoid,
  1068 + user_id: getApp().globalData.userInfo.user_id,
  1069 + goods_price: item.goods_price
  1070 + }
  1071 + getApp().request.put("/api/weshop/cart/update", {
  1072 + isShowLoading: 0,
  1073 + data: t,
  1074 + })
  1075 +
  1076 + }
  1077 +
  1078 + var pcid = item.pick_id;
  1079 + var find = 0;
  1080 + //---------循环查找门店---
  1081 + if (arr.length > 0) {
  1082 + for (var j = 0; j < arr.length; j++) {
  1083 + if (arr[j].pid == pcid) {
  1084 + arr[j].goods.push(item);
  1085 + find = 1;
  1086 + break;
  1087 + }
  1088 + }
  1089 + }
  1090 +
  1091 + //------如果没有找到-----
  1092 + if (find == 0) {
  1093 + var pikname = '';
  1094 + //找到门店名称
  1095 + for (var k = 0; k < th.data.allsto.length; k++) {
  1096 + if (pcid == th.data.allsto[k].pickup_id) {
  1097 + pikname = th.data.allsto[k].pickup_name;
  1098 + break;
  1099 + }
  1100 + }
  1101 + var narr = new Array();
  1102 + narr.push(item);
  1103 + var ie = {
  1104 + pid: pcid,
  1105 + pname: pikname,
  1106 + goods: narr,
  1107 + selected: 0
  1108 + };
  1109 + arr.push(ie);
  1110 + }
  1111 + }
  1112 + }
  1113 +
  1114 + if (th.data.is_open_offline && th.data.is_open_offline > 0 && th.data.sales_rules == 2) {
  1115 + //-- 此时要实时更新线下取价价格 --
  1116 + for (var i = 0; i < arr.length; i++) {
  1117 + //每个门店都去看下线下取价
  1118 + var list = arr[i];
  1119 + await th.set_offline(list);
  1120 + }
  1121 + } else {
  1122 + //-- 此时要实时更新线下取价价格 --
  1123 + for (var ij in arr) {
  1124 + //每个门店都去看下线下取价
  1125 + var list = arr[ij];
  1126 + for (var i in list.goods) {
  1127 + list.goods[i].offline_price = 0
  1128 + }
  1129 + }
  1130 + }
  1131 +
  1132 + for (let u1 in arr) {
  1133 + var u_item = arr[u1];
  1134 + //把组合购进行分组
  1135 + var obj = zh_calc.find_split(u_item);
  1136 + if (!obj) continue;
  1137 + //存储不同活动的商品列表
  1138 + u_item.zh_prom_goods = {};
  1139 + for (let var1 in obj) {
  1140 + var h_item = obj[var1];
  1141 + var gdlist = th.data.zuhe_map_good[h_item.prom_id];
  1142 + //获取活动需要的商品列表
  1143 + u_item.zh_prom_goods[h_item.prom_id] = gdlist;
  1144 + }
  1145 + }
  1146 +
  1147 + th.setData({
  1148 + requestData: arr,
  1149 + all_num: all_num,
  1150 + is_load: 1,
  1151 + is_edit: 0
  1152 + }),
  1153 + th.doCheckAll(), wx.stopPullDownRefresh();
  1154 +
  1155 + }
  1156 + });
  1157 + },
  1158 + //商品购物车修改
  1159 + cartUpFn(item) {
  1160 + let updata1 = {
  1161 + id: item.id,
  1162 + prom_type: 0,
  1163 + prom_id: item.prom_id,
  1164 + store_id: os.stoid,
  1165 + user_id: getApp().globalData.userInfo.user_id
  1166 + };
  1167 + getApp().request.put("/api/weshop/cart/update", {
  1168 + data: updata1,
  1169 + })
  1170 + },
  1171 + //-----真的获取购物车--------
  1172 + get_ser_cart: function () {
  1173 + var th = this;
  1174 + var user_id = getApp().globalData.user_id;
  1175 + var rd = Math.random().toString(36).substr(2, 15);
  1176 + getApp().request.get("/api/weshop/cartService/page", {
  1177 + data: {
  1178 + user_id: app.globalData.user_id,
  1179 + rd: rd,
  1180 + store_id: oo.stoid,
  1181 + pageSize: 600,
  1182 + },
  1183 + success: async function (su) {
  1184 + //按门店分类的数组
  1185 + var arr = new Array(),
  1186 + carr = su.data.data.pageData;
  1187 + var all_num = 0;
  1188 +
  1189 + if (carr && carr.length > 0) {
  1190 + for (var i = 0; i < carr.length; i++) {
  1191 + var item = carr[i];
  1192 + var good = null;
  1193 +
  1194 + await getApp().request.promiseGet("/api/weshop/serviceCard/get/" + oo.stoid + "/" + item.service_id, {}).then(res => {
  1195 + good = res.data.data;
  1196 + })
  1197 + if (!good) {
  1198 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  1199 + // getApp().request.delete(url, {
  1200 + // success: function (t) {}
  1201 + // });
  1202 + th.disInvalid({
  1203 + ...item,
  1204 + original_img: good.imgUrl
  1205 + }, 1, 1);
  1206 + continue;
  1207 + }
  1208 +
  1209 + //如果商品下架了,或者商品是赠品,一开始都要清除
  1210 + if (good.is_show == 0) {
  1211 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  1212 + // getApp().request.delete(url, {
  1213 + // success: function (t) {}
  1214 + // });
  1215 + th.disInvalid({
  1216 + ...item,
  1217 + original_img: good.imgUrl
  1218 + }, 1, 1);
  1219 + //商品已经下架
  1220 + continue;
  1221 + }
  1222 +
  1223 + if (item.prom_type == 0) {
  1224 + var prom = null;
  1225 + var now = ut.gettimestamp();
  1226 + await getApp().request.promiseGet(`/api/weshop/activitylist/listGoodActInfo2`, {
  1227 + data: {
  1228 + store_id: oo.stoid,
  1229 + goods_id: item.service_id,
  1230 + user_id: user_id,
  1231 + goods_type: 1,
  1232 + }
  1233 + }).then(res => {
  1234 + console.log('服务卡活动信息')
  1235 + console.log(res)
  1236 + console.log('服务卡活动信息-------------')
  1237 + if (res.data.code == 0) {
  1238 + prom = res.data.data
  1239 + }
  1240 + })
  1241 + if (prom) {
  1242 + th.disInvalid({
  1243 + ...item,
  1244 + original_img: good.imgUrl
  1245 + }, 2, 1)
  1246 + continue;
  1247 + }
  1248 + }
  1249 +
  1250 + if (item.prom_type == 1) {
  1251 + var prom = null;
  1252 + var now = ut.gettimestamp();
  1253 + await getApp().request.promiseGet('/api/ms/flash_sale/getNew/' + os.stoid + '/' + user_id + '/' + item.prom_id, {}).then(res => {
  1254 + if (res.data.code == 0) {
  1255 + prom = res.data.data;
  1256 + prom.price = prom.user_price;
  1257 + }
  1258 + });
  1259 + console.log('服务的秒杀信息')
  1260 + console.log(prom)
  1261 + //---如果互动都已经过期,或者还未开始,或者无活动
  1262 + if (!prom || prom.is_end == 1 || prom.end_time < now || prom.start_time > now) {
  1263 + th.disInvalid({
  1264 + ...item,
  1265 + original_img: good.imgUrl
  1266 + }, 0, 1);
  1267 + continue;
  1268 + }
  1269 + //判断秒杀的限购
  1270 + var msNum = 0
  1271 + await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum", {
  1272 + data: {
  1273 + store_id: os.stoid,
  1274 + user_id: user_id,
  1275 + card_id: prom.goods_id,
  1276 + }
  1277 + }).then(res => {
  1278 + if (res.data.code == 0) {
  1279 + msNum = res.data.data.cardbuynum
  1280 + console.log('秒杀限购:' + msNum)
  1281 + }
  1282 + })
  1283 + }
  1284 + if (msNum && (msNum >= prom.buy_limit)) {
  1285 + console.log('秒杀限购')
  1286 + th.disInvalid({
  1287 + ...item,
  1288 + original_img: good.imgUrl
  1289 + }, 2, 1)
  1290 + continue;
  1291 + }
  1292 +
  1293 + all_num += item.goods_num;
  1294 + item.img_url = oo.imghost + good.imgUrl;
  1295 + item.selected = 0;
  1296 +
  1297 +
  1298 + var pcid = item.pick_id;
  1299 + var find = 0;
  1300 + //---------循环查找门店---
  1301 + if (arr.length > 0) {
  1302 + for (var j = 0; j < arr.length; j++) {
  1303 + if (arr[j].pid == pcid) {
  1304 + arr[j].goods.push(item);
  1305 + find = 1;
  1306 + break;
  1307 + }
  1308 + }
  1309 + }
  1310 +
  1311 + //------如果没有找到-----
  1312 + if (find == 0) {
  1313 + var pikname = '';
  1314 + //找到门店名称
  1315 + for (var k = 0; k < th.data.allsto.length; k++) {
  1316 + if (pcid == th.data.allsto[k].pickup_id) {
  1317 + pikname = th.data.allsto[k].pickup_name;
  1318 + break;
  1319 + }
  1320 + }
  1321 + var narr = new Array();
  1322 + narr.push(item);
  1323 + var ie = {
  1324 + pid: pcid,
  1325 + pname: pikname,
  1326 + goods: narr,
  1327 + selected: 0
  1328 + };
  1329 + arr.push(ie);
  1330 + }
  1331 + }
  1332 + }
  1333 +
  1334 + // console.log('BBBBBB', all_num);
  1335 + th.setData({
  1336 + service_data: arr,
  1337 + all_num2: all_num,
  1338 + is_edit: 0
  1339 + }),
  1340 + th.doCheckAll(), wx.stopPullDownRefresh();
  1341 +
  1342 + }
  1343 + });
  1344 + },
  1345 +
  1346 + async getUserBuyPromNum(prom_id) {
  1347 + var userInfo = getApp().globalData.userInfo;
  1348 + var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${userInfo.user_id}&prom_type=7&prom_id=${prom_id}`;
  1349 + let res = await getApp().request.promiseGet(url, {
  1350 + data: {}
  1351 + });
  1352 + let userbuynum = 0
  1353 + if (res.data.code == 0 && res.data.data) {
  1354 + userbuynum = res.data.data.userbuynum
  1355 + }
  1356 + return userbuynum
  1357 + },
  1358 +
  1359 + //设置莫个门店的所有线下价格
  1360 + async set_offline(list) {
  1361 + var th = this;
  1362 + var userInfo = getApp().globalData.userInfo;
  1363 + //组织一下商品,然后进行线下价格的赋值
  1364 + var wlist = "";
  1365 + for (var i in list.goods) {
  1366 + //如果商品有促销活动
  1367 + if (list.goods[i].prom_type > 0 && list.goods[i].prom_type != 7) continue;
  1368 + wlist += encodeURIComponent(list.goods[i].erpwareid) + ",";
  1369 + }
  1370 + wlist = ut.sub_last(wlist);
  1371 + //调用接口进行赋值
  1372 + await getApp().request.promiseGet("/api/weshop/goods/listWarePrice", {
  1373 + data: {
  1374 + store_id: os.stoid,
  1375 + PickupId: list.pid,
  1376 + WareIds: wlist,
  1377 + VIPId: encodeURIComponent(userInfo.erpvipid)
  1378 + }
  1379 + }).then(res => {
  1380 + if (res.data.code == 0 && res.data.data && res.data.data.length > 0) {
  1381 + for (var e in res.data.data) {
  1382 + th.set_cart_offline_price(res.data.data[e], list.goods);
  1383 + }
  1384 + }
  1385 + })
  1386 + },
  1387 +
  1388 + //-- 设置购物车线下 --
  1389 + set_cart_offline_price: function (data, glist) {
  1390 + for (var i in glist) {
  1391 + if (glist[i].erpwareid == data.WareId && (glist[i].prom_type == 0 || glist[i].prom_type == 7)) {
  1392 + if (glist[i].goods_price >= data.WarePrice) {
  1393 + glist[i].is_offline = 1;
  1394 + glist[i].offline_price = data.WarePrice;
  1395 + glist[i].pricing_type = data.PriceType;
  1396 + }
  1397 + }
  1398 + }
  1399 + },
  1400 +
  1401 +
  1402 + //删除商品
  1403 + delete_th_item: function (t) {
  1404 + var e = this;
  1405 + var a = rq;
  1406 + console.log(a);
  1407 + wx.showModal({
  1408 + title: "确定删除?",
  1409 + success: function (s) {
  1410 + if (s.confirm) {
  1411 + var r = t.currentTarget.dataset.cartid;
  1412 + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + r;
  1413 + a.delete(url, {
  1414 + success: function (t) {
  1415 + e.getCardList();
  1416 + }
  1417 + });
  1418 + }
  1419 + }
  1420 + });
  1421 + },
  1422 +
  1423 + //-----------------点击输入修改商品数量---------------
  1424 + valueToNum: function (t) {
  1425 + if (!this.data.is_load) return false;
  1426 + //控制住,避免事件响应冲突,只有input有输入的时候,才刷新
  1427 + if (this.data.btn_click) {
  1428 + return false;
  1429 + }
  1430 + this.data.btn_click = 1;
  1431 +
  1432 + var a = t.currentTarget.dataset.item;
  1433 + var b = t.currentTarget.dataset.pitems;
  1434 + a = this.data.requestData[b].goods[a];
  1435 + var e = a;
  1436 + var th = this;
  1437 +
  1438 + if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) {
  1439 + var s = {
  1440 + goods_num: a,
  1441 + goods_id: e.goods_id,
  1442 + id: e.id,
  1443 + store_id: oo.stoid
  1444 + };
  1445 + th.postCardList(s, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
  1446 + }
  1447 + },
  1448 +
  1449 + //-------------加数量---------------------
  1450 + addNum: function (t) {
  1451 + if (!this.data.is_load) return false;
  1452 + if (this.data.up_dating == 1) return false;
  1453 + this.data.up_dating = 1;
  1454 +
  1455 + var a = t.currentTarget.dataset.item;
  1456 + var b = t.currentTarget.dataset.pitems;
  1457 + a = this.data.requestData[b].goods[a];
  1458 +
  1459 + console.log('add+');
  1460 +
  1461 + if (this.data.sales_rules < 2 || a.whsle_id || [1, 2, 4, 6, 8, 9].indexOf(a.prom_type) > -1) {
  1462 +
  1463 + if (a.goods_num > a.store_count) {
  1464 + console.log('购买的数量不能-----');
  1465 + // wx.showModal({
  1466 + // title: '提示',
  1467 + // content: '购买的数量不能超出库存数量',
  1468 + // });
  1469 + wx.showToast({
  1470 + title: '购买的数量不能超出库存数量',
  1471 + icon: 'none',
  1472 + });
  1473 + // getApp().my_warnning('购买的数量不能超出库存数量', 0, this);
  1474 + this.data.up_dating = 0;
  1475 +
  1476 + return false;
  1477 + }
  1478 + }
  1479 +
  1480 +
  1481 + var e = {
  1482 + goods_num: a.goods_num + 1,
  1483 + id: a.id,
  1484 + goods_id: a.goods_id,
  1485 + store_id: oo.stoid
  1486 + };
  1487 + // console.log('goods_num', e.goods_num);
  1488 + this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
  1489 +
  1490 + },
  1491 + //-------------减数量---------------------
  1492 + subNum: function (t) {
  1493 + if (!this.data.is_load) return false;
  1494 + if (this.data.up_dating == 1) return false;
  1495 + this.data.up_dating = 1;
  1496 +
  1497 + var a = t.currentTarget.dataset.item;
  1498 + var b = t.currentTarget.dataset.pitems;
  1499 + a = this.data.requestData[b].goods[a];
  1500 + this.data.btn_click = 1;
  1501 +
  1502 + if (a.goods_num - 1 < 0) {
  1503 + this.data.up_dating = 0;
  1504 + return false;
  1505 + }
  1506 +
  1507 +
  1508 +
  1509 + if (1 != a.goods_num) {
  1510 + var e = {
  1511 + goods_num: a.goods_num - 1,
  1512 + id: a.id,
  1513 + goods_id: a.goods_id,
  1514 + store_id: oo.stoid
  1515 + };
  1516 + this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
  1517 + }
  1518 + },
  1519 +
  1520 +
  1521 + //-----------------点击输入修改商品数量---------------
  1522 + valueToNum_ser: function (t) {
  1523 + if (!this.data.is_load) return false;
  1524 + //控制住,避免事件响应冲突,只有input有输入的时候,才刷新
  1525 + if (this.data.btn_click) {
  1526 + return false;
  1527 + }
  1528 + this.data.btn_click = 1;
  1529 +
  1530 + var a = t.currentTarget.dataset.item;
  1531 + var b = t.currentTarget.dataset.pitems;
  1532 + a = this.data.service_data[b].goods[a];
  1533 + var e = a;
  1534 + var th = this;
  1535 +
  1536 + if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) {
  1537 + var s = {
  1538 + goods_num: a,
  1539 + goods_id: e.service_id,
  1540 + id: e.id,
  1541 + store_id: oo.stoid,
  1542 + is_pd_normal: e.is_pd_normal
  1543 + };
  1544 + if (e.prom_type) {
  1545 + s.prom_type = e.prom_type;
  1546 + };
  1547 + if (e.prom_id) {
  1548 + s.prom_id = e.prom_id;
  1549 + };
  1550 + if (e.is_pd_normal) {
  1551 + s.is_pd_normal = e.is_pd_normal;
  1552 + };
  1553 + if (e.service_id) {
  1554 + s.card_id = e.service_id;
  1555 + };
  1556 + th.postCardList_ser(s, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
  1557 + }
  1558 + },
  1559 + //-------------加数量---------------------
  1560 + addNum_ser: function (t) {
  1561 + if (!this.data.is_load) return false;
  1562 + if (this.data.up_dating == 1) return false;
  1563 + // this.data.up_dating = 1;
  1564 +
  1565 + var a = t.currentTarget.dataset.item;
  1566 + var b = t.currentTarget.dataset.pitems;
  1567 + a = this.data.service_data[b].goods[a];
  1568 +
  1569 + var e = {
  1570 + goods_num: a.goods_num + 1,
  1571 + id: a.id,
  1572 + goods_id: a.service_id,
  1573 + store_id: oo.stoid,
  1574 + is_pd_normal: a.is_pd_normal
  1575 + };
  1576 + if (a.prom_type) {
  1577 + e.prom_type = a.prom_type;
  1578 + };
  1579 + if (a.prom_id) {
  1580 + e.prom_id = a.prom_id;
  1581 + };
  1582 + if (a.is_pd_normal) {
  1583 + e.is_pd_normal = a.is_pd_normal;
  1584 + };
  1585 + if (a.service_id) {
  1586 + e.card_id = a.service_id;
  1587 + };
  1588 + this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
  1589 +
  1590 + },
  1591 + //-------------减数量---------------------
  1592 + subNum_ser: function (t) {
  1593 +
  1594 + if (!this.data.is_load) return false;
  1595 + if (this.data.up_dating == 1) return false;
  1596 + // this.data.up_dating = 1;
  1597 +
  1598 + var a = t.currentTarget.dataset.item;
  1599 + var b = t.currentTarget.dataset.pitems;
  1600 + a = this.data.service_data[b].goods[a];
  1601 + this.data.btn_click = 1;
  1602 +
  1603 + if (a.goods_num - 1 <= 0) {
  1604 + this.data.up_dating = 0;
  1605 + return false;
  1606 + }
  1607 +
  1608 + if (1 != a.goods_num) {
  1609 + var e = {
  1610 + goods_num: a.goods_num - 1,
  1611 + id: a.id,
  1612 + goods_id: a.service_id,
  1613 + store_id: oo.stoid,
  1614 + is_pd_normal: a.is_pd_normal
  1615 + };
  1616 +
  1617 + this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
  1618 + }
  1619 + },
  1620 +
  1621 +
  1622 + //---------------全选,全选的时候要判断是否门店的匹配方式一致--------------
  1623 + checkAll: function () {
  1624 + var e = this,
  1625 + th = this,
  1626 + dda = e.data.requestData,
  1627 + sdda = e.data.service_data,
  1628 + tfeel = 0,
  1629 + t_num = 0,
  1630 + text_arr = "";
  1631 +
  1632 + if (e.data.requestData && e.data.requestData.length > 0 &&
  1633 + e.data.service_data && e.data.service_data.length > 0) {
  1634 + wx.showModal({
  1635 + title: '提示',
  1636 + content: '服务卡项目不能和商品一起选择'
  1637 + });
  1638 + return false;
  1639 + }
  1640 +
  1641 + this.data.btn_click = 1;
  1642 +
  1643 +
  1644 +
  1645 + var offline_price = 0;
  1646 + var offline_num = 0;
  1647 + th.data.in_zhact_gdmap = {};
  1648 +
  1649 +
  1650 + if (dda && dda.length > 0) {
  1651 + for (var i = 0; i < dda.length; i++) {
  1652 + var item = dda[i].goods;
  1653 +
  1654 + if (e.data.checkAllToggle) {
  1655 + var txt = "requestData[" + i + "].selected";
  1656 + e.setData({
  1657 + [txt]: 0,
  1658 + });
  1659 + }
  1660 + var fir = 0;
  1661 + for (var j = 0; j < item.length; j++) {
  1662 + if (item[j].is_gift) continue;
  1663 +
  1664 + var obj = JSON.parse(JSON.stringify(item[j]));
  1665 + //计算之前先移除组合购的计算
  1666 + if (obj.prom_type == 7)
  1667 + zh_calc.remove_zhprom(dda, i, obj);
  1668 + //计算之前先移除阶梯购的计算
  1669 + if (obj.prom_type == 10)
  1670 + ladder_calc.remove_ladder_prom(dda, i, obj);
  1671 +
  1672 +
  1673 + if (fir == 0) {
  1674 + fir = item[j].distr_type;
  1675 + } else {
  1676 + //如果同一门店有不同门店的商品,不能同一配送
  1677 + if (fir != item[j].distr_type && !e.data.checkAllToggle && item[j].distr_type != 0) {
  1678 + text_arr += item[j].goods_name + " ";
  1679 + break;
  1680 + }
  1681 + }
  1682 + var txt = "requestData[" + i + "].goods[" + j + "].selected";
  1683 +
  1684 + if (e.data.checkAllToggle) obj.goods_num = 0;
  1685 +
  1686 + //加入组合购计算
  1687 + if (obj.prom_type == 7) zh_calc.add_zhprom(dda, i, obj);
  1688 + //加入阶梯促销计算
  1689 + if (obj.prom_type == 10) ladder_calc.add_ladder_prom(dda, i, obj);
  1690 +
  1691 + e.setData({
  1692 +
  1693 + [txt]: !e.data.checkAllToggle,
  1694 + })
  1695 +
  1696 + if (!e.data.checkAllToggle) {
  1697 + //组合购的金额要另外算
  1698 + if (item[j].prom_type != 7 && item[j].prom_type != 10)
  1699 + tfeel += item[j].goods_num * item[j].goods_price;
  1700 + t_num += item[j].goods_num;
  1701 + }
  1702 +
  1703 + //-- 如果这个商品是线下取价的时候 --
  1704 + if (item[j].is_offline && item[j].prom_type != 7) {
  1705 + offline_price += (item[j].goods_price - item[j].offline_price) * item[j].goods_num;
  1706 + offline_num += item[j].goods_num;
  1707 + }
  1708 +
  1709 + }
  1710 + }
  1711 +
  1712 +
  1713 + if (text_arr != "") {
  1714 + wx.showModal({
  1715 + title: '提示',
  1716 + content: text_arr + '不能与门店中其他商品一起结算,配送方式不一致'
  1717 + });
  1718 + return false;
  1719 + } else {
  1720 +
  1721 + for (var i = 0; i < dda.length; i++) {
  1722 +
  1723 + if (!e.data.checkAllToggle) {
  1724 + var txt = "requestData[" + i + "].selected";
  1725 + e.setData({
  1726 + [txt]: 1,
  1727 + });
  1728 + }
  1729 +
  1730 + //总的价格,把组合商品的价格拿出来
  1731 + var zh_calc_res = zh_calc.calculate_zh(dda, i, this);
  1732 + tfeel += zh_calc_res.tfeel;
  1733 + offline_price += zh_calc_res.offline_price;
  1734 + offline_num += zh_calc_res.offline_num;
  1735 +
  1736 + //总的价格,把阶梯促销的商品的价格拿出来
  1737 + var ladder_calc_res = ladder_calc.calculate_ladder(dda, i, this);
  1738 + tfeel += ladder_calc_res.tfeel;
  1739 + offline_price += ladder_calc_res.offline_price;
  1740 + offline_num += ladder_calc_res.offline_num;
  1741 +
  1742 + //当有线下取价的时候
  1743 + if (offline_price) {
  1744 + var txt1 = "requestData[" + i + "].offline_price";
  1745 + var txt2 = "requestData[" + i + "].offline_num";
  1746 + th.setData({
  1747 + [txt1]: offline_price.toFixed(2),
  1748 + [txt2]: offline_num,
  1749 + });
  1750 + } else {
  1751 + if (dda[i].offline_price > 0) {
  1752 + var txt1 = "requestData[" + i + "].offline_price";
  1753 + var txt2 = "requestData[" + i + "].offline_num";
  1754 + th.setData({
  1755 + [txt1]: 0,
  1756 + [txt2]: 0
  1757 + });
  1758 + }
  1759 + }
  1760 + }
  1761 +
  1762 + e.setData({
  1763 + checkAllToggle: !e.data.checkAllToggle,
  1764 + total_fee: tfeel.toFixed(2),
  1765 + total_num: t_num,
  1766 + });
  1767 +
  1768 + e.all_check_prom_activity();
  1769 +
  1770 + }
  1771 + }
  1772 +
  1773 + if (sdda && sdda.length > 0) {
  1774 + for (var i = 0; i < sdda.length; i++) {
  1775 + var item = sdda[i].goods;
  1776 + if (e.data.checkAllToggle) {
  1777 + var txt = "service_data[" + i + "].selected";
  1778 + e.setData({
  1779 + [txt]: 0,
  1780 + });
  1781 + }
  1782 + var fir = 0;
  1783 + for (var j = 0; j < item.length; j++) {
  1784 + var txt = "service_data[" + i + "].goods[" + j + "].selected"
  1785 + e.setData({
  1786 + [txt]: !e.data.checkAllToggle ? 1 : 0,
  1787 + })
  1788 +
  1789 + if (!e.data.checkAllToggle) {
  1790 + tfeel += item[j].goods_num * item[j].money;
  1791 + t_num += item[j].goods_num;
  1792 + }
  1793 + }
  1794 + }
  1795 + e.setData({
  1796 + checkAllToggle: !e.data.checkAllToggle,
  1797 + total_fee: tfeel.toFixed(2),
  1798 + total_num: t_num,
  1799 + });
  1800 + }
  1801 +
  1802 + },
  1803 + //------门店全选按钮,要判断是否门店的匹配方式一致---------
  1804 + check_th_all_item: async function (ele) {
  1805 + var e = this, th = this,
  1806 + pitems = ele.currentTarget.dataset.pitems,
  1807 + item = this.data.requestData[pitems].goods,
  1808 + sele = this.data.requestData[pitems].selected;
  1809 + this.data.btn_click = 1;
  1810 + var garr = e.data.service_data;
  1811 +
  1812 + var isok = 1,
  1813 + fir = 0,
  1814 + iarr = item;
  1815 +
  1816 + if (!sele) {
  1817 + var check_is_service_selected = 0;
  1818 + for (var ii in garr) {
  1819 + for (var ij in garr[ii].goods) {
  1820 + if (garr[ii].goods[ij].selected) {
  1821 + check_is_service_selected = 1;
  1822 + break;
  1823 + }
  1824 + }
  1825 + }
  1826 +
  1827 + if (check_is_service_selected) {
  1828 + wx.showModal({
  1829 + title: '提示',
  1830 + content: '服务卡项目不能和商品一起选择'
  1831 + });
  1832 + return false;
  1833 + }
  1834 + }
  1835 +
  1836 + if (!sele && item.length > 0) {
  1837 + for (var i = 0; i < iarr.length; i++) {
  1838 + if (iarr[i].is_gift == 1) continue;
  1839 + if (iarr[i].distr_type != 0) {
  1840 + if (fir == 0) {
  1841 + fir = iarr[i].distr_type;
  1842 + } else {
  1843 + if (fir != iarr[i].distr_type && iarr[i].distr_type != 0) {
  1844 + isok = 0;
  1845 + break;
  1846 + }
  1847 + }
  1848 + }
  1849 + }
  1850 + }
  1851 +
  1852 + if (!isok) {
  1853 + wx.showModal({
  1854 + title: '提示',
  1855 + content: '同一门店自提和物流的商品不能同时结算'
  1856 + });
  1857 + return false;
  1858 + }
  1859 +
  1860 + for (var i = 0; i < item.length; i++) {
  1861 + var txt = "requestData[" + pitems + "].goods[" + i + "].selected";
  1862 +
  1863 + var gd_info = item[i];
  1864 + if (th.data.sales_rules >= 2 && !gd_info.whsle_id && [1, 2, 4, 6, 8, 9].indexOf(gd_info.prom_type) == -1 && !gd_info.selected) {
  1865 + var ob = {};
  1866 + await th.check_down_line_next(gd_info, pitems, i, gd_info.erpwareid, function (res) {
  1867 + ob = res;
  1868 + });
  1869 +
  1870 + if (ob.code == -1) {
1306 1871
1307 - // console.log('BBBBBB', all_num);  
1308 - th.setData({  
1309 - service_data: arr,  
1310 - all_num2: all_num,  
1311 - is_edit: 0  
1312 - }),  
1313 - th.doCheckAll(), wx.stopPullDownRefresh(); 1872 + wx.showToast({
  1873 + title: '购买数量超出商品库存',
  1874 + icon: 'none',
  1875 + });
1314 1876
  1877 + return false;
  1878 + } else {
  1879 + if (th.data.sales_rules == 3) {
  1880 + var goods_id = gd_info.goods_id;
  1881 + var num = 0;
  1882 +
  1883 + for (let i = 0; i < th.data.requestData.length; i++) {
  1884 + if (pitems == i) continue;
  1885 + var it = th.data.requestData[i].goods.find((e) => {
  1886 + return e.goods_id == goods_id;
  1887 + })
  1888 + if (it && it.selected) num += it.goods_num
1315 } 1889 }
1316 - });  
1317 - },  
1318 1890
1319 - async getUserBuyPromNum(prom_id){  
1320 - var userInfo = getApp().globalData.userInfo;  
1321 - var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${userInfo.user_id}&prom_type=7&prom_id=${prom_id}`;  
1322 - let res = await getApp().request.promiseGet(url, {  
1323 - data:{}  
1324 - });  
1325 - let userbuynum=0  
1326 - if(res.data.code==0 && res.data.data){  
1327 - userbuynum=res.data.data.userbuynum  
1328 - }  
1329 - return userbuynum  
1330 - },  
1331 -  
1332 - //设置莫个门店的所有线下价格  
1333 - async set_offline(list) {  
1334 - var th = this;  
1335 - var userInfo = getApp().globalData.userInfo;  
1336 - //组织一下商品,然后进行线下价格的赋值  
1337 - var wlist = "";  
1338 - for (var i in list.goods) {  
1339 - //如果商品有促销活动  
1340 - if (list.goods[i].prom_type > 0 && list.goods[i].prom_type != 7) continue;  
1341 - wlist += encodeURIComponent(list.goods[i].erpwareid) + ",";  
1342 - }  
1343 - wlist = ut.sub_last(wlist);  
1344 - //调用接口进行赋值  
1345 - await getApp().request.promiseGet("/api/weshop/goods/listWarePrice", {  
1346 - data: {  
1347 - store_id: os.stoid,  
1348 - PickupId: list.pid,  
1349 - WareIds: wlist,  
1350 - VIPId: encodeURIComponent(userInfo.erpvipid)  
1351 - }  
1352 - }).then(res => {  
1353 - if (res.data.code == 0 && res.data.data && res.data.data.length > 0) {  
1354 - for (var e in res.data.data) {  
1355 - th.set_cart_offline_price(res.data.data[e], list.goods);  
1356 - }  
1357 - }  
1358 - })  
1359 - },  
1360 -  
1361 - //-- 设置购物车线下 --  
1362 - set_cart_offline_price: function (data, glist) {  
1363 - for (var i in glist) {  
1364 - if (glist[i].erpwareid == data.WareId && (glist[i].prom_type == 0 || glist[i].prom_type == 7)) {  
1365 - if (glist[i].goods_price >= data.WarePrice) {  
1366 - glist[i].is_offline = 1;  
1367 - glist[i].offline_price = data.WarePrice;  
1368 - glist[i].pricing_type = data.PriceType;  
1369 - } 1891 + if (num > ob.CanOutQty) {
  1892 + wx.showToast({
  1893 + title: '购买数量超出商品库存',
  1894 + icon: 'none',
  1895 + });
  1896 +
  1897 + return false;
1370 } 1898 }
  1899 + }
1371 } 1900 }
1372 - }, 1901 +
  1902 + }
  1903 +
1373 1904
1374 1905
1375 - //删除商品  
1376 - delete_th_item: function (t) {  
1377 - var e = this;  
1378 - var a = rq;  
1379 - console.log(a); 1906 + e.setData({
  1907 + [txt]: Number(!sele),
  1908 + });
  1909 + }
  1910 + var txt = "requestData[" + pitems + "].selected";
  1911 + e.setData({
  1912 + [txt]: Number(!sele),
  1913 + });
  1914 +
  1915 + e.data.duo_zp_num_arr = {};
  1916 + if (sele) {
  1917 + await e.check_prom_activity(pitems);
  1918 + }
  1919 + for (var i in e.data.requestData) {
  1920 + if (sele && i == pitems) continue;
  1921 + await e.check_prom_activity(i);
  1922 + }
  1923 + this.doCheckAll();
  1924 + },
  1925 + //---------------单选,也要判断门店的配送方式是否一致--------------
  1926 + check_th_item: async function (t) {
  1927 + var e = this, th = this,
  1928 + item = t.currentTarget.dataset.item,
  1929 + pitems = t.currentTarget.dataset.pitems;
  1930 + a = this.data.requestData[pitems].goods[item];
  1931 + var isok = 1,
  1932 + fir = 0;
  1933 + var iarr = e.data.requestData[pitems].goods;
  1934 + this.data.btn_click = 1;
  1935 + var garr = e.data.service_data;
  1936 +
  1937 + if (!a.selected) {
  1938 + var check_is_service_selected = 0;
  1939 + for (var ii in garr) {
  1940 + for (var ij in garr[ii].goods) {
  1941 + if (garr[ii].goods[ij].selected) {
  1942 + check_is_service_selected = 1;
  1943 + break;
  1944 + }
  1945 + }
  1946 + }
  1947 + if (check_is_service_selected) {
1380 wx.showModal({ 1948 wx.showModal({
1381 - title: "确定删除?",  
1382 - success: function (s) {  
1383 - if (s.confirm) {  
1384 - var r = t.currentTarget.dataset.cartid;  
1385 - var url = '/api/weshop/cart/del/' + oo.stoid + '/' + r;  
1386 - a.delete(url, {  
1387 - success: function (t) {  
1388 - e.getCardList();  
1389 - }  
1390 - });  
1391 - }  
1392 - } 1949 + title: '提示',
  1950 + content: '服务卡项目不能和商品一起选择'
1393 }); 1951 });
1394 - },  
1395 -  
1396 - //-----------------点击输入修改商品数量---------------  
1397 - valueToNum: function (t) {  
1398 - if (!this.data.is_load) return false;  
1399 - //控制住,避免事件响应冲突,只有input有输入的时候,才刷新  
1400 - if (this.data.btn_click) {  
1401 - return false;  
1402 - }  
1403 - this.data.btn_click = 1;  
1404 -  
1405 - var a = t.currentTarget.dataset.item;  
1406 - var b = t.currentTarget.dataset.pitems;  
1407 - a = this.data.requestData[b].goods[a];  
1408 - var e = a;  
1409 - var th = this;  
1410 -  
1411 - if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) {  
1412 - var s = {  
1413 - goods_num: a,  
1414 - goods_id: e.goods_id,  
1415 - id: e.id,  
1416 - store_id: oo.stoid  
1417 - };  
1418 - th.postCardList(s, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); 1952 + return false;
  1953 + }
  1954 + }
  1955 +
  1956 + //当数量大于1,且是选择的时候
  1957 + if (iarr.length > 1 && !a.selected) {
  1958 +
  1959 + for (var i = 0; i < iarr.length; i++) {
  1960 + if (iarr[i].is_gift == 1) continue;
  1961 + //---当不是本身选择项目----
  1962 + var sel = iarr[i].selected;
  1963 + if (iarr[i].distr_type != 0 && (sel || iarr[i].id == a.id)) {
  1964 + if (fir == 0) {
  1965 + fir = iarr[i].distr_type;
  1966 + } else {
  1967 + if (fir != iarr[i].distr_type && iarr[i].distr_type != 0) {
  1968 + isok = 0;
  1969 + break;
  1970 + }
  1971 + }
1419 } 1972 }
1420 - }, 1973 + }
  1974 + }
  1975 + if (!isok) {
  1976 + wx.showModal({
  1977 + title: '提示',
  1978 + content: '同一门店自提和物流的商品不能同时结算'
  1979 + });
  1980 + } else {
  1981 + var txt = "requestData[" + pitems + "].goods[" + item + "].selected";
  1982 + var gd_info = a;
1421 1983
1422 - //-------------加数量---------------------  
1423 - addNum: function (t) {  
1424 - if (!this.data.is_load) return false;  
1425 - if (this.data.up_dating == 1) return false;  
1426 - this.data.up_dating = 1; 1984 + var erpwareid = gd_info.erpwareid;
  1985 + if (th.data.sales_rules >= 2 && !gd_info.whsle_id && [1, 2, 4, 6, 8, 9].indexOf(gd_info.prom_type) == -1 && !a.selected) {
  1986 + var ob = {};
  1987 + await th.check_down_line_next(gd_info, pitems, item, erpwareid, function (res) {
  1988 + ob = res;
  1989 + });
1427 1990
1428 - var a = t.currentTarget.dataset.item;  
1429 - var b = t.currentTarget.dataset.pitems;  
1430 - a = this.data.requestData[b].goods[a]; 1991 + if (ob.code == -1) {
1431 1992
1432 - console.log('add+');  
1433 -  
1434 - if(this.data.sales_rules <2 || a.whsle_id || [1,2,4,6,8,9].indexOf(a.prom_type)>-1 ) {  
1435 -  
1436 - if (a.goods_num > a.store_count) {  
1437 - console.log('购买的数量不能-----');  
1438 - // wx.showModal({  
1439 - // title: '提示',  
1440 - // content: '购买的数量不能超出库存数量',  
1441 - // });  
1442 - wx.showToast({  
1443 - title: '购买的数量不能超出库存数量',  
1444 - icon: 'none',  
1445 - });  
1446 - // getApp().my_warnning('购买的数量不能超出库存数量', 0, this);  
1447 - this.data.up_dating = 0;  
1448 -  
1449 - return false;  
1450 - } 1993 + wx.showToast({
  1994 + title: '购买数量超出商品库存',
  1995 + icon: 'none',
  1996 + });
  1997 +
  1998 + return false;
  1999 + } else {
  2000 + if (th.data.sales_rules == 3) {
  2001 + var goods_id = gd_info.goods_id;
  2002 + var num = 0;
  2003 +
  2004 + for (let i = 0; i < th.data.requestData.length; i++) {
  2005 + if (pitems == i) continue;
  2006 + var it = th.data.requestData[i].goods.find((e) => {
  2007 + return e.goods_id == goods_id;
  2008 + })
  2009 + if (it && it.selected) num += it.goods_num
1451 } 2010 }
1452 2011
  2012 + if (num > ob.CanOutQty) {
  2013 + wx.showToast({
  2014 + title: '购买数量超出商品库存',
  2015 + icon: 'none',
  2016 + });
1453 2017
1454 - var e = {  
1455 - goods_num: a.goods_num + 1,  
1456 - id: a.id,  
1457 - goods_id: a.goods_id,  
1458 - store_id: oo.stoid  
1459 - };  
1460 - // console.log('goods_num', e.goods_num);  
1461 - this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);  
1462 -  
1463 - },  
1464 - //-------------减数量---------------------  
1465 - subNum: function (t) {  
1466 - if (!this.data.is_load) return false;  
1467 - if (this.data.up_dating == 1) return false;  
1468 - this.data.up_dating = 1;  
1469 -  
1470 - var a = t.currentTarget.dataset.item;  
1471 - var b = t.currentTarget.dataset.pitems;  
1472 - a = this.data.requestData[b].goods[a];  
1473 - this.data.btn_click = 1;  
1474 -  
1475 - if (a.goods_num - 1 < 0) {  
1476 - this.data.up_dating = 0;  
1477 - return false; 2018 + return false;
  2019 + }
  2020 + }
1478 } 2021 }
1479 2022
  2023 + }
1480 2024
1481 2025
1482 - if (1 != a.goods_num) {  
1483 - var e = {  
1484 - goods_num: a.goods_num - 1,  
1485 - id: a.id,  
1486 - goods_id: a.goods_id,  
1487 - store_id: oo.stoid  
1488 - };  
1489 - this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);  
1490 - }  
1491 - },  
1492 2026
  2027 + e.setData({
  2028 + [txt]: Number(!a.selected),
  2029 + });
1493 2030
1494 - //-----------------点击输入修改商品数量---------------  
1495 - valueToNum_ser: function (t) {  
1496 - if (!this.data.is_load) return false;  
1497 - //控制住,避免事件响应冲突,只有input有输入的时候,才刷新  
1498 - if (this.data.btn_click) {  
1499 - return false;  
1500 - }  
1501 - this.data.btn_click = 1;  
1502 -  
1503 - var a = t.currentTarget.dataset.item;  
1504 - var b = t.currentTarget.dataset.pitems;  
1505 - a = this.data.service_data[b].goods[a];  
1506 - var e = a;  
1507 - var th = this;  
1508 -  
1509 - if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) {  
1510 - var s = {  
1511 - goods_num: a,  
1512 - goods_id: e.service_id,  
1513 - id: e.id,  
1514 - store_id: oo.stoid,  
1515 - is_pd_normal: e.is_pd_normal  
1516 - };  
1517 - if(e.prom_type) {  
1518 - s.prom_type = e.prom_type;  
1519 - };  
1520 - if(e.prom_id) {  
1521 - s.prom_id = e.prom_id;  
1522 - };  
1523 - if(e.is_pd_normal) {  
1524 - s.is_pd_normal = e.is_pd_normal;  
1525 - };  
1526 - if(e.service_id) {  
1527 - s.card_id = e.service_id;  
1528 - };  
1529 - th.postCardList_ser(s, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); 2031 + if (a.prom_type == 3) {
  2032 + e.data.duo_zp_num_arr = {};
  2033 + if (!a.selected) {
  2034 + await e.check_prom_activity(pitems);
1530 } 2035 }
1531 - },  
1532 - //-------------加数量---------------------  
1533 - addNum_ser: function (t) {  
1534 - if (!this.data.is_load) return false;  
1535 - if (this.data.up_dating == 1) return false;  
1536 - // this.data.up_dating = 1;  
1537 -  
1538 - var a = t.currentTarget.dataset.item;  
1539 - var b = t.currentTarget.dataset.pitems;  
1540 - a = this.data.service_data[b].goods[a];  
1541 -  
1542 - var e = {  
1543 - goods_num: a.goods_num + 1,  
1544 - id: a.id,  
1545 - goods_id: a.service_id,  
1546 - store_id: oo.stoid,  
1547 - is_pd_normal: a.is_pd_normal  
1548 - };  
1549 - if(a.prom_type) {  
1550 - e.prom_type = a.prom_type;  
1551 - };  
1552 - if(a.prom_id) {  
1553 - e.prom_id = a.prom_id;  
1554 - };  
1555 - if(a.is_pd_normal) {  
1556 - e.is_pd_normal = a.is_pd_normal;  
1557 - };  
1558 - if(a.service_id) {  
1559 - e.card_id = a.service_id;  
1560 - };  
1561 - this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);  
1562 -  
1563 - },  
1564 - //-------------减数量---------------------  
1565 - subNum_ser: function (t) {  
1566 -  
1567 - if (!this.data.is_load) return false;  
1568 - if (this.data.up_dating == 1) return false;  
1569 - // this.data.up_dating = 1;  
1570 -  
1571 - var a = t.currentTarget.dataset.item;  
1572 - var b = t.currentTarget.dataset.pitems;  
1573 - a = this.data.service_data[b].goods[a];  
1574 - this.data.btn_click = 1;  
1575 -  
1576 - if (a.goods_num - 1 <= 0) {  
1577 - this.data.up_dating = 0;  
1578 - return false; 2036 + //判断商品是不是优惠活动
  2037 + for (var i in e.data.requestData) {
  2038 + if (!a.selected && i == pitems) continue;
  2039 + await e.check_prom_activity(i);
1579 } 2040 }
  2041 + }
  2042 + this.doCheckAll();
  2043 + }
  2044 + },
1580 2045
1581 - if (1 != a.goods_num) {  
1582 - var e = {  
1583 - goods_num: a.goods_num - 1,  
1584 - id: a.id,  
1585 - goods_id: a.service_id,  
1586 - store_id: oo.stoid,  
1587 - is_pd_normal: a.is_pd_normal  
1588 - };  
1589 -  
1590 - this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); 2046 + //------门店全选按钮,要判断是否门店的匹配方式一致---------
  2047 + check_th_all_item_ser: async function (ele) {
  2048 + var e = this,
  2049 + pitems = ele.currentTarget.dataset.pitems,
  2050 + item = this.data.service_data[pitems].goods,
  2051 + sele = this.data.service_data[pitems].selected;
  2052 + this.data.btn_click = 1;
  2053 + var garr = e.data.requestData;
  2054 +
  2055 + var isok = 1,
  2056 + fir = 0,
  2057 + iarr = item;
  2058 +
  2059 + if (!sele) {
  2060 + var check_is_goods_selected = 0;
  2061 + for (var ii in garr) {
  2062 + for (var ij in garr[ii].goods) {
  2063 + if (garr[ii].goods[ij].selected) {
  2064 + check_is_goods_selected = 1;
  2065 + break;
  2066 + }
1591 } 2067 }
1592 - },  
1593 -  
1594 -  
1595 - //---------------全选,全选的时候要判断是否门店的匹配方式一致--------------  
1596 - checkAll: function () {  
1597 - var e = this,  
1598 - th = this,  
1599 - dda = e.data.requestData,  
1600 - sdda = e.data.service_data,  
1601 - tfeel = 0,  
1602 - t_num = 0,  
1603 - text_arr = "";  
1604 -  
1605 - if (e.data.requestData && e.data.requestData.length > 0 &&  
1606 - e.data.service_data && e.data.service_data.length > 0) {  
1607 - wx.showModal({  
1608 - title: '提示',  
1609 - content: '服务卡项目不能和商品一起选择'  
1610 - });  
1611 - return false; 2068 + }
  2069 + if (check_is_goods_selected) {
  2070 + wx.showModal({
  2071 + title: '提示',
  2072 + content: '服务卡项目不能和商品一起选择'
  2073 + });
  2074 + return false;
  2075 + }
  2076 + }
  2077 +
  2078 + for (var i = 0; i < item.length; i++) {
  2079 + var txt = "service_data[" + pitems + "].goods[" + i + "].selected";
  2080 + e.setData({
  2081 + [txt]: Number(!sele),
  2082 + });
  2083 + }
  2084 + var txt = "service_data[" + pitems + "].selected";
  2085 + e.setData({
  2086 + [txt]: Number(!sele),
  2087 + });
  2088 + this.doCheckAll();
  2089 + },
  2090 + //---------------单选,也要判断门店的配送方式是否一致--------------
  2091 + check_th_item_ser: async function (t) {
  2092 + var e = this,
  2093 + item = t.currentTarget.dataset.item,
  2094 + pitems = t.currentTarget.dataset.pitems;
  2095 + a = this.data.service_data[pitems].goods[item]; // 选中的商品
  2096 +
  2097 + var isok = 1,
  2098 + fir = 0;
  2099 + var iarr = e.data.service_data[pitems].goods;
  2100 + this.data.btn_click = 1;
  2101 +
  2102 + var garr = e.data.requestData;
  2103 +
  2104 + if (!a.selected) {
  2105 + var check_is_goods_selected = 0;
  2106 + for (var ii in garr) {
  2107 + for (var ij in garr[ii].goods) {
  2108 + if (garr[ii].goods[ij].selected) {
  2109 + check_is_goods_selected = 1;
  2110 + break;
  2111 + }
1612 } 2112 }
  2113 + }
1613 2114
1614 - this.data.btn_click = 1; 2115 + if (check_is_goods_selected) {
  2116 + wx.showModal({
  2117 + title: '提示',
  2118 + content: '服务卡项目不能和商品一起选择'
  2119 + });
  2120 + return false;
  2121 + }
  2122 + }
1615 2123
  2124 + var txt = "service_data[" + pitems + "].goods[" + item + "].selected";
  2125 + e.setData({
  2126 + [txt]: Number(!a.selected),
  2127 + });
1616 2128
  2129 + this.doCheckAll();
  2130 + },
1617 2131
  2132 + //----------检查是否全选---------
  2133 + doCheckAll: function () {
  2134 + var th = this,
  2135 + tfeel = 0,
  2136 + t_num = 0,
  2137 + ischeck = 1,
  2138 + car = this.data.requestData,
  2139 + car2 = this.data.service_data,
  2140 + all_num = 0;
  2141 +
  2142 + //-- 购物车 --
  2143 + if (car && car.length > 0) {
  2144 + th.data.in_zhact_gdmap = {};
  2145 + for (var a = 0; a < car.length; a++) {
  2146 + var item = car[a].goods, is_s_sele = 1;
1618 var offline_price = 0; 2147 var offline_price = 0;
1619 var offline_num = 0; 2148 var offline_num = 0;
1620 - th.data.in_zhact_gdmap = {}; 2149 + for (var c = 0; c < item.length; c++) {
  2150 + if (item[c].is_gift) continue;
  2151 + all_num += item[c].goods_num;
  2152 +
  2153 + //不管怎么样都要移出去
  2154 + var obj = JSON.parse(JSON.stringify(item[c]));
  2155 + zh_calc.remove_zhprom(car, a, obj);
  2156 + ladder_calc.remove_ladder_prom(car, a, obj);
  2157 +
  2158 + if (item[c].selected == 0) {
  2159 + ischeck = 0;
  2160 + is_s_sele = 0;
  2161 + if (item[c].prom_type == 7) {
  2162 + obj.goods_num = 0;
  2163 + zh_calc.add_zhprom(car, a, obj);
  2164 + }
  2165 + if (item[c].prom_type == 10) {
  2166 + obj.goods_num = 0;
  2167 + ladder_calc.add_ladder_prom(car, a, obj);
  2168 + }
1621 2169
1622 2170
1623 - if (dda && dda.length > 0) {  
1624 - for (var i = 0; i < dda.length; i++) {  
1625 - var item = dda[i].goods; 2171 + } else {
  2172 + if (item[c].prom_type == 7) {
  2173 + //先把商品放入组合计算的专用的区域
  2174 + console.log('是组合商品---')
  2175 + console.log(car);
  2176 + console.log(a)
  2177 + console.log(obj)
  2178 + console.log('......................')
  2179 + zh_calc.add_zhprom(car, a, obj);
  2180 + } else if (item[c].prom_type == 10) {
  2181 + ladder_calc.add_ladder_prom(car, a, obj);
  2182 + }
  2183 + else {
  2184 + tfeel += item[c].goods_num * item[c].goods_price;
  2185 + }
  2186 + t_num += item[c].goods_num;
  2187 + }
1626 2188
1627 - if (e.data.checkAllToggle) {  
1628 - var txt = "requestData[" + i + "].selected";  
1629 - e.setData({  
1630 - [txt]: 0,  
1631 - });  
1632 - }  
1633 - var fir = 0;  
1634 - for (var j = 0; j < item.length; j++) {  
1635 - if(item[j].is_gift) continue;  
1636 -  
1637 - var obj=JSON.parse(JSON.stringify(item[j]));  
1638 - //计算之前先移除组合购的计算  
1639 - if(obj.prom_type==7)  
1640 - zh_calc.remove_zhprom(dda,i,obj);  
1641 - //计算之前先移除阶梯购的计算  
1642 - if(obj.prom_type==10)  
1643 - ladder_calc.remove_ladder_prom(dda,i,obj);  
1644 -  
1645 -  
1646 - if (fir == 0) {  
1647 - fir = item[j].distr_type;  
1648 - } else {  
1649 - //如果同一门店有不同门店的商品,不能同一配送  
1650 - if (fir != item[j].distr_type && !e.data.checkAllToggle && item[j].distr_type != 0) {  
1651 - text_arr += item[j].goods_name + " ";  
1652 - break;  
1653 - }  
1654 - }  
1655 - var txt = "requestData[" + i + "].goods[" + j + "].selected";  
1656 -  
1657 - if(e.data.checkAllToggle) obj.goods_num=0;  
1658 -  
1659 - //加入组合购计算  
1660 - if(obj.prom_type==7) zh_calc.add_zhprom(dda,i,obj);  
1661 - //加入阶梯促销计算  
1662 - if(obj.prom_type==10) ladder_calc.add_ladder_prom(dda,i,obj);  
1663 -  
1664 - e.setData({  
1665 -  
1666 - [txt]: !e.data.checkAllToggle,  
1667 - }) 2189 + //-- 如果这个商品是线下取价的时候 --
  2190 + if (item[c].is_offline && item[c].prom_type != 7) {
  2191 + offline_price += (item[c].goods_price - item[c].offline_price) * item[c].goods_num;
  2192 + offline_num += item[c].goods_num;
  2193 + }
  2194 + }
1668 2195
1669 - if (!e.data.checkAllToggle) {  
1670 - //组合购的金额要另外算  
1671 - if(item[j].prom_type!=7 && item[j].prom_type!=10)  
1672 - tfeel += item[j].goods_num * item[j].goods_price;  
1673 - t_num += item[j].goods_num;  
1674 - } 2196 + //总的价格,把组合商品的价格拿出来
  2197 + var zh_calc_res = zh_calc.calculate_zh(car, a, th);
  2198 + console.log('.组合价-----------')
  2199 + console.log(zh_calc_res)
  2200 + //总的价格,把阶梯促销商品的价格拿出来
  2201 + var ladder_calc_res = ladder_calc.calculate_ladder(car, a, th);
1675 2202
1676 - //-- 如果这个商品是线下取价的时候 --  
1677 - if (item[j].is_offline && item[j].prom_type != 7) {  
1678 - offline_price += (item[j].goods_price - item[j].offline_price) * item[j].goods_num;  
1679 - offline_num += item[j].goods_num;  
1680 - } 2203 + tfeel += zh_calc_res.tfeel;
  2204 + offline_price += zh_calc_res.offline_price;
  2205 + offline_num += zh_calc_res.offline_num;
1681 2206
1682 - }  
1683 - } 2207 + tfeel += ladder_calc_res.tfeel;
  2208 + offline_price += ladder_calc_res.offline_price;
  2209 + offline_num += ladder_calc_res.offline_num;
1684 2210
  2211 + var txt = "requestData[" + a + "].selected";
  2212 + th.setData({
  2213 + [txt]: Number(is_s_sele)
  2214 + });
1685 2215
1686 - if (text_arr != "") {  
1687 - wx.showModal({  
1688 - title: '提示',  
1689 - content: text_arr + '不能与门店中其他商品一起结算,配送方式不一致'  
1690 - });  
1691 - return false;  
1692 - } else { 2216 + //当有线下取价的时候
  2217 + if (offline_price) {
  2218 + var txt1 = "requestData[" + a + "].offline_price";
  2219 + var txt2 = "requestData[" + a + "].offline_num";
  2220 + th.setData({
  2221 + [txt1]: offline_price.toFixed(2),
  2222 + [txt2]: offline_num,
  2223 + });
  2224 + } else {
  2225 + if (car[a].offline_price > 0) {
  2226 + var txt1 = "requestData[" + a + "].offline_price";
  2227 + var txt2 = "requestData[" + a + "].offline_num";
  2228 + th.setData({
  2229 + [txt1]: 0,
  2230 + [txt2]: 0
  2231 + });
  2232 + }
  2233 + }
1693 2234
1694 - for (var i = 0; i < dda.length; i++) { 2235 + }
  2236 + }
1695 2237
1696 - if (!e.data.checkAllToggle) {  
1697 - var txt = "requestData[" + i + "].selected";  
1698 - e.setData({  
1699 - [txt]: 1,  
1700 - });  
1701 - } 2238 + //-- 服务卡 --
  2239 + if (car2 && car2.length > 0) {
  2240 + for (var a = 0; a < car2.length; a++) {
  2241 + var c_item = car2[a];
  2242 + var item = car2[a].goods,
  2243 + is_s_sele = 1;
  2244 +
  2245 + for (var c = 0; c < item.length; c++) {
  2246 + if (item[c].is_gift) continue;
  2247 + all_num += item[c].goods_num;
  2248 + if (item[c].selected == 0) {
  2249 + ischeck = 0;
  2250 + is_s_sele = 0;
  2251 + } else {
  2252 + tfeel += item[c].goods_num * item[c].money;
  2253 + t_num += item[c].goods_num;
  2254 + }
1702 2255
1703 - //总的价格,把组合商品的价格拿出来  
1704 - var zh_calc_res = zh_calc.calculate_zh(dda, i, this);  
1705 - tfeel += zh_calc_res.tfeel;  
1706 - offline_price += zh_calc_res.offline_price;  
1707 - offline_num += zh_calc_res.offline_num;  
1708 -  
1709 - //总的价格,把阶梯促销的商品的价格拿出来  
1710 - var ladder_calc_res=ladder_calc.calculate_ladder(dda,i,this);  
1711 - tfeel+=ladder_calc_res.tfeel;  
1712 - offline_price+=ladder_calc_res.offline_price;  
1713 - offline_num+=ladder_calc_res.offline_num;  
1714 -  
1715 - //当有线下取价的时候  
1716 - if (offline_price) {  
1717 - var txt1 = "requestData[" + i + "].offline_price";  
1718 - var txt2 = "requestData[" + i + "].offline_num";  
1719 - th.setData({  
1720 - [txt1]: offline_price.toFixed(2),  
1721 - [txt2]: offline_num,  
1722 - });  
1723 - } else {  
1724 - if (dda[i].offline_price > 0) {  
1725 - var txt1 = "requestData[" + i + "].offline_price";  
1726 - var txt2 = "requestData[" + i + "].offline_num";  
1727 - th.setData({  
1728 - [txt1]: 0,  
1729 - [txt2]: 0  
1730 - });  
1731 - }  
1732 - }  
1733 - } 2256 + }
1734 2257
1735 - e.setData({  
1736 - checkAllToggle: !e.data.checkAllToggle,  
1737 - total_fee: tfeel.toFixed(2),  
1738 - total_num: t_num,  
1739 - }); 2258 + var txt = "service_data[" + a + "].selected";
  2259 + th.setData({
  2260 + [txt]: Number(is_s_sele)
  2261 + });
  2262 + }
  2263 + }
1740 2264
1741 - e.all_check_prom_activity(); 2265 + this.setData({
  2266 + checkAllToggle: ischeck,
  2267 + total_fee: tfeel.toFixed(2),
  2268 + all_num: all_num,
  2269 + total_num: t_num
  2270 + });
  2271 + },
1742 2272
1743 - } 2273 + //----------------------更新购物数量,加减,调用接口---------------------
  2274 + postCardList: function (t, item, pitem) {
  2275 + var e = this,
  2276 + th = e,
  2277 + user_id = getApp().globalData.user_id;
  2278 +
  2279 + function normal_check(store_count, goodsinfo, wareIds) {
  2280 + //--- 看一下是不是线下库存 ---
  2281 + if (th.data.sales_rules >= 2 && !goodsinfo.whsle_id) {
  2282 + th.check_down_line(t, pitem, item, wareIds);
  2283 + } else {
  2284 + if (t.goods_num > store_count) {
  2285 + wx.showToast({
  2286 + title: '购买数量超出商品库存',
  2287 + icon: 'none',
  2288 + });
  2289 + // getApp().my_warnning('购买数量超出商品库存', 0, th);
  2290 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2291 + e.setData({
  2292 + [txt]: store_count
  2293 + });
  2294 + e.doCheckAll();
  2295 + t.goods_num = store_count;
1744 } 2296 }
  2297 + e.update_cart(t, pitem, item);
  2298 + }
  2299 + }
1745 2300
1746 - if (sdda && sdda.length > 0) {  
1747 - for (var i = 0; i < sdda.length; i++) {  
1748 - var item = sdda[i].goods;  
1749 - if (e.data.checkAllToggle) {  
1750 - var txt = "service_data[" + i + "].selected";  
1751 - e.setData({  
1752 - [txt]: 0,  
1753 - });  
1754 - }  
1755 - var fir = 0;  
1756 - for (var j = 0; j < item.length; j++) {  
1757 - var txt = "service_data[" + i + "].goods[" + j + "].selected"  
1758 - e.setData({  
1759 - [txt]: !e.data.checkAllToggle ? 1 : 0,  
1760 - })  
1761 -  
1762 - if (!e.data.checkAllToggle) {  
1763 - tfeel += item[j].goods_num * item[j].money;  
1764 - t_num += item[j].goods_num;  
1765 - }  
1766 - }  
1767 - }  
1768 - e.setData({  
1769 - checkAllToggle: !e.data.checkAllToggle,  
1770 - total_fee: tfeel.toFixed(2),  
1771 - total_num: t_num, 2301 + // console.log('update');
  2302 + // console.log('9995959595959',t);
  2303 + var e = this, th = e;
  2304 + var user_id = getApp().globalData.user_id;
  2305 + rq.get("/api/weshop/goods/get/" + oo.stoid + "/" + t.goods_id, {
  2306 + isShowLoading: 0,
  2307 + async success(d) {
  2308 + var limit = d.data.data.viplimited;
  2309 + var store_count = d.data.data.store_count;
  2310 + var wareIds = d.data.data.erpwareid;
  2311 +
  2312 + var goodsinfo = e.data.requestData[pitem].goods[item];
  2313 + var promgoodsbuynum = 0;
  2314 + var goodsbuynum = 0;
  2315 +
  2316 + //--要获得商品,该用户买了多少件,同步应用--
  2317 + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {
  2318 + data: {
  2319 + store_id: oo.stoid,
  2320 + user_id: user_id,
  2321 + goods_id: goodsinfo.goods_id,
  2322 + prom_type: goodsinfo.prom_type,
  2323 + prom_id: goodsinfo.prom_id
  2324 + },
  2325 + }).then(res => {
  2326 + var buy_num_data = res.data.data;
  2327 + if (buy_num_data.promgoodsbuynum) {
  2328 + promgoodsbuynum = buy_num_data.promgoodsbuynum;
  2329 + var txt = "requestData[" + pitem + "].goods[" + item + "].zh_b_num";
  2330 + th.setData({
  2331 + [txt]: promgoodsbuynum
1772 }); 2332 });
1773 - } 2333 + }
  2334 + goodsbuynum = buy_num_data.goodsbuynum;
1774 2335
1775 - },  
1776 - //------门店全选按钮,要判断是否门店的匹配方式一致---------  
1777 - check_th_all_item: async function (ele) {  
1778 - var e = this,th=this,  
1779 - pitems = ele.currentTarget.dataset.pitems,  
1780 - item = this.data.requestData[pitems].goods,  
1781 - sele = this.data.requestData[pitems].selected;  
1782 - this.data.btn_click = 1;  
1783 - var garr = e.data.service_data;  
1784 -  
1785 - var isok = 1,  
1786 - fir = 0,  
1787 - iarr = item;  
1788 -  
1789 - if (!sele) {  
1790 - var check_is_service_selected = 0;  
1791 - for (var ii in garr) {  
1792 - for (var ij in garr[ii].goods) {  
1793 - if (garr[ii].goods[ij].selected) {  
1794 - check_is_service_selected = 1;  
1795 - break;  
1796 - }  
1797 - }  
1798 - }  
1799 2336
1800 - if (check_is_service_selected) {  
1801 - wx.showModal({  
1802 - title: '提示',  
1803 - content: '服务卡项目不能和商品一起选择'  
1804 - });  
1805 - return false;  
1806 - }  
1807 - } 2337 + })
1808 2338
1809 - if (!sele && item.length > 0) {  
1810 - for (var i = 0; i < iarr.length; i++) {  
1811 - if (iarr[i].is_gift == 1) continue;  
1812 - if (iarr[i].distr_type != 0) {  
1813 - if (fir == 0) {  
1814 - fir = iarr[i].distr_type;  
1815 - } else {  
1816 - if (fir != iarr[i].distr_type && iarr[i].distr_type != 0) {  
1817 - isok = 0;  
1818 - break;  
1819 - }  
1820 - }  
1821 - }  
1822 - }  
1823 - } 2339 + //--> by ty
  2340 + // var buyed_mum2 = t.goods_num + goodsbuynum;
  2341 + var buyed_mum2 = t.goods_num;
  2342 + //<--
1824 2343
1825 - if (!isok) {  
1826 - wx.showModal({  
1827 - title: '提示',  
1828 - content: '同一门店自提和物流的商品不能同时结算'  
1829 - });  
1830 - return false;  
1831 - } 2344 + // 判断当前预购买的数量是否超过可购买的数量
  2345 + if (buyed_mum2 > (limit - goodsbuynum) && limit > 0) {
  2346 + wx.showToast({
  2347 + title: '购买数量超出商品限购',
  2348 + icon: 'none',
  2349 + });
  2350 + //getApp().my_warnning('购买数量超出商品限购', 0, th);
  2351 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
1832 2352
1833 - for (var i = 0; i < item.length; i++) {  
1834 - var txt = "requestData[" + pitems + "].goods[" + i + "].selected"; 2353 + //--> by ty
  2354 + var cbuy = limit - goodsbuynum;
  2355 + // var cbuy = limit - buyed_mum2 + 1;
  2356 + //<--
1835 2357
1836 - var gd_info=item[i];  
1837 - if (th.data.sales_rules >= 2 && !gd_info.whsle_id && [1,2,4,6,8,9].indexOf(gd_info.prom_type)==-1 && !gd_info.selected ) {  
1838 - var ob = {};  
1839 - await th.check_down_line_next(gd_info, pitems, i, gd_info.erpwareid, function (res) {  
1840 - ob = res;  
1841 - }); 2358 + e.setData({
  2359 + // [txt]: cbuy > 0 ? cbuy : 0,
  2360 + [txt]: cbuy > 0 ? cbuy : limit,
  2361 + });
  2362 + e.doCheckAll();
  2363 +
  2364 + t.goods_num = cbuy > 0 ? cbuy : limit,
  2365 + // t.goods_num = cbuy > 0 ? cbuy : 0,
  2366 + e.update_cart(t, pitem, item);
  2367 + return false;
  2368 + }
1842 2369
1843 - if (ob.code == -1) {  
1844 2370
  2371 + switch (goodsinfo.prom_type) {
  2372 + case 1:
  2373 + //读取秒杀
  2374 + rq.get("/api/ms/flash_sale/getFlashSaleOne/" + oo.stoid + "/" + goodsinfo.prom_id, {
  2375 + isShowLoading: 0,
  2376 + success: function (res_d) {
  2377 + if (res_d.data.code == 0 && res_d.data.data) {
  2378 + if (t.goods_num > store_count) {
  2379 + // wx.showModal({
  2380 + // title: '提示',
  2381 + // content: '购买数量超出商品库存'
  2382 + // });
1845 wx.showToast({ 2383 wx.showToast({
1846 - title: '购买数量超出商品库存',  
1847 - icon: 'none', 2384 + title: '购买数量超出商品库存',
  2385 + icon: 'none',
1848 }); 2386 });
  2387 + // getApp().my_warnning('购买数量超出商品库存', 0, th);
  2388 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2389 + e.setData({
  2390 + [txt]: store_count
  2391 + });
  2392 + e.doCheckAll();
1849 2393
1850 - return false;  
1851 - }else{  
1852 - if(th.data.sales_rules==3){  
1853 - var goods_id=gd_info.goods_id;  
1854 - var num=0;  
1855 -  
1856 - for (let i = 0; i < th.data.requestData.length; i++) {  
1857 - if(pitems==i) continue;  
1858 - var it= th.data.requestData[i].goods.find((e)=>{  
1859 - return e.goods_id==goods_id;  
1860 - })  
1861 - if(it && it.selected) num+=it.goods_num  
1862 - }  
1863 -  
1864 - if(num>ob.CanOutQty){  
1865 - wx.showToast({  
1866 - title: '购买数量超出商品库存',  
1867 - icon: 'none',  
1868 - });  
1869 -  
1870 - return false;  
1871 - }  
1872 - }  
1873 - } 2394 + t.goods_num = store_count;
  2395 + e.update_cart(t, pitem, item);
1874 2396
1875 - } 2397 + return false;
  2398 + }
1876 2399
  2400 + var false_data = res_d.data.data;
  2401 + //--判断库存--
  2402 + if (t.goods_num > false_data.goods_num - false_data.buy_num) {
  2403 + // wx.showModal({
  2404 + // title: '提示',
  2405 + // content: '购买数量超出活动库存'
  2406 + // });
  2407 + wx.showToast({
  2408 + title: '购买数量超出活动库存',
  2409 + icon: 'none',
  2410 + });
  2411 + // getApp().my_warnning('购买数量超出活动库存', 0, th);
  2412 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2413 + e.setData({
  2414 + [txt]: false_data.goods_num - false_data.buy_num
  2415 + });
  2416 + e.doCheckAll();
1877 2417
  2418 + t.goods_num = false_data.goods_num - false_data.buy_num;
  2419 + e.update_cart(t, pitem, item);
1878 2420
1879 - e.setData({  
1880 - [txt]: Number(!sele),  
1881 - });  
1882 - }  
1883 - var txt = "requestData[" + pitems + "].selected";  
1884 - e.setData({  
1885 - [txt]: Number(!sele),  
1886 - }); 2421 + return false;
  2422 + }
1887 2423
1888 - e.data.duo_zp_num_arr={};  
1889 - if (sele) {  
1890 - await e.check_prom_activity(pitems);  
1891 - }  
1892 - for (var i in e.data.requestData) {  
1893 - if(sele && i==pitems) continue;  
1894 - await e.check_prom_activity(i);  
1895 - }  
1896 - this.doCheckAll();  
1897 - },  
1898 - //---------------单选,也要判断门店的配送方式是否一致--------------  
1899 - check_th_item: async function (t) {  
1900 - var e = this,th=this,  
1901 - item = t.currentTarget.dataset.item,  
1902 - pitems = t.currentTarget.dataset.pitems;  
1903 - a = this.data.requestData[pitems].goods[item];  
1904 - var isok = 1,  
1905 - fir = 0;  
1906 - var iarr = e.data.requestData[pitems].goods;  
1907 - this.data.btn_click = 1;  
1908 - var garr = e.data.service_data; 2424 + //--判断redis数量是否已经超出--
  2425 + if (t.goods_num > false_data.redisnum) {
  2426 + // wx.showModal({
  2427 + // title: '提示',
  2428 + // content: '购买数量超出商品库存'
  2429 + // });
  2430 + wx.showToast({
  2431 + title: '购买数量超出商品库存',
  2432 + icon: 'none',
  2433 + });
  2434 + //getApp().my_warnning('购买数量超出商品库存', 0, th);
  2435 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2436 + e.setData({
  2437 + [txt]: false_data.redisnum
  2438 + });
  2439 + e.doCheckAll();
1909 2440
1910 - if (!a.selected) {  
1911 - var check_is_service_selected = 0;  
1912 - for (var ii in garr) {  
1913 - for (var ij in garr[ii].goods) {  
1914 - if (garr[ii].goods[ij].selected) {  
1915 - check_is_service_selected = 1;  
1916 - break;  
1917 - }  
1918 - }  
1919 - }  
1920 - if (check_is_service_selected) {  
1921 - wx.showModal({  
1922 - title: '提示',  
1923 - content: '服务卡项目不能和商品一起选择'  
1924 - });  
1925 - return false;  
1926 - }  
1927 - } 2441 + t.goods_num = false_data.redisnum;
  2442 + e.update_cart(t, pitem, item);
  2443 + return false;
  2444 + }
1928 2445
1929 - //当数量大于1,且是选择的时候  
1930 - if (iarr.length > 1 && !a.selected) { 2446 + //--活动的限购是不是要判断--
  2447 + if (t.goods_num + promgoodsbuynum > false_data.buy_limit && false_data.buy_limit > 0) {
  2448 + // wx.showModal({
  2449 + // title: '提示',
  2450 + // content: '购买数量超出秒杀限购'
  2451 + // });
  2452 + wx.showToast({
  2453 + title: '购买数量超出秒杀限购',
  2454 + icon: 'none',
  2455 + });
  2456 + // getApp().my_warnning('购买数量超出秒杀限购', 0, th);
  2457 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2458 + e.setData({
  2459 + [txt]: false_data.buy_limit
  2460 + });
  2461 + e.doCheckAll();
  2462 + t.goods_num = (false_data.buy_limit - promgoodsbuynum) ? false_data.buy_limit - promgoodsbuynum : 0;
  2463 + e.update_cart(t, pitem, item);
  2464 + return false;
  2465 + }
  2466 + e.update_cart(t, pitem, item);
1931 2467
1932 - for (var i = 0; i < iarr.length; i++) {  
1933 - if (iarr[i].is_gift == 1) continue;  
1934 - //---当不是本身选择项目----  
1935 - var sel = iarr[i].selected;  
1936 - if (iarr[i].distr_type != 0 && (sel || iarr[i].id == a.id)) {  
1937 - if (fir == 0) {  
1938 - fir = iarr[i].distr_type;  
1939 - } else {  
1940 - if (fir != iarr[i].distr_type && iarr[i].distr_type != 0) {  
1941 - isok = 0;  
1942 - break;  
1943 - }  
1944 - } 2468 + } else {
  2469 + normal_check(store_count, goodsinfo, wareIds);
1945 } 2470 }
1946 - }  
1947 - }  
1948 - if (!isok) {  
1949 - wx.showModal({  
1950 - title: '提示',  
1951 - content: '同一门店自提和物流的商品不能同时结算'  
1952 - });  
1953 - } else {  
1954 - var txt = "requestData[" + pitems + "].goods[" + item + "].selected";  
1955 - var gd_info=a;  
1956 -  
1957 - var erpwareid = gd_info.erpwareid;  
1958 - if (th.data.sales_rules >= 2 && !gd_info.whsle_id && [1,2,4,6,8,9].indexOf(gd_info.prom_type)==-1 && !a.selected ) {  
1959 - var ob = {};  
1960 - await th.check_down_line_next(gd_info, pitems, item, erpwareid, function (res) {  
1961 - ob = res;  
1962 - }); 2471 + }
  2472 + })
  2473 + break;
  2474 + case 2:
  2475 + getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + goodsinfo.goods_id + "/" + goodsinfo.prom_id, {}).then(res => {
  2476 + if (res.data.code == 0 && res.data.data) {
  2477 + if (t.goods_num > store_count) {
  2478 + // wx.showModal({
  2479 + // title: '提示',
  2480 + // content: '购买数量超出商品库存'
  2481 + // });
  2482 + wx.showToast({
  2483 + title: '购买数量超出商品库存',
  2484 + icon: 'none',
  2485 + });
  2486 + // getApp().my_warnning('购买数量超出商品库存', 0, th);
  2487 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2488 + e.setData({
  2489 + [txt]: store_count
  2490 + });
  2491 + e.doCheckAll();
1963 2492
1964 - if (ob.code == -1) { 2493 + t.goods_num = store_count;
  2494 + e.update_cart(t, pitem, item);
1965 2495
1966 - wx.showToast({  
1967 - title: '购买数量超出商品库存',  
1968 - icon: 'none',  
1969 - }); 2496 + return false;
  2497 + }
1970 2498
1971 - return false;  
1972 - }else{  
1973 - if(th.data.sales_rules==3){  
1974 - var goods_id=gd_info.goods_id;  
1975 - var num=0;  
1976 -  
1977 - for (let i = 0; i < th.data.requestData.length; i++) {  
1978 - if(pitems==i) continue;  
1979 - var it= th.data.requestData[i].goods.find((e)=>{  
1980 - return e.goods_id==goods_id;  
1981 - })  
1982 - if(it && it.selected) num+=it.goods_num  
1983 - } 2499 + var gr_data = res.data.data;
  2500 + //--判断库存--
  2501 + if (t.goods_num > gr_data.goods_num - gr_data.buy_num) {
  2502 + // wx.showModal({
  2503 + // title: '提示',
  2504 + // content: '购买数量超出活动库存'
  2505 + // });
  2506 + wx.showToast({
  2507 + title: '购买数量超出活动库存',
  2508 + icon: 'none',
  2509 + });
  2510 + // getApp().my_warnning('购买数量超出活动库存', 0, th);
  2511 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2512 + e.setData({
  2513 + [txt]: gr_data.goods_num - gr_data.buy_num
  2514 + });
  2515 + e.doCheckAll();
1984 2516
1985 - if(num>ob.CanOutQty){  
1986 - wx.showToast({  
1987 - title: '购买数量超出商品库存',  
1988 - icon: 'none',  
1989 - }); 2517 + t.goods_num = gr_data.goods_num - gr_data.buy_num;
  2518 + e.update_cart(t, pitem, item);
1990 2519
1991 - return false;  
1992 - }  
1993 - } 2520 + return false;
1994 } 2521 }
1995 2522
1996 - }  
1997 - 2523 + //--判断redis数量是否已经超出--
  2524 + if (t.goods_num > gr_data.redisnum) {
  2525 + // wx.showModal({
  2526 + // title: '提示',
  2527 + // content: '购买数量超出商品库存'
  2528 + // });
  2529 + wx.showToast({
  2530 + title: '购买数量超出商品库存',
  2531 + icon: 'none',
  2532 + });
  2533 + // getApp().my_warnning('购买数量超出商品库存', 0, th);
  2534 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2535 + e.setData({
  2536 + [txt]: gr_data.redisnum
  2537 + });
  2538 + e.doCheckAll();
1998 2539
  2540 + t.goods_num = gr_data.redisnum;
  2541 + e.update_cart(t, pitem, item);
  2542 + return false;
  2543 + }
1999 2544
2000 - e.setData({  
2001 - [txt]: Number(!a.selected),  
2002 - }); 2545 + //--活动的限购是不是要判断--
  2546 + if (t.goods_num + promgoodsbuynum > gr_data.buy_limit && gr_data.buy_limit > 0) {
  2547 + // wx.showModal({
  2548 + // title: '提示',
  2549 + // content: '购买数量超出团购限购'
  2550 + // });
  2551 + wx.showToast({
  2552 + title: '购买数量超出团购限购',
  2553 + icon: 'none',
  2554 + });
  2555 + // getApp().my_warnning('购买数量超出团购限购', 0, th);
  2556 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2557 + e.setData({
  2558 + [txt]: gr_data.buy_limit
  2559 + });
  2560 + e.doCheckAll();
2003 2561
2004 - if (a.prom_type == 3) {  
2005 - e.data.duo_zp_num_arr={};  
2006 - if (!a.selected) {  
2007 - await e.check_prom_activity(pitems);  
2008 - }  
2009 - //判断商品是不是优惠活动  
2010 - for (var i in e.data.requestData) {  
2011 - if(!a.selected && i==pitems) continue;  
2012 - await e.check_prom_activity(i);  
2013 - }  
2014 - }  
2015 - this.doCheckAll();  
2016 - }  
2017 - },  
2018 -  
2019 - //------门店全选按钮,要判断是否门店的匹配方式一致---------  
2020 - check_th_all_item_ser: async function (ele) {  
2021 - var e = this,  
2022 - pitems = ele.currentTarget.dataset.pitems,  
2023 - item = this.data.service_data[pitems].goods,  
2024 - sele = this.data.service_data[pitems].selected;  
2025 - this.data.btn_click = 1;  
2026 - var garr = e.data.requestData;  
2027 -  
2028 - var isok = 1,  
2029 - fir = 0,  
2030 - iarr = item;  
2031 -  
2032 - if (!sele) {  
2033 - var check_is_goods_selected = 0;  
2034 - for (var ii in garr) {  
2035 - for (var ij in garr[ii].goods) {  
2036 - if (garr[ii].goods[ij].selected) {  
2037 - check_is_goods_selected = 1;  
2038 - break;  
2039 - } 2562 + t.goods_num = (gr_data.buy_limit - promgoodsbuynum) ? gr_data.buy_limit - promgoodsbuynum : 0;
  2563 + e.update_cart(t, pitem, item);
  2564 + return false;
2040 } 2565 }
2041 - }  
2042 - if (check_is_goods_selected) {  
2043 - wx.showModal({  
2044 - title: '提示',  
2045 - content: '服务卡项目不能和商品一起选择'  
2046 - });  
2047 - return false;  
2048 - }  
2049 - } 2566 + e.update_cart(t, pitem, item);
2050 2567
2051 - for (var i = 0; i < item.length; i++) {  
2052 - var txt = "service_data[" + pitems + "].goods[" + i + "].selected";  
2053 - e.setData({  
2054 - [txt]: Number(!sele),  
2055 - }); 2568 + } else {
  2569 + normal_check(store_count, goodsinfo, wareIds);
  2570 + }
  2571 + })
  2572 +
  2573 + break;
  2574 + default:
  2575 + normal_check(store_count, goodsinfo, wareIds);
  2576 + break
2056 } 2577 }
2057 - var txt = "service_data[" + pitems + "].selected";  
2058 - e.setData({  
2059 - [txt]: Number(!sele),  
2060 - });  
2061 - this.doCheckAll();  
2062 - },  
2063 - //---------------单选,也要判断门店的配送方式是否一致--------------  
2064 - check_th_item_ser: async function (t) {  
2065 - var e = this,  
2066 - item = t.currentTarget.dataset.item,  
2067 - pitems = t.currentTarget.dataset.pitems;  
2068 - a = this.data.service_data[pitems].goods[item]; // 选中的商品  
2069 -  
2070 - var isok = 1,  
2071 - fir = 0;  
2072 - var iarr = e.data.service_data[pitems].goods;  
2073 - this.data.btn_click = 1; 2578 + }
  2579 + });
  2580 + },
2074 2581
2075 - var garr = e.data.requestData; 2582 + //----------------------更新购物数量,加减,调用接口---------------------
  2583 + postCardList_ser: async function (t, item, pitem) {
  2584 + var e = this,
  2585 + th = e;
  2586 + var user_id = getApp().globalData.user_id;
  2587 + var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num";
  2588 +
  2589 + e.setData({
  2590 + [txt]: t.goods_num
  2591 + });
  2592 +
  2593 + // 1.秒杀活动
  2594 + // 2.活动开始
  2595 + if (t.prom_type == 1 && t.is_pd_normal == 0) {
  2596 + var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num";
  2597 + var redis_num = 0;
  2598 +
  2599 + // 获取其他门店,同类商品的数量
  2600 + var cartGoodsNum = 0;
  2601 + await getApp().request.promiseGet("/api/weshop/cartService/page?store_id=" + t.store_id + "&user_id=" + getApp().globalData.user_id + "&service_id=" + t.goods_id,
  2602 + {}).then(res => {
  2603 + if (res.data.data.pageData.length > 0) {
  2604 + const tmpObj = res.data.data.pageData;
  2605 + tmpObj.forEach(v => {
  2606 + if (t.id != v.id) {
  2607 + cartGoodsNum += parseInt(v.goods_num);
  2608 + }
2076 2609
2077 - if (!a.selected) {  
2078 - var check_is_goods_selected = 0;  
2079 - for (var ii in garr) {  
2080 - for (var ij in garr[ii].goods) {  
2081 - if (garr[ii].goods[ij].selected) {  
2082 - check_is_goods_selected = 1;  
2083 - break;  
2084 - }  
2085 - }  
2086 - } 2610 + });
  2611 + }
  2612 + });
  2613 + // 当前商品数量包括其他门店
  2614 + var totalNum = 0
  2615 + if (cartGoodsNum > 0) {
  2616 + totalNum = t.goods_num + cartGoodsNum;
  2617 + } else {
  2618 + totalNum = t.goods_num;
  2619 + }
2087 2620
2088 - if (check_is_goods_selected) {  
2089 - wx.showModal({  
2090 - title: '提示',  
2091 - content: '服务卡项目不能和商品一起选择'  
2092 - });  
2093 - return false;  
2094 - }  
2095 - } 2621 + //获取当前商品活动库存
  2622 + await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" +
  2623 + t.store_id + "/" + t.prom_type + "/" + t.prom_id, {
  2624 + 1: 1
  2625 + }).then(res => {
  2626 + redis_num = res.data.data;
  2627 + });
2096 2628
2097 - var txt = "service_data[" + pitems + "].goods[" + item + "].selected";  
2098 - e.setData({  
2099 - [txt]: Number(!a.selected), 2629 + // 检测库存
  2630 + if (redis_num == 0) {
  2631 + wx.showToast({
  2632 + title: '超出活动库存',
  2633 + icon: 'none',
2100 }); 2634 });
2101 -  
2102 - this.doCheckAll();  
2103 - },  
2104 -  
2105 - //----------检查是否全选---------  
2106 - doCheckAll: function () {  
2107 - var th = this,  
2108 - tfeel = 0,  
2109 - t_num = 0,  
2110 - ischeck = 1,  
2111 - car = this.data.requestData,  
2112 - car2 = this.data.service_data,  
2113 - all_num = 0;  
2114 -  
2115 - //-- 购物车 --  
2116 - if (car && car.length > 0) {  
2117 - th.data.in_zhact_gdmap = {};  
2118 - for (var a = 0; a < car.length; a++) {  
2119 - var item = car[a].goods,is_s_sele = 1;  
2120 - var offline_price=0;  
2121 - var offline_num=0;  
2122 - for (var c = 0; c < item.length; c++) {  
2123 - if (item[c].is_gift) continue;  
2124 - all_num += item[c].goods_num;  
2125 -  
2126 - //不管怎么样都要移出去  
2127 - var obj=JSON.parse(JSON.stringify(item[c]));  
2128 - zh_calc.remove_zhprom(car,a,obj);  
2129 - ladder_calc.remove_ladder_prom(car,a,obj);  
2130 -  
2131 - if (item[c].selected == 0) {  
2132 - ischeck = 0;  
2133 - is_s_sele = 0;  
2134 - if (item[c].prom_type == 7) {  
2135 - obj.goods_num = 0;  
2136 - zh_calc.add_zhprom(car, a, obj);  
2137 - }  
2138 - if(item[c].prom_type==10) {  
2139 - obj.goods_num=0;  
2140 - ladder_calc.add_ladder_prom(car,a,obj);  
2141 - } 2635 + // getApp().my_warnning('超出活动库存', 0, th);
  2636 + th.setData({ [txt]: redis_num });
  2637 + t.goods_num = redis_num;
  2638 + await th.doCheckAll();
  2639 + await th.update_cart_ser(t, pitem, item);
  2640 + return false;
  2641 + };
2142 2642
  2643 + // 限购数量
  2644 + var buylimit = 0
  2645 + await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + t.store_id + "/" + getApp().globalData.user_id + "/" + t.prom_id, {
2143 2646
2144 - } else {  
2145 - if(item[c].prom_type==7){  
2146 - //先把商品放入组合计算的专用的区域  
2147 - console.log('是组合商品---')  
2148 - console.log(car);  
2149 - console.log(a)  
2150 - console.log(obj)  
2151 - console.log('......................')  
2152 - zh_calc.add_zhprom(car,a,obj);  
2153 - }else if(item[c].prom_type==10){  
2154 - ladder_calc.add_ladder_prom(car,a,obj);  
2155 - }  
2156 - else{  
2157 - tfeel += item[c].goods_num * item[c].goods_price;  
2158 - }  
2159 - t_num += item[c].goods_num;  
2160 - } 2647 + }).then(res => {
  2648 + if (res.data.code == 0) {
  2649 + th.data.sele_g = res.data.data;
  2650 + th.data.sele_g.viplimited = res.data.data.buy_limit;
  2651 + buylimit = !res.data.data.buy_limit ? 0 : res.data.data.buy_limit;
  2652 + };
  2653 + });
2161 2654
2162 - //-- 如果这个商品是线下取价的时候 --  
2163 - if (item[c].is_offline && item[c].prom_type != 7) {  
2164 - offline_price += (item[c].goods_price - item[c].offline_price) * item[c].goods_num;  
2165 - offline_num += item[c].goods_num;  
2166 - }  
2167 - } 2655 + //用户已经成功付款购买的数量
  2656 + var gd_buy_num = 0;
  2657 + await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum?store_id=" + t.store_id + "&user_id=" + getApp().globalData.user_id + "&card_id=" + t.card_id + "&prom_type=" + t.prom_type + "&prom_id=" + t.prom_id, {
  2658 + }).then(tt => {
  2659 + if (tt.data.code == 0) {
  2660 + gd_buy_num = !tt.data.data.promcardbuynum ? 0 : tt.data.data.promcardbuynum;
  2661 + th.setData({
  2662 + promcardbuynum: !tt.data.data.promcardbuynum ? 0 : tt.data.data.promcardbuynum,
  2663 + cardbuynum: tt.data.data.cardbuynum,
  2664 + });
  2665 + };
  2666 + });
2168 2667
2169 - //总的价格,把组合商品的价格拿出来  
2170 - var zh_calc_res=zh_calc.calculate_zh(car,a,th);  
2171 - console.log('.组合价-----------')  
2172 - console.log(zh_calc_res)  
2173 - //总的价格,把阶梯促销商品的价格拿出来  
2174 - var ladder_calc_res=ladder_calc.calculate_ladder(car,a,th);  
2175 -  
2176 - tfeel+=zh_calc_res.tfeel;  
2177 - offline_price+=zh_calc_res.offline_price;  
2178 - offline_num+=zh_calc_res.offline_num;  
2179 -  
2180 - tfeel+=ladder_calc_res.tfeel;  
2181 - offline_price+=ladder_calc_res.offline_price;  
2182 - offline_num+=ladder_calc_res.offline_num;  
2183 -  
2184 - var txt = "requestData[" + a + "].selected";  
2185 - th.setData({  
2186 - [txt]: Number(is_s_sele)  
2187 - });  
2188 -  
2189 - //当有线下取价的时候  
2190 - if (offline_price) {  
2191 - var txt1 = "requestData[" + a + "].offline_price";  
2192 - var txt2 = "requestData[" + a + "].offline_num";  
2193 - th.setData({  
2194 - [txt1]: offline_price.toFixed(2),  
2195 - [txt2]: offline_num,  
2196 - });  
2197 - } else {  
2198 - if (car[a].offline_price > 0) {  
2199 - var txt1 = "requestData[" + a + "].offline_price";  
2200 - var txt2 = "requestData[" + a + "].offline_num";  
2201 - th.setData({  
2202 - [txt1]: 0,  
2203 - [txt2]: 0  
2204 - });  
2205 - }  
2206 - } 2668 + // 剩余购买数
  2669 + let num = buylimit - gd_buy_num;
2207 2670
2208 - } 2671 + if (totalNum > redis_num) {
  2672 + wx.showToast({
  2673 + title: '超出活动库存',
  2674 + icon: 'none',
  2675 + });
  2676 + // getApp().my_warnning('超出活动库存', 0, th);
  2677 + // 开启限购
  2678 + if (buylimit > 0) {
  2679 + if (num > redis_num) {
  2680 + th.setData({ [txt]: redis_num - cartGoodsNum });
  2681 + t.goods_num = redis_num - cartGoodsNum;
  2682 + await th.doCheckAll();
  2683 + await th.update_cart_ser(t, pitem, item);
  2684 + } else {
  2685 + th.setData({ [txt]: num - cartGoodsNum });
  2686 + t.goods_num = num - cartGoodsNum;
  2687 + await th.doCheckAll();
  2688 + await th.update_cart_ser(t, pitem, item);
  2689 + }
  2690 + } else {
  2691 + th.setData({ [txt]: redis_num - cartGoodsNum });
  2692 + t.goods_num = redis_num - cartGoodsNum;
  2693 + await th.doCheckAll();
  2694 + await th.update_cart_ser(t, pitem, item);
2209 } 2695 }
2210 2696
2211 - //-- 服务卡 --  
2212 - if (car2 && car2.length > 0) {  
2213 - for (var a = 0; a < car2.length; a++) {  
2214 - var c_item = car2[a];  
2215 - var item = car2[a].goods,  
2216 - is_s_sele = 1;  
2217 -  
2218 - for (var c = 0; c < item.length; c++) {  
2219 - if (item[c].is_gift) continue;  
2220 - all_num += item[c].goods_num;  
2221 - if (item[c].selected == 0) {  
2222 - ischeck = 0;  
2223 - is_s_sele = 0;  
2224 - } else {  
2225 - tfeel += item[c].goods_num * item[c].money;  
2226 - t_num += item[c].goods_num;  
2227 - } 2697 + return false;
  2698 + };
2228 2699
2229 - }  
2230 2700
2231 - var txt = "service_data[" + a + "].selected";  
2232 - th.setData({  
2233 - [txt]: Number(is_s_sele)  
2234 - });  
2235 - }  
2236 - } 2701 + //--秒杀:判断商品是否超出活动限购--
  2702 + if (buylimit > 0) {
2237 2703
2238 - this.setData({  
2239 - checkAllToggle: ischeck,  
2240 - total_fee: tfeel.toFixed(2),  
2241 - all_num: all_num,  
2242 - total_num: t_num  
2243 - });  
2244 - },  
2245 -  
2246 - //----------------------更新购物数量,加减,调用接口---------------------  
2247 - postCardList: function (t, item, pitem) {  
2248 - var e = this,  
2249 - th = e,  
2250 - user_id = getApp().globalData.user_id;  
2251 -  
2252 - function normal_check(store_count, goodsinfo, wareIds) {  
2253 - //--- 看一下是不是线下库存 ---  
2254 - if (th.data.sales_rules >= 2 && !goodsinfo.whsle_id) {  
2255 - th.check_down_line(t, pitem, item, wareIds);  
2256 - } else {  
2257 - if (t.goods_num > store_count) {  
2258 - wx.showToast({  
2259 - title: '购买数量超出商品库存',  
2260 - icon: 'none',  
2261 - });  
2262 - // getApp().my_warnning('购买数量超出商品库存', 0, th);  
2263 - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";  
2264 - e.setData({  
2265 - [txt]: store_count  
2266 - });  
2267 - e.doCheckAll();  
2268 - t.goods_num = store_count;  
2269 - }  
2270 - e.update_cart(t, pitem, item);  
2271 - }  
2272 - } 2704 + // 如果限购数量<=活动库存数量,增加数量时会先超过限购数量,此时应提示“超出活动限购数量”
  2705 + if (totalNum > num) {
  2706 + // 计算还可以购买的数量:库存量 - 已购数
  2707 + wx.showToast({
  2708 + title: '超出活动限购',
  2709 + icon: 'none',
  2710 + });
  2711 + // getApp().my_warnning('超出活动限购', 0, th);
  2712 + if (num <= 0) num = 1;
  2713 + th.setData({ [txt]: num - cartGoodsNum });
  2714 + t.goods_num = num - cartGoodsNum;
  2715 + await th.doCheckAll();
  2716 + await th.update_cart_ser(t, pitem, item);
  2717 + return false;
  2718 + };
2273 2719
2274 - // console.log('update');  
2275 - // console.log('9995959595959',t);  
2276 - var e = this,th=e;  
2277 - var user_id = getApp().globalData.user_id;  
2278 - rq.get("/api/weshop/goods/get/" + oo.stoid + "/" + t.goods_id, {  
2279 - isShowLoading: 0,  
2280 - async success(d) {  
2281 - var limit = d.data.data.viplimited;  
2282 - var store_count = d.data.data.store_count;  
2283 - var wareIds = d.data.data.erpwareid;  
2284 -  
2285 - var goodsinfo = e.data.requestData[pitem].goods[item];  
2286 - var promgoodsbuynum = 0;  
2287 - var goodsbuynum = 0; 2720 + }
2288 2721
2289 - //--要获得商品,该用户买了多少件,同步应用--  
2290 - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {  
2291 - data: {  
2292 - store_id: oo.stoid,  
2293 - user_id: user_id,  
2294 - goods_id: goodsinfo.goods_id,  
2295 - prom_type: goodsinfo.prom_type,  
2296 - prom_id: goodsinfo.prom_id  
2297 - },  
2298 - }).then(res => {  
2299 - var buy_num_data = res.data.data;  
2300 - if (buy_num_data.promgoodsbuynum) {  
2301 - promgoodsbuynum = buy_num_data.promgoodsbuynum;  
2302 - var txt = "requestData[" + pitem + "].goods[" + item + "].zh_b_num";  
2303 - th.setData({  
2304 - [txt]: promgoodsbuynum  
2305 - });  
2306 - }  
2307 - goodsbuynum = buy_num_data.goodsbuynum;  
2308 2722
  2723 + }
2309 2724
2310 - })  
2311 2725
2312 - //--> by ty  
2313 - // var buyed_mum2 = t.goods_num + goodsbuynum;  
2314 - var buyed_mum2 = t.goods_num;  
2315 - //<--  
2316 -  
2317 - // 判断当前预购买的数量是否超过可购买的数量  
2318 - if (buyed_mum2 > (limit - goodsbuynum) && limit > 0) {  
2319 - wx.showToast({  
2320 - title: '购买数量超出商品限购',  
2321 - icon: 'none',  
2322 - });  
2323 - //getApp().my_warnning('购买数量超出商品限购', 0, th);  
2324 - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";  
2325 -  
2326 - //--> by ty  
2327 - var cbuy = limit - goodsbuynum;  
2328 - // var cbuy = limit - buyed_mum2 + 1;  
2329 - //<--  
2330 -  
2331 - e.setData({  
2332 - // [txt]: cbuy > 0 ? cbuy : 0,  
2333 - [txt]: cbuy > 0 ? cbuy : limit,  
2334 - });  
2335 - e.doCheckAll();  
2336 -  
2337 - t.goods_num = cbuy > 0 ? cbuy : limit,  
2338 - // t.goods_num = cbuy > 0 ? cbuy : 0,  
2339 - e.update_cart(t, pitem, item);  
2340 - return false;  
2341 - } 2726 + await e.doCheckAll();
  2727 + await e.update_cart_ser(t, pitem, item);
2342 2728
2343 2729
2344 - switch (goodsinfo.prom_type) {  
2345 - case 1:  
2346 - //读取秒杀  
2347 - rq.get("/api/ms/flash_sale/getFlashSaleOne/" + oo.stoid + "/" + goodsinfo.prom_id, {  
2348 - isShowLoading: 0,  
2349 - success: function (res_d) {  
2350 - if (res_d.data.code == 0 && res_d.data.data) {  
2351 - if (t.goods_num > store_count) {  
2352 - // wx.showModal({  
2353 - // title: '提示',  
2354 - // content: '购买数量超出商品库存'  
2355 - // });  
2356 - wx.showToast({  
2357 - title: '购买数量超出商品库存',  
2358 - icon: 'none',  
2359 - });  
2360 - // getApp().my_warnning('购买数量超出商品库存', 0, th);  
2361 - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";  
2362 - e.setData({  
2363 - [txt]: store_count  
2364 - });  
2365 - e.doCheckAll();  
2366 -  
2367 - t.goods_num = store_count;  
2368 - e.update_cart(t, pitem, item);  
2369 -  
2370 - return false;  
2371 - }  
2372 -  
2373 - var false_data = res_d.data.data;  
2374 - //--判断库存--  
2375 - if (t.goods_num > false_data.goods_num - false_data.buy_num) {  
2376 - // wx.showModal({  
2377 - // title: '提示',  
2378 - // content: '购买数量超出活动库存'  
2379 - // });  
2380 - wx.showToast({  
2381 - title: '购买数量超出活动库存',  
2382 - icon: 'none',  
2383 - });  
2384 - // getApp().my_warnning('购买数量超出活动库存', 0, th);  
2385 - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";  
2386 - e.setData({  
2387 - [txt]: false_data.goods_num - false_data.buy_num  
2388 - });  
2389 - e.doCheckAll();  
2390 -  
2391 - t.goods_num = false_data.goods_num - false_data.buy_num;  
2392 - e.update_cart(t, pitem, item);  
2393 -  
2394 - return false;  
2395 - }  
2396 -  
2397 - //--判断redis数量是否已经超出--  
2398 - if (t.goods_num > false_data.redisnum) {  
2399 - // wx.showModal({  
2400 - // title: '提示',  
2401 - // content: '购买数量超出商品库存'  
2402 - // });  
2403 - wx.showToast({  
2404 - title: '购买数量超出商品库存',  
2405 - icon: 'none',  
2406 - });  
2407 - //getApp().my_warnning('购买数量超出商品库存', 0, th);  
2408 - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";  
2409 - e.setData({  
2410 - [txt]: false_data.redisnum  
2411 - });  
2412 - e.doCheckAll();  
2413 -  
2414 - t.goods_num = false_data.redisnum;  
2415 - e.update_cart(t, pitem, item);  
2416 - return false;  
2417 - }  
2418 -  
2419 - //--活动的限购是不是要判断--  
2420 - if (t.goods_num + promgoodsbuynum > false_data.buy_limit && false_data.buy_limit > 0) {  
2421 - // wx.showModal({  
2422 - // title: '提示',  
2423 - // content: '购买数量超出秒杀限购'  
2424 - // });  
2425 - wx.showToast({  
2426 - title: '购买数量超出秒杀限购',  
2427 - icon: 'none',  
2428 - });  
2429 - // getApp().my_warnning('购买数量超出秒杀限购', 0, th);  
2430 - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";  
2431 - e.setData({  
2432 - [txt]: false_data.buy_limit  
2433 - });  
2434 - e.doCheckAll();  
2435 - t.goods_num = (false_data.buy_limit - promgoodsbuynum) ? false_data.buy_limit - promgoodsbuynum : 0;  
2436 - e.update_cart(t, pitem, item);  
2437 - return false;  
2438 - }  
2439 - e.update_cart(t, pitem, item);  
2440 -  
2441 - } else {  
2442 - normal_check(store_count, goodsinfo, wareIds);  
2443 - }  
2444 - }  
2445 - })  
2446 - break;  
2447 - case 2:  
2448 - getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + goodsinfo.goods_id + "/" + goodsinfo.prom_id, {}).then(res => {  
2449 - if (res.data.code == 0 && res.data.data) {  
2450 - if (t.goods_num > store_count) {  
2451 - // wx.showModal({  
2452 - // title: '提示',  
2453 - // content: '购买数量超出商品库存'  
2454 - // });  
2455 - wx.showToast({  
2456 - title: '购买数量超出商品库存',  
2457 - icon: 'none',  
2458 - });  
2459 - // getApp().my_warnning('购买数量超出商品库存', 0, th);  
2460 - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";  
2461 - e.setData({  
2462 - [txt]: store_count  
2463 - });  
2464 - e.doCheckAll();  
2465 -  
2466 - t.goods_num = store_count;  
2467 - e.update_cart(t, pitem, item);  
2468 -  
2469 - return false;  
2470 - }  
2471 -  
2472 - var gr_data = res.data.data;  
2473 - //--判断库存--  
2474 - if (t.goods_num > gr_data.goods_num - gr_data.buy_num) {  
2475 - // wx.showModal({  
2476 - // title: '提示',  
2477 - // content: '购买数量超出活动库存'  
2478 - // });  
2479 - wx.showToast({  
2480 - title: '购买数量超出活动库存',  
2481 - icon: 'none',  
2482 - });  
2483 - // getApp().my_warnning('购买数量超出活动库存', 0, th);  
2484 - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";  
2485 - e.setData({  
2486 - [txt]: gr_data.goods_num - gr_data.buy_num  
2487 - });  
2488 - e.doCheckAll();  
2489 -  
2490 - t.goods_num = gr_data.goods_num - gr_data.buy_num;  
2491 - e.update_cart(t, pitem, item);  
2492 -  
2493 - return false;  
2494 - }  
2495 -  
2496 - //--判断redis数量是否已经超出--  
2497 - if (t.goods_num > gr_data.redisnum) {  
2498 - // wx.showModal({  
2499 - // title: '提示',  
2500 - // content: '购买数量超出商品库存'  
2501 - // });  
2502 - wx.showToast({  
2503 - title: '购买数量超出商品库存',  
2504 - icon: 'none',  
2505 - });  
2506 - // getApp().my_warnning('购买数量超出商品库存', 0, th);  
2507 - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";  
2508 - e.setData({  
2509 - [txt]: gr_data.redisnum  
2510 - });  
2511 - e.doCheckAll();  
2512 -  
2513 - t.goods_num = gr_data.redisnum;  
2514 - e.update_cart(t, pitem, item);  
2515 - return false;  
2516 - }  
2517 -  
2518 - //--活动的限购是不是要判断--  
2519 - if (t.goods_num + promgoodsbuynum > gr_data.buy_limit && gr_data.buy_limit > 0) {  
2520 - // wx.showModal({  
2521 - // title: '提示',  
2522 - // content: '购买数量超出团购限购'  
2523 - // });  
2524 - wx.showToast({  
2525 - title: '购买数量超出团购限购',  
2526 - icon: 'none',  
2527 - });  
2528 - // getApp().my_warnning('购买数量超出团购限购', 0, th);  
2529 - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";  
2530 - e.setData({  
2531 - [txt]: gr_data.buy_limit  
2532 - });  
2533 - e.doCheckAll();  
2534 -  
2535 - t.goods_num = (gr_data.buy_limit - promgoodsbuynum) ? gr_data.buy_limit - promgoodsbuynum : 0;  
2536 - e.update_cart(t, pitem, item);  
2537 - return false;  
2538 - }  
2539 - e.update_cart(t, pitem, item); 2730 + },
2540 2731
2541 - } else {  
2542 - normal_check(store_count, goodsinfo, wareIds);  
2543 - }  
2544 - })  
2545 2732
2546 - break;  
2547 - default:  
2548 - normal_check(store_count, goodsinfo, wareIds);  
2549 - break  
2550 - }  
2551 - }  
2552 - });  
2553 - }, 2733 + // 检查购物车数量
  2734 + async checkCartNum(t, item, pitem) {
  2735 + var th = this;
  2736 + if (t.is_pd_normal) return false;
  2737 + if (t.prom_type == 1) {
  2738 + var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num";
  2739 + var redis_num = 0;
  2740 +
  2741 + //------判断活动是否抢光-----
  2742 + await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" +
  2743 + t.store_id + "/" + t.prom_type + "/" + t.prom_id, {
  2744 + 1: 1
  2745 + }).then(res => {
  2746 + redis_num = res.data.data;
  2747 + });
2554 2748
2555 - //----------------------更新购物数量,加减,调用接口---------------------  
2556 - postCardList_ser: async function (t, item, pitem) {  
2557 - var e = this,  
2558 - th = e;  
2559 - var user_id = getApp().globalData.user_id;  
2560 - var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num"; 2749 + // 检测库存
  2750 + if (redis_num == 0) {
  2751 + wx.showToast({
  2752 + title: '超出活动库存',
  2753 + icon: 'none',
  2754 + });
  2755 + // getApp().my_warnning('超出活动库存', 0, th);
  2756 + th.setData({ [txt]: redis_num });
  2757 + return false;
  2758 + };
2561 2759
2562 - e.setData({  
2563 - [txt]: t.goods_num 2760 + if (t.goods_num > redis_num) {
  2761 + wx.showToast({
  2762 + title: '超出活动库存',
  2763 + icon: 'none',
2564 }); 2764 });
  2765 + // getApp().my_warnning('超出活动库存', 0, th);
  2766 + th.setData({ [txt]: redis_num });
  2767 + return false;
  2768 + };
2565 2769
2566 - // 1.秒杀活动  
2567 - // 2.活动开始  
2568 - if(t.prom_type == 1 && t.is_pd_normal == 0) {  
2569 - var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num";  
2570 - var redis_num = 0;  
2571 -  
2572 - // 获取其他门店,同类商品的数量  
2573 - var cartGoodsNum = 0;  
2574 - await getApp().request.promiseGet("/api/weshop/cartService/page?store_id="+t.store_id+"&user_id="+getApp().globalData.user_id+"&service_id="+t.goods_id,  
2575 - { }).then(res => {  
2576 - if (res.data.data.pageData.length > 0) {  
2577 - const tmpObj = res.data.data.pageData;  
2578 - tmpObj.forEach(v => {  
2579 - if (t.id != v.id) {  
2580 - cartGoodsNum += parseInt(v.goods_num);  
2581 - }  
2582 -  
2583 - });  
2584 - }  
2585 - });  
2586 - // 当前商品数量包括其他门店  
2587 - var totalNum = 0  
2588 - if (cartGoodsNum > 0) {  
2589 - totalNum = t.goods_num + cartGoodsNum;  
2590 - } else {  
2591 - totalNum = t.goods_num;  
2592 - } 2770 + // 个人限购
  2771 + //----获取用户活动购买数----
  2772 + await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum?store_id=" + t.store_id + "&user_id=" + getApp().globalData.user_id + "&card_id=" + t.goods_id + "&prom_type=" + t.prom_type + "&prom_id=" + t.prom_id, {
  2773 + }).then(tt => {
  2774 + if (tt.data.code == 0) {
  2775 + th.setData({
  2776 + promcardbuynum: tt.data.data.promcardbuynum,
  2777 + cardbuynum: tt.data.data.cardbuynum,
  2778 + });
  2779 + };
  2780 + });
2593 2781
2594 - //获取当前商品活动库存  
2595 - await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" +  
2596 - t.store_id + "/" + t.prom_type + "/" + t.prom_id, {  
2597 - 1: 1  
2598 - }).then(res => {  
2599 - redis_num = res.data.data;  
2600 - });  
2601 -  
2602 - // 检测库存  
2603 - if(redis_num == 0) {  
2604 - wx.showToast({  
2605 - title: '超出活动库存',  
2606 - icon: 'none',  
2607 - });  
2608 - // getApp().my_warnning('超出活动库存', 0, th);  
2609 - th.setData({[txt]: redis_num});  
2610 - t.goods_num = redis_num;  
2611 - await th.doCheckAll();  
2612 - await th.update_cart_ser(t, pitem, item);  
2613 - return false;  
2614 - };  
2615 2782
2616 - // 限购数量  
2617 - var buylimit = 0  
2618 - await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + t.store_id + "/" + getApp().globalData.user_id + "/" + t.prom_id, {  
2619 -  
2620 - }).then(res => {  
2621 - if(res.data.code == 0) {  
2622 - th.data.sele_g = res.data.data;  
2623 - th.data.sele_g.viplimited = res.data.data.buy_limit;  
2624 - buylimit = !res.data.data.buy_limit ? 0 : res.data.data.buy_limit;  
2625 - };  
2626 - });  
2627 2783
2628 - //用户已经成功付款购买的数量  
2629 - var gd_buy_num = 0;  
2630 - await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum?store_id="+t.store_id+"&user_id="+getApp().globalData.user_id+"&card_id="+t.card_id+"&prom_type="+t.prom_type+"&prom_id="+t.prom_id, {  
2631 - }).then(tt => {  
2632 - if (tt.data.code == 0) {  
2633 - gd_buy_num = !tt.data.data.promcardbuynum ? 0 : tt.data.data.promcardbuynum;  
2634 - th.setData({  
2635 - promcardbuynum: !tt.data.data.promcardbuynum ? 0 : tt.data.data.promcardbuynum,  
2636 - cardbuynum: tt.data.data.cardbuynum,  
2637 - });  
2638 - };  
2639 - }); 2784 + var buylimit = 0
  2785 + await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + t.store_id + "/" + getApp().globalData.user_id + "/" + t.prom_id, {
2640 2786
2641 - // 剩余购买数  
2642 - let num = buylimit - gd_buy_num; 2787 + }).then(res => {
  2788 + if (res.data.code == 0) {
2643 2789
2644 - if(totalNum > redis_num) {  
2645 - wx.showToast({  
2646 - title: '超出活动库存',  
2647 - icon: 'none',  
2648 - });  
2649 - // getApp().my_warnning('超出活动库存', 0, th);  
2650 - // 开启限购  
2651 - if (buylimit > 0) {  
2652 - if (num > redis_num) {  
2653 - th.setData({[txt]: redis_num-cartGoodsNum});  
2654 - t.goods_num = redis_num-cartGoodsNum;  
2655 - await th.doCheckAll();  
2656 - await th.update_cart_ser(t, pitem, item);  
2657 - } else {  
2658 - th.setData({[txt]: num - cartGoodsNum});  
2659 - t.goods_num = num - cartGoodsNum;  
2660 - await th.doCheckAll();  
2661 - await th.update_cart_ser(t, pitem, item);  
2662 - }  
2663 - } else {  
2664 - th.setData({[txt]: redis_num - cartGoodsNum});  
2665 - t.goods_num = redis_num - cartGoodsNum;  
2666 - await th.doCheckAll();  
2667 - await th.update_cart_ser(t, pitem, item);  
2668 - } 2790 + th.data.sele_g = res.data.data;
  2791 + th.data.sele_g.viplimited = res.data.data.buy_limit;
  2792 + buylimit = res.data.data.buy_limit;
  2793 + };
  2794 + });
2669 2795
2670 - return false;  
2671 - };  
2672 2796
2673 -  
2674 - //--秒杀:判断商品是否超出活动限购--  
2675 - if (buylimit > 0) {  
2676 -  
2677 - // 如果限购数量<=活动库存数量,增加数量时会先超过限购数量,此时应提示“超出活动限购数量”  
2678 - if(totalNum > num) {  
2679 - // 计算还可以购买的数量:库存量 - 已购数  
2680 - wx.showToast({  
2681 - title: '超出活动限购',  
2682 - icon: 'none',  
2683 - });  
2684 - // getApp().my_warnning('超出活动限购', 0, th);  
2685 - if (num <= 0) num = 1;  
2686 - th.setData({[txt]: num - cartGoodsNum});  
2687 - t.goods_num = num - cartGoodsNum;  
2688 - await th.doCheckAll();  
2689 - await th.update_cart_ser(t, pitem, item);  
2690 - return false;  
2691 - };  
2692 -  
2693 - }  
2694 -  
2695 -  
2696 - } 2797 + //--秒杀:判断商品是否超出活动限购--
  2798 + if (buylimit > 0) {
2697 2799
  2800 + var gd_buy_num = th.data.promcardbuynum;
2698 2801
2699 - await e.doCheckAll();  
2700 - await e.update_cart_ser(t, pitem, item);  
2701 -  
2702 -  
2703 - },  
2704 -  
2705 -  
2706 - // 检查购物车数量  
2707 - async checkCartNum(t, item, pitem) {  
2708 - var th = this;  
2709 - if(t.is_pd_normal) return false;  
2710 - if (t.prom_type == 1) {  
2711 - var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num";  
2712 - var redis_num = 0;  
2713 -  
2714 - //------判断活动是否抢光-----  
2715 - await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" +  
2716 - t.store_id + "/" + t.prom_type + "/" + t.prom_id, {  
2717 - 1: 1  
2718 - }).then(res => {  
2719 - redis_num = res.data.data;  
2720 - });  
2721 -  
2722 - // 检测库存  
2723 - if(redis_num == 0) {  
2724 - wx.showToast({  
2725 - title: '超出活动库存',  
2726 - icon: 'none',  
2727 - });  
2728 - // getApp().my_warnning('超出活动库存', 0, th);  
2729 - th.setData({[txt]: redis_num});  
2730 - return false;  
2731 - }; 2802 + // 如果限购数量<=活动库存数量,增加数量时会先超过限购数量,此时应提示“超出活动限购数量”
  2803 + if (t.goods_num + gd_buy_num > buylimit) {
  2804 + // 计算还可以购买的数量:库存量 - 已购数
  2805 + wx.showToast({
  2806 + title: '超出活动限购',
  2807 + icon: 'none',
  2808 + });
  2809 + // getApp().my_warnning('超出活动限购', 0, th);
  2810 + th.setData({ [txt]: buylimit });
2732 2811
2733 - if(t.goods_num > redis_num) {  
2734 - wx.showToast({  
2735 - title: '超出活动库存',  
2736 - icon: 'none',  
2737 - });  
2738 - // getApp().my_warnning('超出活动库存', 0, th);  
2739 - th.setData({[txt]: redis_num});  
2740 - return false;  
2741 - }; 2812 + };
2742 2813
2743 - // 个人限购  
2744 - //----获取用户活动购买数----  
2745 - await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum?store_id="+t.store_id+"&user_id="+getApp().globalData.user_id+"&card_id="+t.goods_id+"&prom_type="+t.prom_type+"&prom_id="+t.prom_id, {  
2746 - }).then(tt => {  
2747 - if (tt.data.code == 0) {  
2748 - th.setData({  
2749 - promcardbuynum: tt.data.data.promcardbuynum,  
2750 - cardbuynum: tt.data.data.cardbuynum,  
2751 - });  
2752 - };  
2753 - });  
2754 -  
2755 -  
2756 -  
2757 - var buylimit = 0  
2758 - await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + t.store_id + "/" + getApp().globalData.user_id + "/" + t.prom_id, {  
2759 -  
2760 - }).then(res => {  
2761 - if(res.data.code == 0) {  
2762 -  
2763 - th.data.sele_g = res.data.data;  
2764 - th.data.sele_g.viplimited = res.data.data.buy_limit;  
2765 - buylimit = res.data.data.buy_limit;  
2766 - };  
2767 - });  
2768 -  
2769 -  
2770 - //--秒杀:判断商品是否超出活动限购--  
2771 - if (buylimit > 0) {  
2772 -  
2773 - var gd_buy_num = th.data.promcardbuynum;  
2774 -  
2775 - // 如果限购数量<=活动库存数量,增加数量时会先超过限购数量,此时应提示“超出活动限购数量”  
2776 - if(t.goods_num + gd_buy_num > buylimit) {  
2777 - // 计算还可以购买的数量:库存量 - 已购数  
2778 - wx.showToast({  
2779 - title: '超出活动限购',  
2780 - icon: 'none',  
2781 - });  
2782 - // getApp().my_warnning('超出活动限购', 0, th);  
2783 - th.setData({[txt]: buylimit});  
2784 -  
2785 - };  
2786 -  
2787 - }  
2788 -  
2789 -  
2790 - th.doCheckAll();  
2791 - th.update_cart_ser(t, pitem, item);  
2792 - 2814 + }
2793 2815
2794 -  
2795 - };  
2796 - },  
2797 2816
  2817 + th.doCheckAll();
  2818 + th.update_cart_ser(t, pitem, item);
2798 2819
2799 2820
2800 - //---检验线下库存的数量---  
2801 - async check_down_line(t, pitem, item, erpwareid) {  
2802 - var ob = {},  
2803 - th = this;  
2804 - await this.check_down_line_next(t, pitem, item, erpwareid, function (res) {  
2805 - ob = res;  
2806 - });  
2807 - var log = 0;  
2808 - if (ob.code == -1) {  
2809 - // wx.showModal({  
2810 - // title: '提示',  
2811 - // content: '购买数量超出商品库存'  
2812 - // });  
2813 - wx.showToast({  
2814 - title: '购买数量超出商品库存',  
2815 - icon: 'none',  
2816 - });  
2817 - // getApp().my_warnning('购买数量超出商品库存', 0, th);  
2818 - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";  
2819 - th.setData({  
2820 - [txt]: ob.CanOutQty  
2821 - });  
2822 - th.doCheckAll();  
2823 - t.goods_num = ob.CanOutQty;  
2824 - }else{  
2825 2821
2826 - var this_obj=this.data.requestData[pitem].goods[item]; 2822 + };
  2823 + },
2827 2824
2828 - if(th.data.sales_rules==3 && this_obj.selected){  
2829 2825
2830 2826
2831 - var goods_id=this_obj.goods_id; 2827 + //---检验线下库存的数量---
  2828 + async check_down_line(t, pitem, item, erpwareid) {
  2829 + var ob = {},
  2830 + th = this;
  2831 + await this.check_down_line_next(t, pitem, item, erpwareid, function (res) {
  2832 + ob = res;
  2833 + });
  2834 + var log = 0;
  2835 + if (ob.code == -1) {
  2836 + // wx.showModal({
  2837 + // title: '提示',
  2838 + // content: '购买数量超出商品库存'
  2839 + // });
  2840 + wx.showToast({
  2841 + title: '购买数量超出商品库存',
  2842 + icon: 'none',
  2843 + });
  2844 + // getApp().my_warnning('购买数量超出商品库存', 0, th);
  2845 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2846 + th.setData({
  2847 + [txt]: ob.CanOutQty
  2848 + });
  2849 + th.doCheckAll();
  2850 + t.goods_num = ob.CanOutQty;
  2851 + } else {
2832 2852
2833 - var num=0; 2853 + var this_obj = this.data.requestData[pitem].goods[item];
2834 2854
2835 - for (let i = 0; i < this.data.requestData.length; i++) {  
2836 - if(pitem==i) continue;  
2837 - var it= this.data.requestData[i].goods.find((e)=>{  
2838 - return e.goods_id==goods_id;  
2839 - })  
2840 - if(it && it.selected) num+=it.goods_num  
2841 - } 2855 + if (th.data.sales_rules == 3 && this_obj.selected) {
2842 2856
2843 - if(num>ob.CanOutQty){  
2844 - wx.showToast({  
2845 - title: '购买数量超出商品库存',  
2846 - icon: 'none',  
2847 - });  
2848 2857
2849 - th.data.up_dating = 0;  
2850 - return false;  
2851 - } 2858 + var goods_id = this_obj.goods_id;
2852 2859
  2860 + var num = 0;
2853 2861
  2862 + for (let i = 0; i < this.data.requestData.length; i++) {
  2863 + if (pitem == i) continue;
  2864 + var it = this.data.requestData[i].goods.find((e) => {
  2865 + return e.goods_id == goods_id;
  2866 + })
  2867 + if (it && it.selected) num += it.goods_num
  2868 + }
2854 2869
2855 - } 2870 + if (num > ob.CanOutQty) {
  2871 + wx.showToast({
  2872 + title: '购买数量超出商品库存',
  2873 + icon: 'none',
  2874 + });
  2875 +
  2876 + th.data.up_dating = 0;
  2877 + return false;
2856 } 2878 }
2857 2879
2858 2880
2859 2881
  2882 + }
  2883 + }
2860 2884
2861 - this.update_cart(t, pitem, item);  
2862 - },  
2863 2885
2864 - //---检验线下库存的数量的子函数---  
2865 - async check_down_line_next(t, pitem, item, erpwareid, func) {  
2866 2886
2867 - var goodsinfo = this.data.requestData[pitem].goods[item];  
2868 - var lock = 0,  
2869 - pick_no, plist;  
2870 2887
2871 - var lock_rq={  
2872 - store_id: os.stoid, wareId: t.goods_id,  
2873 - storageId: goodsinfo.pick_id, pageSize: 1000  
2874 - } 2888 + this.update_cart(t, pitem, item);
  2889 + },
2875 2890
2876 - if(this.data.sales_rules==3){  
2877 - lock_rq.appoint_pick_keyid=this.data.appoint_pick_keyid;  
2878 - delete lock_rq.storageId  
2879 - } 2891 + //---检验线下库存的数量的子函数---
  2892 + async check_down_line_next(t, pitem, item, erpwareid, func) {
2880 2893
2881 - //先读取门店的lock  
2882 - await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {  
2883 - data: lock_rq  
2884 - }).then(res => {  
2885 - if (res.data.code == 0 && res.data.data.total > 0) {  
2886 - for (var i in res.data.data.pageData)  
2887 - lock += res.data.data.pageData[i].outQty;  
2888 - }  
2889 - }) 2894 + var goodsinfo = this.data.requestData[pitem].goods[item];
  2895 + var lock = 0,
  2896 + pick_no, plist;
2890 2897
2891 - if(this.data.sales_rules==2) {  
2892 - //先获取门店的编号  
2893 - await getApp().request.promiseGet("/api/weshop/pickup/get/" + os.stoid + "/" + goodsinfo.pick_id, {  
2894 - data: {  
2895 - storeId: os.stoid,  
2896 - goodsId: t.goods_id,  
2897 - pickupId: goodsinfo.pick_id  
2898 - }  
2899 - }).then(res => {  
2900 - if (res.data.code == 0) {  
2901 - pick_no = res.data.data.pickup_no;  
2902 - }  
2903 - })  
2904 - } 2898 + var lock_rq = {
  2899 + store_id: os.stoid, wareId: t.goods_id,
  2900 + storageId: goodsinfo.pick_id, pageSize: 1000
  2901 + }
2905 2902
2906 - var sto_rq={storageNos:pick_no,wareIds:encodeURIComponent(erpwareid),storeId:os.stoid}; 2903 + if (this.data.sales_rules == 3) {
  2904 + lock_rq.appoint_pick_keyid = this.data.appoint_pick_keyid;
  2905 + delete lock_rq.storageId
  2906 + }
2907 2907
2908 - if(this.data.sales_rules==3){  
2909 - sto_rq.storageIds=this.data.appoint_pick_keyid;  
2910 - delete sto_rq.storageNos 2908 + //先读取门店的lock
  2909 + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {
  2910 + data: lock_rq
  2911 + }).then(res => {
  2912 + if (res.data.code == 0 && res.data.data.total > 0) {
  2913 + for (var i in res.data.data.pageData)
  2914 + lock += res.data.data.pageData[i].outQty;
  2915 + }
  2916 + })
  2917 +
  2918 + if (this.data.sales_rules == 2) {
  2919 + //先获取门店的编号
  2920 + await getApp().request.promiseGet("/api/weshop/pickup/get/" + os.stoid + "/" + goodsinfo.pick_id, {
  2921 + data: {
  2922 + storeId: os.stoid,
  2923 + goodsId: t.goods_id,
  2924 + pickupId: goodsinfo.pick_id
2911 } 2925 }
2912 - //读取线下的门店库存  
2913 - await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{  
2914 - data:sto_rq  
2915 - }).then(res=>{  
2916 - if(ut.ajax_ok(res)){  
2917 - plist=res.data.data.pageData[0];  
2918 - }  
2919 - })  
2920 - var ob = {};  
2921 - ob.code = 1;  
2922 -  
2923 - if (!plist) {  
2924 - ob.code = -1;  
2925 - ob.CanOutQty = 0;  
2926 - func(ob);  
2927 - return false; 2926 + }).then(res => {
  2927 + if (res.data.code == 0) {
  2928 + pick_no = res.data.data.pickup_no;
2928 } 2929 }
  2930 + })
  2931 + }
  2932 +
  2933 + var sto_rq = { storageNos: pick_no, wareIds: encodeURIComponent(erpwareid), storeId: os.stoid };
  2934 +
  2935 + if (this.data.sales_rules == 3) {
  2936 + sto_rq.storageIds = this.data.appoint_pick_keyid;
  2937 + delete sto_rq.storageNos
  2938 + }
  2939 + //读取线下的门店库存
  2940 + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", {
  2941 + data: sto_rq
  2942 + }).then(res => {
  2943 + if (ut.ajax_ok(res)) {
  2944 + plist = res.data.data.pageData[0];
  2945 + }
  2946 + })
  2947 + var ob = {};
  2948 + ob.code = 1;
  2949 +
  2950 + if (!plist) {
  2951 + ob.code = -1;
  2952 + ob.CanOutQty = 0;
  2953 + func(ob);
  2954 + return false;
  2955 + }
  2956 +
  2957 + var c_num = t.goods_num;
  2958 + if (t.need_downlow_num) c_num = t.need_downlow_num;
  2959 +
  2960 + if (c_num > plist.CanOutQty - lock) {
  2961 + ob.code = -1;
  2962 + ob.CanOutQty = plist.CanOutQty - lock
  2963 + if (ob.CanOutQty < 0) ob.CanOutQty = 0;
  2964 + } else {
  2965 + ob.CanOutQty = plist.CanOutQty - c_num - lock;
  2966 + }
2929 2967
2930 - var c_num = t.goods_num;  
2931 - if (t.need_downlow_num) c_num = t.need_downlow_num;  
2932 2968
2933 - if (c_num > plist.CanOutQty - lock) {  
2934 - ob.code = -1;  
2935 - ob.CanOutQty = plist.CanOutQty - lock  
2936 - if (ob.CanOutQty < 0) ob.CanOutQty = 0;  
2937 - }else{  
2938 - ob.CanOutQty=plist.CanOutQty-c_num- lock;  
2939 - } 2969 + func(ob)
  2970 + },
2940 2971
2941 2972
2942 - func(ob)  
2943 - }, 2973 + //--更新购物车---
  2974 + update_cart: function (t, pitem, item) {
  2975 + var e = this;
2944 2976
  2977 + getApp().request.put("/api/weshop/cart/update", {
  2978 + data: t,
  2979 + success: async function (ee) {
  2980 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2945 2981
2946 - //--更新购物车---  
2947 - update_cart: function (t, pitem, item) {  
2948 - var e = this; 2982 + e.setData({
  2983 + [txt]: t.goods_num,
  2984 + });
2949 2985
2950 - getApp().request.put("/api/weshop/cart/update", {  
2951 - data: t,  
2952 - success: async function (ee) {  
2953 - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; 2986 + e.data.duo_zp_num_arr = {};
  2987 + //await e.check_prom_activity(pitem)
  2988 + for (var i in e.data.requestData) {
  2989 + await e.check_prom_activity(i)
  2990 + }
  2991 + e.doCheckAll();
  2992 + getApp().requestCardNum(e);
  2993 + }
  2994 + });
  2995 + },
2954 2996
2955 - e.setData({  
2956 - [txt]: t.goods_num,  
2957 - }); 2997 + //--更新购物车---
  2998 + update_cart_ser: function (t, pitem, item) {
  2999 + var e = this;
2958 3000
2959 - e.data.duo_zp_num_arr={};  
2960 - //await e.check_prom_activity(pitem)  
2961 - for (var i in e.data.requestData) {  
2962 - await e.check_prom_activity(i)  
2963 - }  
2964 - e.doCheckAll();  
2965 - getApp().requestCardNum(e);  
2966 - }  
2967 - });  
2968 - },  
2969 -  
2970 - //--更新购物车---  
2971 - update_cart_ser: function (t, pitem, item) {  
2972 - var e = this;  
2973 -  
2974 - getApp().request.put("/api/weshop/cartService/update", {  
2975 - data: t,  
2976 - success: async function (ee) {  
2977 - var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num";  
2978 - e.setData({  
2979 - [txt]: t.goods_num,  
2980 - });  
2981 - e.doCheckAll();  
2982 - getApp().requestCardNum(e);  
2983 - } 3001 + getApp().request.put("/api/weshop/cartService/update", {
  3002 + data: t,
  3003 + success: async function (ee) {
  3004 + var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num";
  3005 + e.setData({
  3006 + [txt]: t.goods_num,
2984 }); 3007 });
2985 - }, 3008 + e.doCheckAll();
  3009 + getApp().requestCardNum(e);
  3010 + }
  3011 + });
  3012 + },
2986 3013
2987 3014
2988 - //-------下拉刷新---------  
2989 - onPullDownRefresh: function (t) {  
2990 - this.getCardList();  
2991 - }, 3015 + //-------下拉刷新---------
  3016 + onPullDownRefresh: function (t) {
  3017 + this.getCardList();
  3018 + },
2992 3019
2993 - //--------------去结算------------  
2994 - async checkout() { 3020 + //--------------去结算------------
  3021 + async checkout() {
2995 3022
2996 - if(getApp().is_sp_hao()){  
2997 - wx.showToast({  
2998 - title: "视频号不支持购物车购买",  
2999 - icon: 'none',  
3000 - duration: 2000  
3001 - });  
3002 - return false;  
3003 - }  
3004 -  
3005 - if (!this.data.total_num || this.data.total_num <= 0) return false;  
3006 - if (!this.data.is_load) return false;  
3007 - if (this.data.up_dating) {  
3008 - wx.showLoading({  
3009 - title: "计算中"  
3010 - }) 3023 + if (getApp().is_sp_hao()) {
  3024 + wx.showToast({
  3025 + title: "视频号不支持购物车购买",
  3026 + icon: 'none',
  3027 + duration: 2000
  3028 + });
  3029 + return false;
  3030 + }
  3031 +
  3032 + if (!this.data.total_num || this.data.total_num <= 0) return false;
  3033 + if (!this.data.is_load) return false;
  3034 + if (this.data.up_dating) {
  3035 + wx.showLoading({
  3036 + title: "计算中"
  3037 + })
  3038 + }
  3039 + var garr = this.data.requestData;
  3040 + var check_is_goods_selected = 0;
  3041 + if (garr) {
  3042 + for (var ii in garr) {
  3043 + for (var ij in garr[ii].goods) {
  3044 + if (garr[ii].goods[ij].selected) {
  3045 + check_is_goods_selected = 1;
  3046 + break;
  3047 + }
3011 } 3048 }
3012 - var garr = this.data.requestData;  
3013 - var check_is_goods_selected = 0;  
3014 - if (garr) {  
3015 - for (var ii in garr) {  
3016 - for (var ij in garr[ii].goods) {  
3017 - if (garr[ii].goods[ij].selected) {  
3018 - check_is_goods_selected = 1;  
3019 - break;  
3020 - }  
3021 - } 3049 + }
  3050 + }
  3051 + //-- 如果是商品的结算 --
  3052 + if (check_is_goods_selected) {
  3053 + var glist = ""; //用逗号隔开的
  3054 + var map = new Map(); //使用map值键进行运算
  3055 + var map_limit = new Map(); //使用map值键进行存储限购
  3056 + var g_arr = new Array(); //已选的商品列表
  3057 + var user_id = getApp().globalData.user_id;
  3058 + var th = this;
  3059 + //用于判断是不是积分购的普通购买
  3060 + var normal_arr = {};
  3061 + var ab = 0; //选中
  3062 + wx.showLoading();
  3063 + let checkArr7 = [];//组合购选中的数据
  3064 + // let checkOff=false
  3065 + for (var i = 0; i < this.data.requestData.length; i++) {
  3066 + var i_arr = this.data.requestData[i].goods;
  3067 + for (var j = 0; j < i_arr.length; j++) {
  3068 + if (i_arr[j].selected && i_arr[j].is_gift != 1) {
  3069 + if (i_arr[j].is_pd_normal || i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3) {
  3070 + normal_arr[i_arr[j].goods_id] = 1;
3022 } 3071 }
3023 - }  
3024 - //-- 如果是商品的结算 --  
3025 - if (check_is_goods_selected) {  
3026 - var glist = ""; //用逗号隔开的  
3027 - var map = new Map(); //使用map值键进行运算  
3028 - var map_limit = new Map(); //使用map值键进行存储限购  
3029 - var g_arr = new Array(); //已选的商品列表  
3030 - var user_id = getApp().globalData.user_id;  
3031 - var th = this;  
3032 - //用于判断是不是积分购的普通购买  
3033 - var normal_arr = {};  
3034 - var ab = 0; //选中  
3035 - wx.showLoading();  
3036 - let checkArr7=[];//组合购选中的数据  
3037 - // let checkOff=false  
3038 - for (var i = 0; i < this.data.requestData.length; i++) {  
3039 - var i_arr = this.data.requestData[i].goods;  
3040 - for (var j = 0; j < i_arr.length; j++) {  
3041 - if (i_arr[j].selected && i_arr[j].is_gift != 1) {  
3042 - if (i_arr[j].is_pd_normal || i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3) {  
3043 - normal_arr[i_arr[j].goods_id] = 1;  
3044 - }  
3045 - 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) {  
3046 - let userbuynum = await this.getUserBuyPromNum(i_arr[j].goods_prom_id)  
3047 - console.log('活动次数:' + userbuynum);  
3048 - if (userbuynum >= i_arr[j].act.buy_limit) {  
3049 - // i_arr[j].act.buy_userbuynum=true  
3050 - checkArr7.push(i_arr[j])  
3051 - }  
3052 - }  
3053 - //map 的key是不会重复,会覆盖,,  
3054 - var ie = {  
3055 - goods_id: i_arr[j].goods_id,  
3056 - id: i_arr[j].id,  
3057 - goods_price: i_arr[j].goods_price,  
3058 - };  
3059 - //判断是不是线下取价  
3060 - if (i_arr[j].is_offline) {  
3061 - ie.is_offline = i_arr[j].is_offline;  
3062 - ie.offline_price = i_arr[j].offline_price;  
3063 - ie.pricing_type = i_arr[j].pricing_type;  
3064 - }  
3065 - g_arr.push(ie);  
3066 -  
3067 - if (map.has(i_arr[j].goods_id + "")) {  
3068 - var num11 = map.get(i_arr[j].goods_id + "");  
3069 - var num22 = parseInt(i_arr[j].goods_num) + parseInt(num11);  
3070 - map.set(i_arr[j].goods_id + "", num22);  
3071 - } else {  
3072 - map.set(i_arr[j].goods_id + "", i_arr[j].goods_num);  
3073 - }  
3074 - glist += i_arr[j].goods_id + ",";  
3075 - ab = 1;  
3076 - //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存---  
3077 - if ((i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3 || i_arr[j].prom_type == 5 || i_arr[j].prom_type == 7 ||  
3078 - i_arr[j].need_downlow_num) && th.data.sales_rules >= 2 && i_arr[j].is_gift != 1 && !i_arr[j].whsle_id) {  
3079 - //--获取商品的线下商品ID--  
3080 - var gd = null;  
3081 - await getApp().request.promiseGet("/api/weshop/goods/get/" + oo.stoid + "/" + i_arr[j].goods_id, {}).then(res => {  
3082 - if (res.data.code == 0) gd = res.data.data;  
3083 - })  
3084 - //--判断商品是线下库存--  
3085 - var ob = {}  
3086 - await th.check_down_line_next(i_arr[j], i, j, gd.erpwareid, function (rs) {  
3087 - ob = rs;  
3088 - });  
3089 - if (ob.code == -1) {  
3090 - t.my_warnning(gd.goods_name + "门店库存不足", 0, th);  
3091 - wx.hideLoading();  
3092 - return false;  
3093 - } 3072 + 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) {
  3073 + let userbuynum = await this.getUserBuyPromNum(i_arr[j].goods_prom_id)
  3074 + console.log('活动次数:' + userbuynum);
  3075 + if (userbuynum >= i_arr[j].act.buy_limit) {
  3076 + // i_arr[j].act.buy_userbuynum=true
  3077 + checkArr7.push(i_arr[j])
  3078 + }
  3079 + }
  3080 + //map 的key是不会重复,会覆盖,,
  3081 + var ie = {
  3082 + goods_id: i_arr[j].goods_id,
  3083 + id: i_arr[j].id,
  3084 + goods_price: i_arr[j].goods_price,
  3085 + };
  3086 + //判断是不是线下取价
  3087 + if (i_arr[j].is_offline) {
  3088 + ie.is_offline = i_arr[j].is_offline;
  3089 + ie.offline_price = i_arr[j].offline_price;
  3090 + ie.pricing_type = i_arr[j].pricing_type;
  3091 + }
  3092 + g_arr.push(ie);
3094 3093
3095 - var is_ok = 1;  
3096 - //如果是优惠活动话,要看活动有没有过期  
3097 - if (i_arr[j].prom_type == 3) {  
3098 - //判断有没有活动  
3099 - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + i_arr[j].goods_id + "/1"+"/"+getApp().globalData.user_id, {}).then(res => {  
3100 - if (res.data.code == 0) {  
3101 - if (!res.data.data.promGoodsLists) {  
3102 - t.my_warnning(i_arr[j].goods_name + "优惠活动已经过期", 0, th);  
3103 - wx.hideLoading();  
3104 - is_ok = 0;  
3105 - }  
3106 - }  
3107 - })  
3108 - }  
3109 - if (!is_ok) {  
3110 - return false;  
3111 - }  
3112 - } 3094 + if (map.has(i_arr[j].goods_id + "")) {
  3095 + var num11 = map.get(i_arr[j].goods_id + "");
  3096 + var num22 = parseInt(i_arr[j].goods_num) + parseInt(num11);
  3097 + map.set(i_arr[j].goods_id + "", num22);
  3098 + } else {
  3099 + map.set(i_arr[j].goods_id + "", i_arr[j].goods_num);
  3100 + }
  3101 + glist += i_arr[j].goods_id + ",";
  3102 + ab = 1;
  3103 + //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存---
  3104 + if ((i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3 || i_arr[j].prom_type == 5 || i_arr[j].prom_type == 7 ||
  3105 + i_arr[j].need_downlow_num) && th.data.sales_rules >= 2 && i_arr[j].is_gift != 1 && !i_arr[j].whsle_id) {
  3106 + //--获取商品的线下商品ID--
  3107 + var gd = null;
  3108 + await getApp().request.promiseGet("/api/weshop/goods/get/" + oo.stoid + "/" + i_arr[j].goods_id, {}).then(res => {
  3109 + if (res.data.code == 0) gd = res.data.data;
  3110 + })
  3111 + //--判断商品是线下库存--
  3112 + var ob = {}
  3113 + await th.check_down_line_next(i_arr[j], i, j, gd.erpwareid, function (rs) {
  3114 + ob = rs;
  3115 + });
  3116 + if (ob.code == -1) {
  3117 + t.my_warnning(gd.goods_name + "门店库存不足", 0, th);
  3118 + wx.hideLoading();
  3119 + return false;
  3120 + }
3113 3121
3114 - } else {  
3115 - if (i_arr[j].is_gift == 1) continue;  
3116 - rq.put("/api/weshop/cart/update", {  
3117 - data: {  
3118 - id: i_arr[j].id,  
3119 - selected: 0,  
3120 - store_id: oo.stoid  
3121 - },  
3122 - success: function (ee) {  
3123 - console.log(ee);  
3124 - }  
3125 - }); 3122 + var is_ok = 1;
  3123 + //如果是优惠活动话,要看活动有没有过期
  3124 + if (i_arr[j].prom_type == 3) {
  3125 + //判断有没有活动
  3126 + await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + i_arr[j].goods_id + "/1" + "/" + getApp().globalData.user_id, {}).then(res => {
  3127 + if (res.data.code == 0) {
  3128 + if (!res.data.data.promGoodsLists) {
  3129 + t.my_warnning(i_arr[j].goods_name + "优惠活动已经过期", 0, th);
  3130 + wx.hideLoading();
  3131 + is_ok = 0;
3126 } 3132 }
3127 - } 3133 + }
  3134 + })
  3135 + }
  3136 + if (!is_ok) {
  3137 + return false;
  3138 + }
3128 } 3139 }
3129 -  
3130 - if (checkArr7.length >0) {  
3131 - let checkStr=[]  
3132 - checkArr7.map(item=>{  
3133 - checkStr.push(item.goods_name)  
3134 - })  
3135 - let str=checkStr.join()  
3136 - wx.hideLoading()  
3137 - wx.showModal({  
3138 - title: '提示',  
3139 - // content: `商品${str},组合购活动,购买次数已超,将以普通商品购买?`,  
3140 - content: `${str}超出组合购限购次数,将以普通商品购买`,  
3141 - success:res=>{  
3142 - wx.showLoading();  
3143 - if (res.confirm) {  
3144 - console.log('用户点击确定')  
3145 - //排除失效商品结算  
3146 - this.data.invalidList.map(item=>{  
3147 - if(item.selected && item.classType==0){  
3148 - rq.put('/api/weshop/cart/update', {  
3149 - data: {  
3150 - id: item.id,  
3151 - selected: 0,  
3152 - store_id: oo.stoid  
3153 - },  
3154 - success: function (ee) {  
3155 - console.log(ee);  
3156 - }  
3157 - });  
3158 - }  
3159 - })  
3160 - if (ab == 0) {  
3161 - t.my_warnning("未选择商品", 0, th);  
3162 - wx.hideLoading();  
3163 - return false;  
3164 - }  
3165 3140
3166 - glist = glist.substring(0, glist.length - 1);  
3167 - //--取一下商品的限购 以及活动的限购,redis数量--  
3168 - rq.get("/api/weshop/goods/getGoodsListNum", {  
3169 - data: {  
3170 - goodsidlist: glist,  
3171 - store_id: oo.stoid  
3172 - },  
3173 - async success(ee) {  
3174 - console.log(ee);  
3175 - if (ee.data.code == 0) {  
3176 - var ddata = ee.data.data,  
3177 - isok = 1,  
3178 - gname = "",  
3179 - err = "";  
3180 - //--组装--  
3181 - for (var ij = 0; ij < ddata.length; ij++) {  
3182 - var val = ddata[ij];  
3183 - var obj = map_limit.get(val.goods_id + "");  
3184 - if (obj) continue;  
3185 -  
3186 - var promgoodsbuynum = 0;  
3187 - var goodsbuynum = 0;  
3188 -  
3189 - //--要获得商品,该用户买了多少件,同步应用--  
3190 - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {  
3191 - data: {  
3192 - store_id: oo.stoid,  
3193 - user_id: user_id,  
3194 - goods_id: val.goods_id,  
3195 - prom_type: val.prom_type,  
3196 - prom_id: val.prom_id  
3197 - },  
3198 - }).then(res => {  
3199 - var buy_num_data = res.data.data;  
3200 - if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum;  
3201 - goodsbuynum = buy_num_data.goodsbuynum;  
3202 - })  
3203 - var ie = {  
3204 - promgoodsbuynum: promgoodsbuynum,  
3205 - goodsbuynum: goodsbuynum  
3206 - };  
3207 - map_limit.set(val.goods_id + "", ie);  
3208 - }  
3209 -  
3210 - try {  
3211 - for (var ind in ddata) {  
3212 - var val = ddata[ind];  
3213 - var num = map.get(val.goods_id + "");  
3214 - if (num <= 0) {  
3215 - isok = 0;  
3216 - gname = val.goods_name;  
3217 - throw "购买数量不能为0";  
3218 - return false;  
3219 - }  
3220 -  
3221 - if (val.prom_type == 1 || val.prom_type == 6) {  
3222 - if (num > val.store_count) {  
3223 - isok = 0;  
3224 - gname = val.goods_name;  
3225 - throw "超出库存";  
3226 - return false;  
3227 - }  
3228 - }  
3229 -  
3230 - if (th.data.sales_rules == 1) {  
3231 - if (num > val.store_count) {  
3232 - isok = 0;  
3233 - gname = val.goods_name;  
3234 - throw "超出库存";  
3235 - return false;  
3236 - }  
3237 - }  
3238 - if (num > val.redisnum && val.redisnum && !normal_arr[val.goods_id]) {  
3239 - isok = 0;  
3240 - gname = val.goods_name;  
3241 - throw "超出活动库存";  
3242 - return false;  
3243 - }  
3244 - if (num > val.goods_num - val.buy_num && val.goods_num && !normal_arr[val.goods_id]) {  
3245 - isok = 0;  
3246 - gname = val.goods_name;  
3247 - throw "超出活动库存";  
3248 - return false;  
3249 - }  
3250 -  
3251 - var buyed = map_limit.get(val.goods_id + "");  
3252 - if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) {  
3253 - isok = 0;  
3254 - gname = val.goods_name;  
3255 - throw "超出商品限购";  
3256 - return false;  
3257 - }  
3258 -  
3259 - if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0 && !normal_arr[val.goods_id]) {  
3260 - isok = 0;  
3261 - gname = val.goods_name;  
3262 - throw "超出活动限购";  
3263 - return false;  
3264 - }  
3265 -  
3266 - var card_field = th.data.card_field;  
3267 - for (var i = 0; i < g_arr.length; i++) {  
3268 -  
3269 - if (g_arr[i].goods_id == val.goods_id) {  
3270 -  
3271 - //如果会员是等级会员,商品有等级价,且不是活动商品  
3272 - if (card_field && val[card_field] > 0 &&  
3273 - ((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])) {  
3274 - if (g_arr[i].goods_price != val[card_field]) {  
3275 - isok = 0;  
3276 - gname = val.goods_name;  
3277 - throw "商品价格已经变化";  
3278 - }  
3279 - } else {  
3280 - if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price && val.prom_price > 0) {  
3281 - isok = 0;  
3282 - gname = val.goods_name;  
3283 - throw "商品价格已经变化";  
3284 - }  
3285 - }  
3286 -  
3287 - //-- 数据的更新 --  
3288 - var data = {  
3289 - id: g_arr[i].id,  
3290 - selected: 1,  
3291 - store_id: oo.stoid  
3292 - };  
3293 - let gitem=checkArr7.find(item=>item.goods_id==g_arr[i].goods_id)  
3294 - if(gitem){  
3295 - data.prom_type=0  
3296 - data.prom_id=0  
3297 - }  
3298 - //-- 如果有线下取价的时候 --  
3299 - if (g_arr[i].is_offline) {  
3300 - data.pricing_type = g_arr[i].pricing_type;  
3301 - data.offline_price = g_arr[i].offline_price;  
3302 - }  
3303 - rq.put("/api/weshop/cart/update", {  
3304 - data: data,  
3305 - success: function (ee) {  
3306 - console.log(ee);  
3307 - }  
3308 - });  
3309 - }  
3310 - }  
3311 -  
3312 - }  
3313 - } catch (e) {  
3314 - err = e;  
3315 - }  
3316 - if (isok == 0) {  
3317 - t.confirmBox(gname + ":" + err);  
3318 - wx.hideLoading();  
3319 - return false;  
3320 - }  
3321 - wx.hideLoading();  
3322 - wx.navigateTo({  
3323 - url: "/packageE/pages/cart/cart2/cart2"  
3324 - });  
3325 - }  
3326 - }  
3327 - });  
3328 - } else if (res.cancel) {  
3329 - wx.hideLoading();  
3330 - console.log('用户点击取消')  
3331 - }  
3332 - }  
3333 - })  
3334 - }else{ 3141 + } else {
  3142 + if (i_arr[j].is_gift == 1) continue;
  3143 + rq.put("/api/weshop/cart/update", {
  3144 + data: {
  3145 + id: i_arr[j].id,
  3146 + selected: 0,
  3147 + store_id: oo.stoid
  3148 + },
  3149 + success: function (ee) {
  3150 + console.log(ee);
  3151 + }
  3152 + });
  3153 + }
  3154 + }
  3155 + }
  3156 +
  3157 + if (checkArr7.length > 0) {
  3158 + let checkStr = []
  3159 + checkArr7.map(item => {
  3160 + checkStr.push(item.goods_name)
  3161 + })
  3162 + let str = checkStr.join()
  3163 + wx.hideLoading()
  3164 + wx.showModal({
  3165 + title: '提示',
  3166 + // content: `商品${str},组合购活动,购买次数已超,将以普通商品购买?`,
  3167 + content: `${str}超出组合购限购次数,将以普通商品购买`,
  3168 + success: res => {
  3169 + wx.showLoading();
  3170 + if (res.confirm) {
  3171 + console.log('用户点击确定')
3335 //排除失效商品结算 3172 //排除失效商品结算
3336 - this.data.invalidList.map(item=>{  
3337 - if(item.selected && item.classType==0){ 3173 + this.data.invalidList.map(item => {
  3174 + if (item.selected && item.classType == 0) {
3338 rq.put('/api/weshop/cart/update', { 3175 rq.put('/api/weshop/cart/update', {
3339 data: { 3176 data: {
3340 - id: item.id,  
3341 - selected: 0,  
3342 - store_id: oo.stoid 3177 + id: item.id,
  3178 + selected: 0,
  3179 + store_id: oo.stoid
3343 }, 3180 },
3344 success: function (ee) { 3181 success: function (ee) {
3345 - console.log(ee); 3182 + console.log(ee);
3346 } 3183 }
3347 }); 3184 });
3348 } 3185 }
3349 }) 3186 })
3350 if (ab == 0) { 3187 if (ab == 0) {
3351 - t.my_warnning("未选择商品", 0, th);  
3352 - wx.hideLoading();  
3353 - return false; 3188 + t.my_warnning("未选择商品", 0, th);
  3189 + wx.hideLoading();
  3190 + return false;
3354 } 3191 }
3355 3192
3356 glist = glist.substring(0, glist.length - 1); 3193 glist = glist.substring(0, glist.length - 1);
3357 //--取一下商品的限购 以及活动的限购,redis数量-- 3194 //--取一下商品的限购 以及活动的限购,redis数量--
3358 rq.get("/api/weshop/goods/getGoodsListNum", { 3195 rq.get("/api/weshop/goods/getGoodsListNum", {
3359 - data: {  
3360 - goodsidlist: glist,  
3361 - store_id: oo.stoid  
3362 - },  
3363 - async success(ee) {  
3364 - console.log(ee);  
3365 - if (ee.data.code == 0) {  
3366 - var ddata = ee.data.data,  
3367 - isok = 1,  
3368 - gname = "",  
3369 - err = "";  
3370 - //--组装--  
3371 - for (var ij = 0; ij < ddata.length; ij++) {  
3372 - var val = ddata[ij];  
3373 - var obj = map_limit.get(val.goods_id + "");  
3374 - if (obj) continue;  
3375 -  
3376 - var promgoodsbuynum = 0;  
3377 - var goodsbuynum = 0;  
3378 -  
3379 - //--要获得商品,该用户买了多少件,同步应用--  
3380 - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {  
3381 - data: {  
3382 - store_id: oo.stoid,  
3383 - user_id: user_id,  
3384 - goods_id: val.goods_id,  
3385 - prom_type: val.prom_type,  
3386 - prom_id: val.prom_id  
3387 - },  
3388 - }).then(res => {  
3389 - var buy_num_data = res.data.data;  
3390 - if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum;  
3391 - goodsbuynum = buy_num_data.goodsbuynum;  
3392 - })  
3393 - var ie = {  
3394 - promgoodsbuynum: promgoodsbuynum,  
3395 - goodsbuynum: goodsbuynum  
3396 - };  
3397 - map_limit.set(val.goods_id + "", ie); 3196 + data: {
  3197 + goodsidlist: glist,
  3198 + store_id: oo.stoid
  3199 + },
  3200 + async success(ee) {
  3201 + console.log(ee);
  3202 + if (ee.data.code == 0) {
  3203 + var ddata = ee.data.data,
  3204 + isok = 1,
  3205 + gname = "",
  3206 + err = "";
  3207 + //--组装--
  3208 + for (var ij = 0; ij < ddata.length; ij++) {
  3209 + var val = ddata[ij];
  3210 + var obj = map_limit.get(val.goods_id + "");
  3211 + if (obj) continue;
  3212 +
  3213 + var promgoodsbuynum = 0;
  3214 + var goodsbuynum = 0;
  3215 +
  3216 + //--要获得商品,该用户买了多少件,同步应用--
  3217 + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {
  3218 + data: {
  3219 + store_id: oo.stoid,
  3220 + user_id: user_id,
  3221 + goods_id: val.goods_id,
  3222 + prom_type: val.prom_type,
  3223 + prom_id: val.prom_id
  3224 + },
  3225 + }).then(res => {
  3226 + var buy_num_data = res.data.data;
  3227 + if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum;
  3228 + goodsbuynum = buy_num_data.goodsbuynum;
  3229 + })
  3230 + var ie = {
  3231 + promgoodsbuynum: promgoodsbuynum,
  3232 + goodsbuynum: goodsbuynum
  3233 + };
  3234 + map_limit.set(val.goods_id + "", ie);
  3235 + }
  3236 +
  3237 + try {
  3238 + for (var ind in ddata) {
  3239 + var val = ddata[ind];
  3240 + var num = map.get(val.goods_id + "");
  3241 + if (num <= 0) {
  3242 + isok = 0;
  3243 + gname = val.goods_name;
  3244 + throw "购买数量不能为0";
  3245 + return false;
  3246 + }
  3247 +
  3248 + if (val.prom_type == 1 || val.prom_type == 6) {
  3249 + if (num > val.store_count) {
  3250 + isok = 0;
  3251 + gname = val.goods_name;
  3252 + throw "超出库存";
  3253 + return false;
  3254 + }
  3255 + }
  3256 +
  3257 + if (th.data.sales_rules == 1) {
  3258 + if (num > val.store_count) {
  3259 + isok = 0;
  3260 + gname = val.goods_name;
  3261 + throw "超出库存";
  3262 + return false;
3398 } 3263 }
  3264 + }
  3265 + if (num > val.redisnum && val.redisnum && !normal_arr[val.goods_id]) {
  3266 + isok = 0;
  3267 + gname = val.goods_name;
  3268 + throw "超出活动库存";
  3269 + return false;
  3270 + }
  3271 + if (num > val.goods_num - val.buy_num && val.goods_num && !normal_arr[val.goods_id]) {
  3272 + isok = 0;
  3273 + gname = val.goods_name;
  3274 + throw "超出活动库存";
  3275 + return false;
  3276 + }
  3277 +
  3278 + var buyed = map_limit.get(val.goods_id + "");
  3279 + if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) {
  3280 + isok = 0;
  3281 + gname = val.goods_name;
  3282 + throw "超出商品限购";
  3283 + return false;
  3284 + }
  3285 +
  3286 + if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0 && !normal_arr[val.goods_id]) {
  3287 + isok = 0;
  3288 + gname = val.goods_name;
  3289 + throw "超出活动限购";
  3290 + return false;
  3291 + }
3399 3292
3400 - try {  
3401 - for (var ind in ddata) {  
3402 - var val = ddata[ind];  
3403 - var num = map.get(val.goods_id + "");  
3404 - if (num <= 0) {  
3405 - isok = 0;  
3406 - gname = val.goods_name;  
3407 - throw "购买数量不能为0";  
3408 - return false;  
3409 - }  
3410 -  
3411 - if (val.prom_type == 1 || val.prom_type == 6) {  
3412 - if (num > val.store_count) {  
3413 - isok = 0;  
3414 - gname = val.goods_name;  
3415 - throw "超出库存";  
3416 - return false;  
3417 - }  
3418 - }  
3419 -  
3420 - if (th.data.sales_rules == 1) {  
3421 - if (num > val.store_count) {  
3422 - isok = 0;  
3423 - gname = val.goods_name;  
3424 - throw "超出库存";  
3425 - return false;  
3426 - }  
3427 - }  
3428 - if (num > val.redisnum && val.redisnum && !normal_arr[val.goods_id]) {  
3429 - isok = 0;  
3430 - gname = val.goods_name;  
3431 - throw "超出活动库存";  
3432 - return false;  
3433 - }  
3434 - if (num > val.goods_num - val.buy_num && val.goods_num && !normal_arr[val.goods_id]) {  
3435 - isok = 0;  
3436 - gname = val.goods_name;  
3437 - throw "超出活动库存";  
3438 - return false;  
3439 - }  
3440 -  
3441 - var buyed = map_limit.get(val.goods_id + "");  
3442 - if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) {  
3443 - isok = 0;  
3444 - gname = val.goods_name;  
3445 - throw "超出商品限购";  
3446 - return false;  
3447 - }  
3448 -  
3449 - if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0 && !normal_arr[val.goods_id]) {  
3450 - isok = 0;  
3451 - gname = val.goods_name;  
3452 - throw "超出活动限购";  
3453 - return false;  
3454 - }  
3455 -  
3456 - var card_field = th.data.card_field;  
3457 - for (var i = 0; i < g_arr.length; i++) {  
3458 -  
3459 - if (g_arr[i].goods_id == val.goods_id) {  
3460 -  
3461 - //如果会员是等级会员,商品有等级价,且不是活动商品  
3462 - if (card_field && val[card_field] > 0 &&  
3463 - ((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])) {  
3464 - if (g_arr[i].goods_price != val[card_field]) {  
3465 - isok = 0;  
3466 - gname = val.goods_name;  
3467 - throw "商品价格已经变化";  
3468 - }  
3469 - } else {  
3470 - if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price && val.prom_price > 0) {  
3471 - isok = 0;  
3472 - gname = val.goods_name;  
3473 - throw "商品价格已经变化";  
3474 - }  
3475 - }  
3476 -  
3477 - //-- 数据的更新 --  
3478 - var data = {  
3479 - id: g_arr[i].id,  
3480 - selected: 1,  
3481 - store_id: oo.stoid  
3482 - };  
3483 -  
3484 - //-- 如果有线下取价的时候 --  
3485 - if (g_arr[i].is_offline) {  
3486 - data.pricing_type = g_arr[i].pricing_type;  
3487 - data.offline_price = g_arr[i].offline_price;  
3488 - }  
3489 - rq.put("/api/weshop/cart/update", {  
3490 - data: data,  
3491 - success: function (ee) {  
3492 - console.log(ee);  
3493 - }  
3494 - });  
3495 - }  
3496 - } 3293 + var card_field = th.data.card_field;
  3294 + for (var i = 0; i < g_arr.length; i++) {
3497 3295
  3296 + if (g_arr[i].goods_id == val.goods_id) {
  3297 +
  3298 + //如果会员是等级会员,商品有等级价,且不是活动商品
  3299 + if (card_field && val[card_field] > 0 &&
  3300 + ((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])) {
  3301 + if (g_arr[i].goods_price != val[card_field]) {
  3302 + isok = 0;
  3303 + gname = val.goods_name;
  3304 + throw "商品价格已经变化";
3498 } 3305 }
3499 - } catch (e) {  
3500 - err = e;  
3501 - }  
3502 - if (isok == 0) {  
3503 - t.confirmBox(gname + ":" + err);  
3504 - wx.hideLoading();  
3505 - return false; 3306 + } else {
  3307 + if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price && val.prom_price > 0) {
  3308 + isok = 0;
  3309 + gname = val.goods_name;
  3310 + throw "商品价格已经变化";
  3311 + }
  3312 + }
  3313 +
  3314 + //-- 数据的更新 --
  3315 + var data = {
  3316 + id: g_arr[i].id,
  3317 + selected: 1,
  3318 + store_id: oo.stoid
  3319 + };
  3320 + let gitem = checkArr7.find(item => item.goods_id == g_arr[i].goods_id)
  3321 + if (gitem) {
  3322 + data.prom_type = 0
  3323 + data.prom_id = 0
  3324 + }
  3325 + //-- 如果有线下取价的时候 --
  3326 + if (g_arr[i].is_offline) {
  3327 + data.pricing_type = g_arr[i].pricing_type;
  3328 + data.offline_price = g_arr[i].offline_price;
  3329 + }
  3330 + rq.put("/api/weshop/cart/update", {
  3331 + data: data,
  3332 + success: function (ee) {
  3333 + console.log(ee);
  3334 + }
  3335 + });
3506 } 3336 }
3507 - wx.hideLoading();  
3508 - wx.navigateTo({  
3509 - url: "/packageE/pages/cart/cart2/cart2"  
3510 - }); 3337 + }
  3338 +
3511 } 3339 }
  3340 + } catch (e) {
  3341 + err = e;
  3342 + }
  3343 + if (isok == 0) {
  3344 + t.confirmBox(gname + ":" + err);
  3345 + wx.hideLoading();
  3346 + return false;
  3347 + }
  3348 + wx.hideLoading();
  3349 + wx.navigateTo({
  3350 + url: "/packageE/pages/cart/cart2/cart2"
  3351 + });
3512 } 3352 }
  3353 + }
3513 }); 3354 });
  3355 + } else if (res.cancel) {
  3356 + wx.hideLoading();
  3357 + console.log('用户点击取消')
3514 } 3358 }
3515 - } else { 3359 + }
  3360 + })
  3361 + } else {
  3362 + //排除失效商品结算
  3363 + this.data.invalidList.map(item => {
  3364 + if (item.selected && item.classType == 0) {
  3365 + rq.put('/api/weshop/cart/update', {
  3366 + data: {
  3367 + id: item.id,
  3368 + selected: 0,
  3369 + store_id: oo.stoid
  3370 + },
  3371 + success: function (ee) {
  3372 + console.log(ee);
  3373 + }
  3374 + });
  3375 + }
  3376 + })
  3377 + if (ab == 0) {
  3378 + t.my_warnning("未选择商品", 0, th);
  3379 + wx.hideLoading();
  3380 + return false;
  3381 + }
3516 3382
3517 - //-- 开始服务卡的购物车购买 --  
3518 - for (var i = 0; i < this.data.service_data.length; i++) {  
3519 - var i_arr = this.data.service_data[i].goods;  
3520 - console.log(i_arr) 3383 + glist = glist.substring(0, glist.length - 1);
  3384 + //--取一下商品的限购 以及活动的限购,redis数量--
  3385 + rq.get("/api/weshop/goods/getGoodsListNum", {
  3386 + data: {
  3387 + goodsidlist: glist,
  3388 + store_id: oo.stoid
  3389 + },
  3390 + async success(ee) {
  3391 + console.log(ee);
  3392 + if (ee.data.code == 0) {
  3393 + var ddata = ee.data.data,
  3394 + isok = 1,
  3395 + gname = "",
  3396 + err = "";
  3397 + //--组装--
  3398 + for (var ij = 0; ij < ddata.length; ij++) {
  3399 + var val = ddata[ij];
  3400 + var obj = map_limit.get(val.goods_id + "");
  3401 + if (obj) continue;
3521 3402
3522 - for (var j = 0; j < i_arr.length; j++) {  
3523 - await rq.promisePut("/api/weshop/cartService/update", {  
3524 - data: {  
3525 - id: i_arr[j].id,  
3526 - selected: i_arr[j].selected,  
3527 - store_id: oo.stoid  
3528 - }  
3529 - });  
3530 - }  
3531 - }  
3532 - //排除失效服务结算  
3533 - this.data.invalidList.map(item=>{  
3534 - if(item.selected && item.classType==1){  
3535 - rq.promisePut('/api/weshop/cartService/update', { 3403 + var promgoodsbuynum = 0;
  3404 + var goodsbuynum = 0;
  3405 +
  3406 + //--要获得商品,该用户买了多少件,同步应用--
  3407 + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {
3536 data: { 3408 data: {
3537 - id: item.id,  
3538 - selected: 0,  
3539 - store_id: oo.stoid 3409 + store_id: oo.stoid,
  3410 + user_id: user_id,
  3411 + goods_id: val.goods_id,
  3412 + prom_type: val.prom_type,
  3413 + prom_id: val.prom_id
  3414 + },
  3415 + }).then(res => {
  3416 + var buy_num_data = res.data.data;
  3417 + if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum;
  3418 + goodsbuynum = buy_num_data.goodsbuynum;
  3419 + })
  3420 + var ie = {
  3421 + promgoodsbuynum: promgoodsbuynum,
  3422 + goodsbuynum: goodsbuynum
  3423 + };
  3424 + map_limit.set(val.goods_id + "", ie);
  3425 + }
  3426 +
  3427 + try {
  3428 + for (var ind in ddata) {
  3429 + var val = ddata[ind];
  3430 + var num = map.get(val.goods_id + "");
  3431 + if (num <= 0) {
  3432 + isok = 0;
  3433 + gname = val.goods_name;
  3434 + throw "购买数量不能为0";
  3435 + return false;
  3436 + }
  3437 +
  3438 + if (val.prom_type == 1 || val.prom_type == 6) {
  3439 + if (num > val.store_count) {
  3440 + isok = 0;
  3441 + gname = val.goods_name;
  3442 + throw "超出库存";
  3443 + return false;
  3444 + }
  3445 + }
  3446 +
  3447 + if (th.data.sales_rules == 1) {
  3448 + if (num > val.store_count) {
  3449 + isok = 0;
  3450 + gname = val.goods_name;
  3451 + throw "超出库存";
  3452 + return false;
  3453 + }
  3454 + }
  3455 + if (num > val.redisnum && val.redisnum && !normal_arr[val.goods_id]) {
  3456 + isok = 0;
  3457 + gname = val.goods_name;
  3458 + throw "超出活动库存";
  3459 + return false;
  3460 + }
  3461 + if (num > val.goods_num - val.buy_num && val.goods_num && !normal_arr[val.goods_id]) {
  3462 + isok = 0;
  3463 + gname = val.goods_name;
  3464 + throw "超出活动库存";
  3465 + return false;
  3466 + }
  3467 +
  3468 + var buyed = map_limit.get(val.goods_id + "");
  3469 + if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) {
  3470 + isok = 0;
  3471 + gname = val.goods_name;
  3472 + throw "超出商品限购";
  3473 + return false;
  3474 + }
  3475 +
  3476 + if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0 && !normal_arr[val.goods_id]) {
  3477 + isok = 0;
  3478 + gname = val.goods_name;
  3479 + throw "超出活动限购";
  3480 + return false;
  3481 + }
  3482 +
  3483 + var card_field = th.data.card_field;
  3484 + for (var i = 0; i < g_arr.length; i++) {
  3485 +
  3486 + if (g_arr[i].goods_id == val.goods_id) {
  3487 +
  3488 + //如果会员是等级会员,商品有等级价,且不是活动商品
  3489 + if (card_field && val[card_field] > 0 &&
  3490 + ((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])) {
  3491 + if (g_arr[i].goods_price != val[card_field]) {
  3492 + isok = 0;
  3493 + gname = val.goods_name;
  3494 + throw "商品价格已经变化";
  3495 + }
  3496 + } else {
  3497 + if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price && val.prom_price > 0) {
  3498 + isok = 0;
  3499 + gname = val.goods_name;
  3500 + throw "商品价格已经变化";
  3501 + }
  3502 + }
  3503 +
  3504 + //-- 数据的更新 --
  3505 + var data = {
  3506 + id: g_arr[i].id,
  3507 + selected: 1,
  3508 + store_id: oo.stoid
  3509 + };
  3510 +
  3511 + //-- 如果有线下取价的时候 --
  3512 + if (g_arr[i].is_offline) {
  3513 + data.pricing_type = g_arr[i].pricing_type;
  3514 + data.offline_price = g_arr[i].offline_price;
  3515 + }
  3516 + rq.put("/api/weshop/cart/update", {
  3517 + data: data,
  3518 + success: function (ee) {
  3519 + console.log(ee);
  3520 + }
  3521 + });
  3522 + }
3540 } 3523 }
3541 - }); 3524 +
  3525 + }
  3526 + } catch (e) {
  3527 + err = e;
3542 } 3528 }
3543 - })  
3544 - wx.hideLoading();  
3545 - getApp().goto("/packageA/pages/cart2_ser/cart2_ser?is_cart=1"); 3529 + if (isok == 0) {
  3530 + t.confirmBox(gname + ":" + err);
  3531 + wx.hideLoading();
  3532 + return false;
  3533 + }
  3534 + wx.hideLoading();
  3535 + wx.navigateTo({
  3536 + url: "/packageE/pages/cart/cart2/cart2"
  3537 + });
  3538 + }
  3539 + }
  3540 + });
  3541 + }
  3542 + } else {
  3543 +
  3544 + //-- 开始服务卡的购物车购买 --
  3545 + for (var i = 0; i < this.data.service_data.length; i++) {
  3546 + var i_arr = this.data.service_data[i].goods;
  3547 + console.log(i_arr)
  3548 +
  3549 + for (var j = 0; j < i_arr.length; j++) {
  3550 + await rq.promisePut("/api/weshop/cartService/update", {
  3551 + data: {
  3552 + id: i_arr[j].id,
  3553 + selected: i_arr[j].selected,
  3554 + store_id: oo.stoid
  3555 + }
  3556 + });
  3557 + }
  3558 + }
  3559 + //排除失效服务结算
  3560 + this.data.invalidList.map(item => {
  3561 + if (item.selected && item.classType == 1) {
  3562 + rq.promisePut('/api/weshop/cartService/update', {
  3563 + data: {
  3564 + id: item.id,
  3565 + selected: 0,
  3566 + store_id: oo.stoid
  3567 + }
  3568 + });
  3569 + }
  3570 + })
  3571 + wx.hideLoading();
  3572 + getApp().goto("/packageA/pages/cart2_ser/cart2_ser?is_cart=1");
  3573 + }
  3574 + },
  3575 +
  3576 + //结算到最后一个商品
  3577 + set_last: function (ab, isok, gname) {
  3578 + if (isok == 0) {
  3579 + t.my_warnning(gname + "商品超出库存", 0, this);
  3580 + } else {
  3581 + ab ? wx.navigateTo({
  3582 + url: "/packageE/pages/cart/cart2/cart2"
  3583 + }) : t.my_warnning("还没有选中商品", 0, this);
  3584 + }
  3585 + },
  3586 +
  3587 +
  3588 + //图片失败,默认图片
  3589 + bind_bnerr2: function (e) {
  3590 + var _errImg = e.target.dataset.errorimg;
  3591 + var _errurl = e.target.dataset.url;
  3592 + var ii = _errurl.indexOf(oo.imghost);
  3593 + if (ii != -1) {
  3594 + this.setData({
  3595 + [_errImg]: oo.imghost + "/miniapp/images/default_g_img.gif",
  3596 + })
  3597 + }
  3598 + },
  3599 + //设置点击按钮为true或者false
  3600 + radio_chick: function (checked, num) {
  3601 + var th = this;
  3602 + var requestData = th.data.requestData;
  3603 + },
  3604 +
  3605 + //点击编辑后的效果
  3606 + edit_cart: function (e) {
  3607 + var type = parseFloat(e.currentTarget.dataset.type);
  3608 + this.setData({
  3609 + is_edit: type
  3610 + });
  3611 + },
  3612 +
  3613 + //--多个删除购物车商品---
  3614 + check_del: function () {
  3615 + var glist = "",
  3616 + slist = ''; //用逗号隔开的
  3617 + var user_id = getApp().globalData.user_id;
  3618 + var th = this;
  3619 +
  3620 + var ab = 0; //选中
  3621 + var abc = 0; //
  3622 + for (var i = 0; i < this.data.requestData.length; i++) {
  3623 + var i_arr = this.data.requestData[i].goods;
  3624 + for (var j = 0; j < i_arr.length; j++) {
  3625 + if (i_arr[j].selected) {
  3626 + glist += i_arr[j].id + ",";
  3627 + ab = 1;
  3628 + }
  3629 + }
  3630 + }
  3631 +
  3632 + for (var ii = 0; ii < this.data.service_data.length; ii++) {
  3633 + var i_arr = this.data.service_data[ii].goods;
  3634 + for (var jj = 0; jj < i_arr.length; jj++) {
  3635 + if (i_arr[jj].selected) {
  3636 + slist += i_arr[jj].id + ",";
  3637 + abc = 1;
  3638 + }
  3639 + }
  3640 + }
  3641 +
  3642 + if (ab == 0 && abc == 0) {
  3643 + t.my_warnning("未选择商品或者服务卡", 0, th);
  3644 + return false;
  3645 + }
  3646 +
  3647 + if (ab) {
  3648 + glist = glist.substring(0, glist.length - 1);
  3649 + //要删除购物车中的商品
  3650 + var url = '/api/weshop/cart/delIds/' + oo.stoid + '/' + user_id + "/" + glist;
  3651 + getApp().request.delete(url, {
  3652 + success: function (t) {
  3653 + // console.log('del done1111111111');
  3654 + th.getCardList();
  3655 + getApp().requestCardNum(th);
  3656 + // console.log('all================', th.data.all_num);
  3657 + // getApp().globalData.cartGoodsNum =
  3658 + }
  3659 + });
  3660 + }
  3661 + if (abc) {
  3662 + slist = slist.substring(0, slist.length - 1);
  3663 + //要删除购物车中的商品
  3664 + var url = '/api/weshop/cartService/delIds/' + oo.stoid + '/' + user_id + "/" + slist;
  3665 + getApp().request.delete(url, {
  3666 + success: function (t) {
  3667 + th.getCardList();
  3668 + getApp().requestCardNum(th);
  3669 + console.log('all2================', th.data.all_num);
  3670 + }
  3671 + });
  3672 + }
  3673 +
  3674 + setTimeout(() => {
  3675 + if ((!th.data.requestData || th.data.requestData.length == 0) && (!th.data.service_data || th.data.service_data.length == 0)) {
  3676 +
  3677 + console.log('---1111---bb');
  3678 + var goods_list = th.selectComponent("#goods_list"); //组件的id
  3679 + if (goods_list) {
  3680 + goods_list.init();
  3681 + goods_list.get_list();
3546 } 3682 }
3547 - },  
3548 3683
3549 - //结算到最后一个商品  
3550 - set_last: function (ab, isok, gname) {  
3551 - if (isok == 0) {  
3552 - t.my_warnning(gname + "商品超出库存", 0, this);  
3553 - } else {  
3554 - ab ? wx.navigateTo({  
3555 - url: "/packageE/pages/cart/cart2/cart2"  
3556 - }) : t.my_warnning("还没有选中商品", 0, this);  
3557 - }  
3558 - }, 3684 + }
  3685 +
  3686 + }, 1200)
  3687 +
  3688 +
  3689 + },
  3690 + //跳到首页
  3691 + goto: function (e) {
  3692 + var url = '/pages/index/index/index';
  3693 + getApp().goto(url);
  3694 + },
3559 3695
  3696 + //---加载更多是靠这个函数----
  3697 + onReachBottom: function () {
  3698 + if (this.data.requestData && this.data.requestData.length == 0) {
  3699 + var goods_list = this.selectComponent("#goods_list"); //组件的id
  3700 + if (goods_list) goods_list.get_list();
  3701 + }
  3702 + },
3560 3703
3561 - //图片失败,默认图片  
3562 - bind_bnerr2: function (e) {  
3563 - var _errImg = e.target.dataset.errorimg;  
3564 - var _errurl = e.target.dataset.url;  
3565 - var ii = _errurl.indexOf(oo.imghost);  
3566 - if (ii != -1) {  
3567 - this.setData({  
3568 - [_errImg]: oo.imghost + "/miniapp/images/default_g_img.gif",  
3569 - }) 3704 + //检查莫个门店下的商品是不是优惠活动,有的话,看要不要送礼品,同时有没有倍增
  3705 + check_prom_activity: async function (cindex) {
  3706 + var make_up_arr = new Array();
  3707 + var send_gift_arr = new Array();
  3708 + var th = this;
  3709 + var map = new Map();
  3710 + var list = JSON.parse(JSON.stringify(this.data.requestData[cindex]));
  3711 + //循环处理活动,看活动商品的数量,用map来出来存储,key为活动id,值是数量
  3712 +
  3713 + //-- 所有的购物车的数据,要用拷贝的赖进行计算 --
  3714 + var alllist = JSON.parse(JSON.stringify(this.data.requestData));
  3715 + var list2 = alllist[cindex];
  3716 + var no_gift_arr = [];
  3717 +
  3718 +
  3719 + //主要判断有没有促销活动
  3720 + var is_sele_prom = 0;
  3721 + var is_gift_del = 0;
  3722 + for (var i = 0; i < list.goods.length; i++) {
  3723 + var item = list.goods[i];
  3724 + if (item.prom_type == 3 && item.selected && !item.is_gift) {
  3725 + is_sele_prom = 1;
  3726 + if (map.has(item.prom_id + "")) {
  3727 + var ob = map.get(item.prom_id + "");
  3728 + ob.num += item.goods_num;
  3729 + ob.price += item.goods_num * item.goods_price;
  3730 + delete map[item.prom_id + ""];
  3731 + map.set(item.prom_id + "", ob);
  3732 + } else {
  3733 + var ob = {};
  3734 + ob.num = item.goods_num;
  3735 + ob.price = item.goods_num * item.goods_price;
  3736 + if (item.guide_id) {
  3737 + ob.guide_id = item.guide_id;
  3738 + }
  3739 + if (item.guide_type) {
  3740 + ob.guide_type = item.guide_type;
  3741 + }
  3742 + map.set(item.prom_id + "", ob);
3570 } 3743 }
3571 - },  
3572 - //设置点击按钮为true或者false  
3573 - radio_chick: function (checked, num) {  
3574 - var th = this;  
3575 - var requestData = th.data.requestData;  
3576 - },  
3577 -  
3578 - //点击编辑后的效果  
3579 - edit_cart: function (e) {  
3580 - var type = parseFloat(e.currentTarget.dataset.type); 3744 + }
  3745 + if (item.is_gift == 1) {
  3746 + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  3747 + //getApp().request.delete(url, {});
  3748 + await getApp().request.promiseDelete(url, {}) // 要用同步让赠品删除
  3749 + list2.goods.splice(i, 1);
  3750 + list.goods.splice(i--, 1);
  3751 + is_gift_del = 1;
  3752 + }
  3753 + }
  3754 + //--如果没有选中的促销活动的,直接退出 --
  3755 + if (!is_sele_prom) {
  3756 + //如果有赠品,要重新更新购物车的前台渲染--
  3757 + if (is_gift_del) {
  3758 + var rq_text = "requestData[" + cindex + "]";
3581 this.setData({ 3759 this.setData({
3582 - is_edit: type 3760 + [rq_text]: list
3583 }); 3761 });
3584 - }, 3762 + }
3585 3763
3586 - //--多个删除购物车商品---  
3587 - check_del: function () {  
3588 - var glist = "",  
3589 - slist = ''; //用逗号隔开的  
3590 - var user_id = getApp().globalData.user_id;  
3591 - var th = this;  
3592 -  
3593 - var ab = 0; //选中  
3594 - var abc = 0; //  
3595 - for (var i = 0; i < this.data.requestData.length; i++) {  
3596 - var i_arr = this.data.requestData[i].goods;  
3597 - for (var j = 0; j < i_arr.length; j++) {  
3598 - if (i_arr[j].selected) {  
3599 - glist += i_arr[j].id + ",";  
3600 - ab = 1;  
3601 - }  
3602 - }  
3603 - } 3764 + var rq_text2 = "requestData[" + cindex + "].make_up_arr";
  3765 + this.setData({
  3766 + [rq_text2]: null,
  3767 + })
3604 3768
3605 - for (var ii = 0; ii < this.data.service_data.length; ii++) {  
3606 - var i_arr = this.data.service_data[ii].goods;  
3607 - for (var jj = 0; jj < i_arr.length; jj++) {  
3608 - if (i_arr[jj].selected) {  
3609 - slist += i_arr[jj].id + ",";  
3610 - abc = 1;  
3611 - }  
3612 - } 3769 + var gift_text = "requestData[" + cindex + "].send_gift_arr";
  3770 + this.setData({
  3771 + [gift_text]: null,
  3772 + })
  3773 + return false;
  3774 + }
  3775 + //-- 循环判断活动 --
  3776 + for (let p_item of map.entries()) {
  3777 + var prom = null;
  3778 + //使用缓存,减少接口的调用
  3779 + if (th.data.promgoods_map[p_item[0]]) {
  3780 + prom = th.data.promgoods_map[p_item[0]];
  3781 + } else {
  3782 + await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + p_item[0], {}).then(res => {
  3783 + if (res.data.code == 0) {
  3784 + prom = res.data.data;
  3785 + }
  3786 + })
  3787 + }
  3788 + //如果活动已经结束
  3789 + if (!prom || prom.is_end || prom.end_time < ut.gettimestamp()) {
  3790 + for (var ii in list.goods) {
  3791 + var item = list.goods[ii];
  3792 + list.goods.splice(ii, 1);
  3793 + if (item.prom_id == p_item[0] && item.prom_type == 3) {
  3794 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  3795 + // getApp().request.delete(url, {});
  3796 + th.disInvalid(item);
  3797 + }
3613 } 3798 }
  3799 + continue;
  3800 + }
3614 3801
3615 - if (ab == 0 && abc == 0) {  
3616 - t.my_warnning("未选择商品或者服务卡", 0, th);  
3617 - return false;  
3618 - } 3802 + if (!th.data.promgoods_map[p_item[0]]) th.data.promgoods_map[p_item[0]] = prom;
  3803 + //---读取打折的详情---
  3804 + var ob = p_item[1];
  3805 + var discount = null;
  3806 +
  3807 + //看一下是不是多赠品,如果是多赠品
  3808 + var promgoods_list = null;
  3809 + if (th.data.promgoods_list[p_item[0]]) {
  3810 + promgoods_list = th.data.promgoods_list[p_item[0]];
  3811 + } else {
  3812 + //-- 获取凑单提示 --
  3813 + await getApp().request.promiseGet("/api/weshop/promgoodslist/list", {
  3814 + data: {
  3815 + prom_id: prom.id
  3816 + }
  3817 + }).then(res => {
  3818 + if (res.data.code == 0) {
  3819 + promgoods_list = res.data.data;
  3820 + }
  3821 + })
  3822 + if (!promgoods_list) continue;
  3823 + th.data.promgoods_list[p_item[0]] = promgoods_list;
  3824 + }
3619 3825
3620 - if (ab) {  
3621 - glist = glist.substring(0, glist.length - 1);  
3622 - //要删除购物车中的商品  
3623 - var url = '/api/weshop/cart/delIds/' + oo.stoid + '/' + user_id + "/" + glist;  
3624 - getApp().request.delete(url, {  
3625 - success: function (t) {  
3626 - // console.log('del done1111111111');  
3627 - th.getCardList();  
3628 - getApp().requestCardNum(th);  
3629 - // console.log('all================', th.data.all_num);  
3630 - // getApp().globalData.cartGoodsNum =  
3631 - }  
3632 - });  
3633 - }  
3634 - if (abc) {  
3635 - slist = slist.substring(0, slist.length - 1);  
3636 - //要删除购物车中的商品  
3637 - var url = '/api/weshop/cartService/delIds/' + oo.stoid + '/' + user_id + "/" + slist;  
3638 - getApp().request.delete(url, {  
3639 - success: function (t) {  
3640 - th.getCardList();  
3641 - getApp().requestCardNum(th);  
3642 - console.log('all2================', th.data.all_num);  
3643 - }  
3644 - }); 3826 + for (var i in promgoods_list) {
  3827 + var item = promgoods_list[i];
  3828 + if (item.prom_type == 0) {
  3829 + if (ob.price < item.condition) {
  3830 + var elem = {
  3831 + prom_id: prom.id,
  3832 + diff_type: item.prom_type,
  3833 + diff: (item.condition - ob.price).toFixed(2),
  3834 + content: JSON.parse(item.preferential_type)
  3835 + }
  3836 + make_up_arr.push(elem);
  3837 + break;
  3838 + }
  3839 + } else {
  3840 + if (ob.num < item.condition) {
  3841 + var elem = {
  3842 + prom_id: prom.id,
  3843 + diff_type: item.prom_type,
  3844 + diff: (item.condition - ob.num).toFixed(2),
  3845 + content: JSON.parse(item.preferential_type)
  3846 + }
  3847 + make_up_arr.push(elem);
  3848 + break;
  3849 + }
3645 } 3850 }
  3851 + }
3646 3852
3647 - setTimeout(()=>{  
3648 - if ((!th.data.requestData|| th.data.requestData.length==0) && (!th.data.service_data|| th.data.service_data.length==0)){  
3649 3853
3650 - console.log('---1111---bb');  
3651 - var goods_list = th.selectComponent("#goods_list"); //组件的id  
3652 - if (goods_list) {  
3653 - goods_list.init();  
3654 - goods_list.get_list();  
3655 - }  
3656 3854
3657 - } 3855 + //-- 只有在单赠品的时候,才要进行计算 --
  3856 + await getApp().request.promiseGet("/api/weshop/goods/getDiscount", {
  3857 + data: {
  3858 + price: parseFloat(ob.price).toFixed(2),
  3859 + prom_id: p_item[0],
  3860 + goods_num: ob.num,
  3861 + user_id: getApp().globalData.user_id,
  3862 + is_bz: prom.is_bz
  3863 + }
  3864 + }).then(res => {
  3865 + if (res.data.code == 0) discount = res.data.data;
  3866 + })
3658 3867
3659 - },1200) 3868 + if (discount) {
3660 3869
  3870 + if (!discount.zp_num || parseInt(discount.zp_num) == 0) discount.zp_num = 1;
  3871 + //判断一下赠品的模式
  3872 + if (parseInt(discount.zp_mode) == 1) {
3661 3873
3662 - },  
3663 - //跳到首页  
3664 - goto: function (e) {  
3665 - var url = '/pages/index/index/index';  
3666 - getApp().goto(url);  
3667 - }, 3874 + var can_zp_num = 0;
  3875 + var a_limit_num = 0;
  3876 + for (let iy in discount.giftsinfo) {
  3877 + let item = discount.giftsinfo[iy];
  3878 + can_zp_num += parseInt(item.gift_storecount) > parseInt(item.limit_num) ? parseInt(item.limit_num) : parseInt(item.gift_storecount);
  3879 + }
3668 3880
3669 - //---加载更多是靠这个函数----  
3670 - onReachBottom: function () {  
3671 - if (this.data.requestData && this.data.requestData.length == 0) {  
3672 - var goods_list = this.selectComponent("#goods_list"); //组件的id  
3673 - if (goods_list) goods_list.get_list();  
3674 - }  
3675 - },  
3676 -  
3677 - //检查莫个门店下的商品是不是优惠活动,有的话,看要不要送礼品,同时有没有倍增  
3678 - check_prom_activity: async function (cindex) {  
3679 - var make_up_arr = new Array();  
3680 - var send_gift_arr = new Array();  
3681 - var th = this;  
3682 - var map = new Map();  
3683 - var list = JSON.parse(JSON.stringify(this.data.requestData[cindex]));  
3684 - //循环处理活动,看活动商品的数量,用map来出来存储,key为活动id,值是数量  
3685 -  
3686 - //-- 所有的购物车的数据,要用拷贝的赖进行计算 --  
3687 - var alllist = JSON.parse(JSON.stringify(this.data.requestData));  
3688 - var list2 = alllist[cindex];  
3689 - var no_gift_arr = [];  
3690 -  
3691 -  
3692 - //主要判断有没有促销活动  
3693 - var is_sele_prom = 0;  
3694 - var is_gift_del = 0;  
3695 - for (var i = 0; i < list.goods.length; i++) {  
3696 - var item = list.goods[i];  
3697 - if (item.prom_type == 3 && item.selected && !item.is_gift) {  
3698 - is_sele_prom = 1;  
3699 - if (map.has(item.prom_id + "")) {  
3700 - var ob = map.get(item.prom_id + "");  
3701 - ob.num += item.goods_num;  
3702 - ob.price += item.goods_num * item.goods_price;  
3703 - delete map[item.prom_id + ""];  
3704 - map.set(item.prom_id + "", ob);  
3705 - } else {  
3706 - var ob = {};  
3707 - ob.num = item.goods_num;  
3708 - ob.price = item.goods_num * item.goods_price;  
3709 - if (item.guide_id) {  
3710 - ob.guide_id = item.guide_id;  
3711 - }  
3712 - if (item.guide_type) {  
3713 - ob.guide_type = item.guide_type;  
3714 - }  
3715 - map.set(item.prom_id + "", ob);  
3716 - }  
3717 - }  
3718 - if (item.is_gift == 1) {  
3719 - var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
3720 - //getApp().request.delete(url, {});  
3721 - await getApp().request.promiseDelete(url, {}) // 要用同步让赠品删除  
3722 - list2.goods.splice(i, 1);  
3723 - list.goods.splice(i--, 1);  
3724 - is_gift_del = 1;  
3725 - }  
3726 - }  
3727 - //--如果没有选中的促销活动的,直接退出 --  
3728 - if (!is_sele_prom) {  
3729 - //如果有赠品,要重新更新购物车的前台渲染--  
3730 - if (is_gift_del) {  
3731 - var rq_text = "requestData[" + cindex + "]";  
3732 - this.setData({  
3733 - [rq_text]: list  
3734 - });  
3735 - } 3881 + var t_zp_num = parseInt(discount.zp_num) * parseInt(discount.bs);
  3882 + if (th.data.duo_zp_num_arr[prom.id]) {
  3883 + t_zp_num += th.data.duo_zp_num_arr[prom.id];
  3884 + }
3736 3885
3737 - var rq_text2 = "requestData[" + cindex + "].make_up_arr";  
3738 - this.setData({  
3739 - [rq_text2]:null,  
3740 - }) 3886 + if (can_zp_num >= t_zp_num) {
  3887 + var json = {};
  3888 + json.prom_id = prom.id;
  3889 + json.prom_name = prom.name;
  3890 + send_gift_arr.push(json);
  3891 + th.data.duo_zp_num_arr[prom.id] = t_zp_num;
  3892 + }
3741 3893
3742 - var gift_text = "requestData[" + cindex + "].send_gift_arr";  
3743 - this.setData({  
3744 - [gift_text]:null,  
3745 - })  
3746 - return false;  
3747 } 3894 }
3748 - //-- 循环判断活动 --  
3749 - for (let p_item of map.entries()) {  
3750 - var prom = null;  
3751 - //使用缓存,减少接口的调用  
3752 - if(th.data.promgoods_map[p_item[0]]){  
3753 - prom=th.data.promgoods_map[p_item[0]];  
3754 - }else{  
3755 - await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + p_item[0], {}).then(res => {  
3756 - if (res.data.code == 0) {  
3757 - prom = res.data.data;  
3758 - }  
3759 - })  
3760 - }  
3761 - //如果活动已经结束  
3762 - if (!prom || prom.is_end || prom.end_time < ut.gettimestamp()) {  
3763 - for (var ii in list.goods) {  
3764 - var item = list.goods[ii];  
3765 - list.goods.splice(ii, 1);  
3766 - if (item.prom_id == p_item[0] && item.prom_type == 3) {  
3767 - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
3768 - // getApp().request.delete(url, {});  
3769 - th.disInvalid(item);  
3770 - } 3895 + else {
  3896 + //---如果有打折的信息,赠送的信息,赠送的时候要判断是不是限购数量---
  3897 + if (discount && discount['goods_id'] && discount.limit_num >= discount.bs * discount.zp_num
  3898 + && discount.gift_storecount >= discount.bs * discount.zp_num) {
  3899 + //如果这礼品超了情况下
  3900 + if (no_gift_arr.indexOf(discount.gift_id) != -1) continue;
  3901 + var o = discount.goodsinfo;
  3902 + //-- 默认等于1,兼容旧的活动 --
  3903 +
  3904 + var newd = {
  3905 + goods_id: o.goods_id,
  3906 + goods_num: discount.bs * discount.zp_num, //是赠品的翻倍
  3907 + pick_id: list.pid,
  3908 + user_id: app.globalData.user_id,
  3909 + store_id: os.stoid,
  3910 + goods_price: 0,
  3911 + guide_id: ob.guide_id ? ob.guide_id : 0,
  3912 + guide_type: ob.guide_type ? ob.guide_type : 0,
  3913 + member_goods_price: 0,
  3914 + goods_name: o.goods_name,
  3915 + goods_sn: o.goods_sn,
  3916 + sku: o.sku,
  3917 + is_gift: 1,
  3918 + prom_id: p_item[0],
  3919 + prom_type: 3,
  3920 + selected: 1,
  3921 + gift_id: discount.gift_id,
  3922 + original_img: th.data.imgUrl + o.original_img
  3923 + };
  3924 +
  3925 + list2.goods.push(newd);
  3926 + var all_num = 0;
  3927 + var all_limit_num = 0;
  3928 +
  3929 + for (var i in alllist) {
  3930 + var list_item = alllist[i];
  3931 + if (list_item.pid == list.pid) continue;
  3932 + for (var j in list_item.goods) {
  3933 + //如果赠品的ID一样,要进行统计数量
  3934 + if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id) {
  3935 + all_num += list_item.goods[j].goods_num;
  3936 + }
  3937 + if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id && list_item.goods[j].prom_id == p_item[0]) {
  3938 + all_limit_num += list_item.goods[j].goods_num;
3771 } 3939 }
3772 - continue;  
3773 - }  
3774 3940
3775 - if(!th.data.promgoods_map[p_item[0]]) th.data.promgoods_map[p_item[0]]=prom;  
3776 - //---读取打折的详情---  
3777 - var ob = p_item[1];  
3778 - var discount = null;  
3779 -  
3780 - //看一下是不是多赠品,如果是多赠品  
3781 - var promgoods_list=null;  
3782 - if(th.data.promgoods_list[p_item[0]]){  
3783 - promgoods_list=th.data.promgoods_list[p_item[0]];  
3784 - }else{  
3785 - //-- 获取凑单提示 --  
3786 - await getApp().request.promiseGet("/api/weshop/promgoodslist/list", {  
3787 - data: {  
3788 - prom_id: prom.id  
3789 - }  
3790 - }).then(res => {  
3791 - if (res.data.code == 0) {  
3792 - promgoods_list = res.data.data;  
3793 - }  
3794 - })  
3795 - if(!promgoods_list) continue;  
3796 - th.data.promgoods_list[p_item[0]]=promgoods_list; 3941 + }
3797 } 3942 }
3798 3943
3799 - for (var i in promgoods_list) {  
3800 - var item = promgoods_list[i];  
3801 - if (item.prom_type == 0) {  
3802 - if (ob.price < item.condition) {  
3803 - var elem = {  
3804 - prom_id: prom.id,  
3805 - diff_type: item.prom_type,  
3806 - diff: (item.condition - ob.price).toFixed(2),  
3807 - content: JSON.parse(item.preferential_type)  
3808 - }  
3809 - make_up_arr.push(elem);  
3810 - break;  
3811 - }  
3812 - } else {  
3813 - if (ob.num < item.condition) {  
3814 - var elem = {  
3815 - prom_id: prom.id,  
3816 - diff_type: item.prom_type,  
3817 - diff: (item.condition - ob.num).toFixed(2),  
3818 - content: JSON.parse(item.preferential_type)  
3819 - }  
3820 - make_up_arr.push(elem);  
3821 - break;  
3822 - }  
3823 - } 3944 + //-- 赠品的数量超出库存数量和会员的限制,这里是保证所有的赠品部会超出 --
  3945 + if (discount.gift_storecount < all_num + newd.goods_num || discount.limit_num < all_limit_num + newd.goods_num) {
  3946 + no_gift_arr.push(discount.gift_id);
  3947 + //--进入下一个循环 --
  3948 + continue;
3824 } 3949 }
3825 3950
3826 3951
  3952 + var url = "/api/weshop/cart/delGift?store_id=" + newd.store_id + "&user_id=" +
  3953 + newd.user_id + "&goods_id=" + newd.goods_id + "&is_gift=1&pick_id=" + newd.pick_id + "&prom_id=" + newd.prom_id
  3954 + await getApp().request.promiseDelete(url, {})
3827 3955
3828 - //-- 只有在单赠品的时候,才要进行计算 --  
3829 - await getApp().request.promiseGet("/api/weshop/goods/getDiscount", {  
3830 - data: {  
3831 - price: parseFloat(ob.price).toFixed(2),  
3832 - prom_id: p_item[0],  
3833 - goods_num: ob.num,  
3834 - user_id: getApp().globalData.user_id,  
3835 - is_bz: prom.is_bz  
3836 - }  
3837 - }).then(res => {  
3838 - if (res.data.code == 0) discount = res.data.data;  
3839 - }) 3956 + var add_data = null;
  3957 + await getApp().request.promisePost("/api/weshop/cart/save", {
  3958 + data: newd
  3959 + }).then(res => {
  3960 + if (res.data.code == 0) {
  3961 + add_data = res.data.data;
  3962 + }
  3963 + })
  3964 + if (add_data) {
  3965 + newd.id = add_data.id;
  3966 + list.goods.push(newd);
  3967 + }
  3968 + }
  3969 + }
  3970 + }
3840 3971
3841 - if(discount) {  
3842 -  
3843 - if (!discount.zp_num || parseInt(discount.zp_num) == 0) discount.zp_num = 1;  
3844 - //判断一下赠品的模式  
3845 - if (parseInt(discount.zp_mode)== 1 )  
3846 - {  
3847 -  
3848 - var can_zp_num=0;  
3849 - var a_limit_num=0;  
3850 - for(let iy in discount.giftsinfo){  
3851 - let item=discount.giftsinfo[iy];  
3852 - can_zp_num+= parseInt(item.gift_storecount)>parseInt(item.limit_num)?parseInt(item.limit_num): parseInt(item.gift_storecount);  
3853 - }  
3854 -  
3855 - var t_zp_num=parseInt(discount.zp_num)*parseInt(discount.bs);  
3856 - if(th.data.duo_zp_num_arr[prom.id]){  
3857 - t_zp_num+=th.data.duo_zp_num_arr[prom.id];  
3858 - }  
3859 -  
3860 - if(can_zp_num>=t_zp_num ) {  
3861 - var json={};  
3862 - json.prom_id=prom.id;  
3863 - json.prom_name=prom.name;  
3864 - send_gift_arr.push(json);  
3865 - th.data.duo_zp_num_arr[prom.id]=t_zp_num;  
3866 - }  
3867 -  
3868 - }  
3869 - else  
3870 - {  
3871 - //---如果有打折的信息,赠送的信息,赠送的时候要判断是不是限购数量---  
3872 - if (discount && discount['goods_id'] && discount.limit_num >= discount.bs * discount.zp_num  
3873 - && discount.gift_storecount >= discount.bs * discount.zp_num) {  
3874 - //如果这礼品超了情况下  
3875 - if (no_gift_arr.indexOf(discount.gift_id) != -1) continue;  
3876 - var o = discount.goodsinfo;  
3877 - //-- 默认等于1,兼容旧的活动 --  
3878 -  
3879 - var newd = {  
3880 - goods_id: o.goods_id,  
3881 - goods_num: discount.bs * discount.zp_num, //是赠品的翻倍  
3882 - pick_id: list.pid,  
3883 - user_id: app.globalData.user_id,  
3884 - store_id: os.stoid,  
3885 - goods_price: 0,  
3886 - guide_id: ob.guide_id ? ob.guide_id : 0,  
3887 - guide_type: ob.guide_type ? ob.guide_type : 0,  
3888 - member_goods_price: 0,  
3889 - goods_name: o.goods_name,  
3890 - goods_sn: o.goods_sn,  
3891 - sku: o.sku,  
3892 - is_gift: 1,  
3893 - prom_id: p_item[0],  
3894 - prom_type: 3,  
3895 - selected: 1,  
3896 - gift_id: discount.gift_id,  
3897 - original_img: th.data.imgUrl + o.original_img  
3898 - };  
3899 -  
3900 - list2.goods.push(newd);  
3901 - var all_num = 0;  
3902 - var all_limit_num = 0;  
3903 -  
3904 - for (var i in alllist) {  
3905 - var list_item = alllist[i];  
3906 - if(list_item.pid==list.pid) continue;  
3907 - for (var j in list_item.goods) {  
3908 - //如果赠品的ID一样,要进行统计数量  
3909 - if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id) {  
3910 - all_num += list_item.goods[j].goods_num;  
3911 - }  
3912 - if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id && list_item.goods[j].prom_id == p_item[0]) {  
3913 - all_limit_num += list_item.goods[j].goods_num;  
3914 - }  
3915 -  
3916 - }  
3917 - }  
3918 -  
3919 - //-- 赠品的数量超出库存数量和会员的限制,这里是保证所有的赠品部会超出 --  
3920 - if (discount.gift_storecount < all_num+newd.goods_num || discount.limit_num <all_limit_num+newd.goods_num ) {  
3921 - no_gift_arr.push(discount.gift_id);  
3922 - //--进入下一个循环 --  
3923 - continue;  
3924 - }  
3925 -  
3926 -  
3927 - var url = "/api/weshop/cart/delGift?store_id=" + newd.store_id + "&user_id=" +  
3928 - newd.user_id + "&goods_id=" + newd.goods_id + "&is_gift=1&pick_id=" + newd.pick_id + "&prom_id=" + newd.prom_id  
3929 - await getApp().request.promiseDelete(url, {})  
3930 -  
3931 - var add_data = null;  
3932 - await getApp().request.promisePost("/api/weshop/cart/save", {  
3933 - data: newd  
3934 - }).then(res => {  
3935 - if (res.data.code == 0) {  
3936 - add_data = res.data.data;  
3937 - }  
3938 - })  
3939 - if (add_data) {  
3940 - newd.id = add_data.id;  
3941 - list.goods.push(newd);  
3942 - }  
3943 - }  
3944 - }  
3945 - } 3972 + }
  3973 + //--更新购物车的前台渲染--
  3974 + var rq_text = "requestData[" + cindex + "]";
  3975 + this.setData({
  3976 + [rq_text]: list
  3977 + });
  3978 +
  3979 + var diff_text = "requestData[" + cindex + "].make_up_arr";
  3980 + //-- 如果有凑单的话 --
  3981 + if (make_up_arr.length > 0) {
  3982 + this.setData({
  3983 + [diff_text]: make_up_arr
  3984 + });
  3985 + } else {
  3986 + this.setData({
  3987 + [diff_text]: null
  3988 + });
  3989 + }
  3990 +
  3991 + var gift_text = "requestData[" + cindex + "].send_gift_arr";
  3992 + //-- 如果有凑单的话 --
  3993 + if (send_gift_arr.length > 0) {
  3994 + this.setData({
  3995 + [gift_text]: send_gift_arr
  3996 + });
  3997 + } else {
  3998 + this.setData({
  3999 + [gift_text]: null
  4000 + });
  4001 + }
3946 4002
  4003 + },
  4004 +
  4005 + async all_check_prom_activity() {
  4006 + this.data.duo_zp_num_arr = {};
  4007 + for (var i in this.data.requestData) {
  4008 + var cindex = i;
  4009 + var make_up_arr = new Array();
  4010 + var send_gift_arr = new Array();
  4011 + var th = this;
  4012 + var map = new Map();
  4013 + var list = JSON.parse(JSON.stringify(this.data.requestData[cindex]));
  4014 + //循环处理活动,看活动商品的数量,用map来出来存储,key为活动id,值是数量
  4015 +
  4016 + //-- 所有的购物车的数据,要用拷贝的赖进行计算 --
  4017 + var alllist = JSON.parse(JSON.stringify(this.data.requestData));
  4018 + var list2 = alllist[cindex];
  4019 + var no_gift_arr = [];
  4020 +
  4021 +
  4022 + //主要判断有没有促销活动
  4023 + var is_sele_prom = 0;
  4024 + var is_gift_del = 0;
  4025 + for (var i = 0; i < list.goods.length; i++) {
  4026 + var item = list.goods[i];
  4027 + if (item.prom_type == 3 && item.selected && !item.is_gift) {
  4028 + is_sele_prom = 1;
  4029 + if (map.has(item.prom_id + "")) {
  4030 + var ob = map.get(item.prom_id + "");
  4031 + ob.num += item.goods_num;
  4032 + ob.price += item.goods_num * item.goods_price;
  4033 + delete map[item.prom_id + ""];
  4034 + map.set(item.prom_id + "", ob);
  4035 + } else {
  4036 + var ob = {};
  4037 + ob.num = item.goods_num;
  4038 + ob.price = item.goods_num * item.goods_price;
  4039 + if (item.guide_id) {
  4040 + ob.guide_id = item.guide_id;
  4041 + }
  4042 + if (item.guide_type) {
  4043 + ob.guide_type = item.guide_type;
  4044 + }
  4045 + map.set(item.prom_id + "", ob);
  4046 + }
3947 } 4047 }
3948 - //--更新购物车的前台渲染--  
3949 - var rq_text = "requestData[" + cindex + "]";  
3950 - this.setData({ 4048 + if (item.is_gift == 1) {
  4049 + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  4050 + //getApp().request.delete(url, {});
  4051 + await getApp().request.promiseDelete(url, {}) // 要用同步让赠品删除
  4052 + list2.goods.splice(i, 1);
  4053 + list.goods.splice(i--, 1);
  4054 + is_gift_del = 1;
  4055 + }
  4056 + }
  4057 + //--如果没有选中的促销活动的,直接退出 --
  4058 + if (!is_sele_prom) {
  4059 + //如果有赠品,要重新更新购物车的前台渲染--
  4060 + if (is_gift_del) {
  4061 + var rq_text = "requestData[" + cindex + "]";
  4062 + this.setData({
3951 [rq_text]: list 4063 [rq_text]: list
3952 - });  
3953 -  
3954 - var diff_text = "requestData[" + cindex + "].make_up_arr";  
3955 - //-- 如果有凑单的话 --  
3956 - if (make_up_arr.length > 0) {  
3957 - this.setData({  
3958 - [diff_text]: make_up_arr  
3959 - });  
3960 - } else {  
3961 - this.setData({  
3962 - [diff_text]: null  
3963 - }); 4064 + });
3964 } 4065 }
3965 4066
  4067 + var rq_text2 = "requestData[" + cindex + "].make_up_arr";
  4068 + this.setData({
  4069 + [rq_text2]: null,
  4070 + })
  4071 +
3966 var gift_text = "requestData[" + cindex + "].send_gift_arr"; 4072 var gift_text = "requestData[" + cindex + "].send_gift_arr";
3967 - //-- 如果有凑单的话 --  
3968 - if (send_gift_arr.length > 0) {  
3969 - this.setData({  
3970 - [gift_text]: send_gift_arr  
3971 - }); 4073 + this.setData({
  4074 + [gift_text]: null,
  4075 + })
  4076 + continue;
  4077 + }
  4078 + //-- 循环判断活动 --
  4079 + for (let p_item of map.entries()) {
  4080 + var prom = null;
  4081 + //使用缓存,减少接口的调用
  4082 + if (th.data.promgoods_map[p_item[0]]) {
  4083 + prom = th.data.promgoods_map[p_item[0]];
3972 } else { 4084 } else {
3973 - this.setData({  
3974 - [gift_text]: null  
3975 - }); 4085 + await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + p_item[0], {}).then(res => {
  4086 + if (res.data.code == 0) {
  4087 + prom = res.data.data;
  4088 + }
  4089 + })
3976 } 4090 }
3977 -  
3978 - },  
3979 -  
3980 - async all_check_prom_activity(){  
3981 - this.data.duo_zp_num_arr={};  
3982 - for (var i in this.data.requestData) {  
3983 - var cindex=i;  
3984 - var make_up_arr = new Array();  
3985 - var send_gift_arr = new Array();  
3986 - var th = this;  
3987 - var map = new Map();  
3988 - var list = JSON.parse(JSON.stringify(this.data.requestData[cindex]));  
3989 - //循环处理活动,看活动商品的数量,用map来出来存储,key为活动id,值是数量  
3990 -  
3991 - //-- 所有的购物车的数据,要用拷贝的赖进行计算 --  
3992 - var alllist = JSON.parse(JSON.stringify(this.data.requestData));  
3993 - var list2 = alllist[cindex];  
3994 - var no_gift_arr = [];  
3995 -  
3996 -  
3997 - //主要判断有没有促销活动  
3998 - var is_sele_prom = 0;  
3999 - var is_gift_del = 0;  
4000 - for (var i = 0; i < list.goods.length; i++) {  
4001 - var item = list.goods[i];  
4002 - if (item.prom_type == 3 && item.selected && !item.is_gift) {  
4003 - is_sele_prom = 1;  
4004 - if (map.has(item.prom_id + "")) {  
4005 - var ob = map.get(item.prom_id + "");  
4006 - ob.num += item.goods_num;  
4007 - ob.price += item.goods_num * item.goods_price;  
4008 - delete map[item.prom_id + ""];  
4009 - map.set(item.prom_id + "", ob);  
4010 - } else {  
4011 - var ob = {};  
4012 - ob.num = item.goods_num;  
4013 - ob.price = item.goods_num * item.goods_price;  
4014 - if (item.guide_id) {  
4015 - ob.guide_id = item.guide_id;  
4016 - }  
4017 - if (item.guide_type) {  
4018 - ob.guide_type = item.guide_type;  
4019 - }  
4020 - map.set(item.prom_id + "", ob);  
4021 - }  
4022 - }  
4023 - if (item.is_gift == 1) {  
4024 - var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
4025 - //getApp().request.delete(url, {});  
4026 - await getApp().request.promiseDelete(url, {}) // 要用同步让赠品删除  
4027 - list2.goods.splice(i, 1);  
4028 - list.goods.splice(i--, 1);  
4029 - is_gift_del = 1;  
4030 - } 4091 + //如果活动已经结束
  4092 + if (!prom || prom.is_end || prom.end_time < ut.gettimestamp()) {
  4093 + for (var ii in list.goods) {
  4094 + var item = list.goods[ii];
  4095 + list.goods.splice(ii, 1);
  4096 + if (item.prom_id == p_item[0] && item.prom_type == 3) {
  4097 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  4098 + // getApp().request.delete(url, {});
  4099 + th.disInvalid(item);
4031 } 4100 }
4032 - //--如果没有选中的促销活动的,直接退出 --  
4033 - if (!is_sele_prom) {  
4034 - //如果有赠品,要重新更新购物车的前台渲染--  
4035 - if (is_gift_del) {  
4036 - var rq_text = "requestData[" + cindex + "]";  
4037 - this.setData({  
4038 - [rq_text]: list  
4039 - });  
4040 - } 4101 + }
  4102 + continue;
  4103 + }
4041 4104
4042 - var rq_text2 = "requestData[" + cindex + "].make_up_arr";  
4043 - this.setData({  
4044 - [rq_text2]:null,  
4045 - }) 4105 + if (!th.data.promgoods_map[p_item[0]]) th.data.promgoods_map[p_item[0]] = prom;
  4106 + //---读取打折的详情---
  4107 + var ob = p_item[1];
  4108 + var discount = null;
4046 4109
4047 - var gift_text = "requestData[" + cindex + "].send_gift_arr";  
4048 - this.setData({  
4049 - [gift_text]:null,  
4050 - })  
4051 - continue; 4110 + //看一下是不是多赠品,如果是多赠品
  4111 + var promgoods_list = null;
  4112 + if (th.data.promgoods_list[p_item[0]]) {
  4113 + promgoods_list = th.data.promgoods_list[p_item[0]];
  4114 + } else {
  4115 + //-- 获取凑单提示 --
  4116 + await getApp().request.promiseGet("/api/weshop/promgoodslist/list", {
  4117 + data: {
  4118 + prom_id: prom.id
4052 } 4119 }
4053 - //-- 循环判断活动 --  
4054 - for (let p_item of map.entries()) {  
4055 - var prom = null;  
4056 - //使用缓存,减少接口的调用  
4057 - if(th.data.promgoods_map[p_item[0]]){  
4058 - prom=th.data.promgoods_map[p_item[0]];  
4059 - }else{  
4060 - await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + p_item[0], {}).then(res => {  
4061 - if (res.data.code == 0) {  
4062 - prom = res.data.data;  
4063 - }  
4064 - })  
4065 - }  
4066 - //如果活动已经结束  
4067 - if (!prom || prom.is_end || prom.end_time < ut.gettimestamp()) {  
4068 - for (var ii in list.goods) {  
4069 - var item = list.goods[ii];  
4070 - list.goods.splice(ii, 1);  
4071 - if (item.prom_id == p_item[0] && item.prom_type == 3) {  
4072 - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;  
4073 - // getApp().request.delete(url, {});  
4074 - th.disInvalid(item);  
4075 - }  
4076 - }  
4077 - continue;  
4078 - } 4120 + }).then(res => {
  4121 + if (res.data.code == 0) {
  4122 + promgoods_list = res.data.data;
  4123 + }
  4124 + })
  4125 + if (!promgoods_list) continue;
  4126 + th.data.promgoods_list[p_item[0]] = promgoods_list;
  4127 + }
4079 4128
4080 - if(!th.data.promgoods_map[p_item[0]]) th.data.promgoods_map[p_item[0]]=prom;  
4081 - //---读取打折的详情---  
4082 - var ob = p_item[1];  
4083 - var discount = null;  
4084 -  
4085 - //看一下是不是多赠品,如果是多赠品  
4086 - var promgoods_list=null;  
4087 - if(th.data.promgoods_list[p_item[0]]){  
4088 - promgoods_list=th.data.promgoods_list[p_item[0]];  
4089 - }else{  
4090 - //-- 获取凑单提示 --  
4091 - await getApp().request.promiseGet("/api/weshop/promgoodslist/list", {  
4092 - data: {  
4093 - prom_id: prom.id  
4094 - }  
4095 - }).then(res => {  
4096 - if (res.data.code == 0) {  
4097 - promgoods_list = res.data.data;  
4098 - }  
4099 - })  
4100 - if(!promgoods_list) continue;  
4101 - th.data.promgoods_list[p_item[0]]=promgoods_list;  
4102 - } 4129 + for (var i in promgoods_list) {
  4130 + var item = promgoods_list[i];
  4131 + if (item.prom_type == 0) {
  4132 + if (ob.price < item.condition) {
  4133 + var elem = {
  4134 + prom_id: prom.id,
  4135 + diff_type: item.prom_type,
  4136 + diff: (item.condition - ob.price).toFixed(2),
  4137 + content: JSON.parse(item.preferential_type)
  4138 + }
  4139 + make_up_arr.push(elem);
  4140 + break;
  4141 + }
  4142 + } else {
  4143 + if (ob.num < item.condition) {
  4144 + var elem = {
  4145 + prom_id: prom.id,
  4146 + diff_type: item.prom_type,
  4147 + diff: (item.condition - ob.num).toFixed(2),
  4148 + content: JSON.parse(item.preferential_type)
  4149 + }
  4150 + make_up_arr.push(elem);
  4151 + break;
  4152 + }
  4153 + }
  4154 + }
4103 4155
4104 - for (var i in promgoods_list) {  
4105 - var item = promgoods_list[i];  
4106 - if (item.prom_type == 0) {  
4107 - if (ob.price < item.condition) {  
4108 - var elem = {  
4109 - prom_id: prom.id,  
4110 - diff_type: item.prom_type,  
4111 - diff: (item.condition - ob.price).toFixed(2),  
4112 - content: JSON.parse(item.preferential_type)  
4113 - }  
4114 - make_up_arr.push(elem);  
4115 - break;  
4116 - }  
4117 - } else {  
4118 - if (ob.num < item.condition) {  
4119 - var elem = {  
4120 - prom_id: prom.id,  
4121 - diff_type: item.prom_type,  
4122 - diff: (item.condition - ob.num).toFixed(2),  
4123 - content: JSON.parse(item.preferential_type)  
4124 - }  
4125 - make_up_arr.push(elem);  
4126 - break;  
4127 - }  
4128 - }  
4129 - }  
4130 4156
4131 4157
  4158 + //-- 只有在单赠品的时候,才要进行计算 --
  4159 + await getApp().request.promiseGet("/api/weshop/goods/getDiscount", {
  4160 + data: {
  4161 + price: parseFloat(ob.price).toFixed(2),
  4162 + prom_id: p_item[0],
  4163 + goods_num: ob.num,
  4164 + user_id: getApp().globalData.user_id,
  4165 + is_bz: prom.is_bz
  4166 + }
  4167 + }).then(res => {
  4168 + if (res.data.code == 0) discount = res.data.data;
  4169 + })
4132 4170
4133 - //-- 只有在单赠品的时候,才要进行计算 --  
4134 - await getApp().request.promiseGet("/api/weshop/goods/getDiscount", {  
4135 - data: {  
4136 - price: parseFloat(ob.price).toFixed(2),  
4137 - prom_id: p_item[0],  
4138 - goods_num: ob.num,  
4139 - user_id: getApp().globalData.user_id,  
4140 - is_bz: prom.is_bz  
4141 - }  
4142 - }).then(res => {  
4143 - if (res.data.code == 0) discount = res.data.data;  
4144 - }) 4171 + if (discount) {
4145 4172
4146 - if(discount) { 4173 + if (!discount.zp_num || parseInt(discount.zp_num) == 0) discount.zp_num = 1;
  4174 + //判断一下赠品的模式
  4175 + if (parseInt(discount.zp_mode) == 1) {
4147 4176
4148 - if (!discount.zp_num || parseInt(discount.zp_num) == 0) discount.zp_num = 1;  
4149 - //判断一下赠品的模式  
4150 - if (parseInt(discount.zp_mode)== 1 )  
4151 - { 4177 + var can_zp_num = 0;
  4178 + var a_limit_num = 0;
  4179 + for (let iy in discount.giftsinfo) {
  4180 + let item = discount.giftsinfo[iy];
  4181 + can_zp_num += parseInt(item.gift_storecount) > parseInt(item.limit_num) ? parseInt(item.limit_num) : parseInt(item.gift_storecount);
  4182 + }
4152 4183
4153 - var can_zp_num=0;  
4154 - var a_limit_num=0;  
4155 - for(let iy in discount.giftsinfo){  
4156 - let item=discount.giftsinfo[iy];  
4157 - can_zp_num+= parseInt(item.gift_storecount)>parseInt(item.limit_num)?parseInt(item.limit_num): parseInt(item.gift_storecount);  
4158 - } 4184 + var t_zp_num = parseInt(discount.zp_num) * parseInt(discount.bs);
  4185 + if (th.data.duo_zp_num_arr[prom.id]) {
  4186 + t_zp_num += th.data.duo_zp_num_arr[prom.id];
  4187 + }
4159 4188
4160 - var t_zp_num=parseInt(discount.zp_num)*parseInt(discount.bs);  
4161 - if(th.data.duo_zp_num_arr[prom.id]){  
4162 - t_zp_num+=th.data.duo_zp_num_arr[prom.id];  
4163 - } 4189 + if (can_zp_num >= t_zp_num) {
  4190 + var json = {};
  4191 + json.prom_id = prom.id;
  4192 + json.prom_name = prom.name;
  4193 + send_gift_arr.push(json);
  4194 + th.data.duo_zp_num_arr[prom.id] = t_zp_num;
  4195 + }
4164 4196
4165 - if(can_zp_num>=t_zp_num ) {  
4166 - var json={};  
4167 - json.prom_id=prom.id;  
4168 - json.prom_name=prom.name;  
4169 - send_gift_arr.push(json);  
4170 - th.data.duo_zp_num_arr[prom.id]=t_zp_num;  
4171 - } 4197 + }
  4198 + else {
  4199 + //---如果有打折的信息,赠送的信息,赠送的时候要判断是不是限购数量---
  4200 + if (discount && discount['goods_id'] && discount.limit_num >= discount.bs * discount.zp_num
  4201 + && discount.gift_storecount >= discount.bs * discount.zp_num) {
  4202 + //如果这礼品超了情况下
  4203 + if (no_gift_arr.indexOf(discount.gift_id) != -1) continue;
  4204 + var o = discount.goodsinfo;
  4205 + //-- 默认等于1,兼容旧的活动 --
  4206 +
  4207 + var newd = {
  4208 + goods_id: o.goods_id,
  4209 + goods_num: discount.bs * discount.zp_num, //是赠品的翻倍
  4210 + pick_id: list.pid,
  4211 + user_id: app.globalData.user_id,
  4212 + store_id: os.stoid,
  4213 + goods_price: 0,
  4214 + guide_id: ob.guide_id ? ob.guide_id : 0,
  4215 + guide_type: ob.guide_type ? ob.guide_type : 0,
  4216 + member_goods_price: 0,
  4217 + goods_name: o.goods_name,
  4218 + goods_sn: o.goods_sn,
  4219 + sku: o.sku,
  4220 + is_gift: 1,
  4221 + prom_id: p_item[0],
  4222 + prom_type: 3,
  4223 + selected: 1,
  4224 + gift_id: discount.gift_id,
  4225 + original_img: th.data.imgUrl + o.original_img
  4226 + };
  4227 +
  4228 + list2.goods.push(newd);
  4229 + var all_num = 0;
  4230 + var all_limit_num = 0;
  4231 +
  4232 + for (var i in alllist) {
  4233 + var list_item = alllist[i];
  4234 + if (list_item.pid == list.pid) continue;
  4235 + for (var j in list_item.goods) {
  4236 + //如果赠品的ID一样,要进行统计数量
  4237 + if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id) {
  4238 + all_num += list_item.goods[j].goods_num;
  4239 + }
  4240 + if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id && list_item.goods[j].prom_id == p_item[0]) {
  4241 + all_limit_num += list_item.goods[j].goods_num;
  4242 + }
4172 4243
4173 - }  
4174 - else  
4175 - {  
4176 - //---如果有打折的信息,赠送的信息,赠送的时候要判断是不是限购数量---  
4177 - if (discount && discount['goods_id'] && discount.limit_num >= discount.bs * discount.zp_num  
4178 - && discount.gift_storecount >= discount.bs * discount.zp_num) {  
4179 - //如果这礼品超了情况下  
4180 - if (no_gift_arr.indexOf(discount.gift_id) != -1) continue;  
4181 - var o = discount.goodsinfo;  
4182 - //-- 默认等于1,兼容旧的活动 --  
4183 -  
4184 - var newd = {  
4185 - goods_id: o.goods_id,  
4186 - goods_num: discount.bs * discount.zp_num, //是赠品的翻倍  
4187 - pick_id: list.pid,  
4188 - user_id: app.globalData.user_id,  
4189 - store_id: os.stoid,  
4190 - goods_price: 0,  
4191 - guide_id: ob.guide_id ? ob.guide_id : 0,  
4192 - guide_type: ob.guide_type ? ob.guide_type : 0,  
4193 - member_goods_price: 0,  
4194 - goods_name: o.goods_name,  
4195 - goods_sn: o.goods_sn,  
4196 - sku: o.sku,  
4197 - is_gift: 1,  
4198 - prom_id: p_item[0],  
4199 - prom_type: 3,  
4200 - selected: 1,  
4201 - gift_id: discount.gift_id,  
4202 - original_img: th.data.imgUrl + o.original_img  
4203 - }; 4244 + }
  4245 + }
4204 4246
4205 - list2.goods.push(newd);  
4206 - var all_num = 0;  
4207 - var all_limit_num = 0;  
4208 -  
4209 - for (var i in alllist) {  
4210 - var list_item = alllist[i];  
4211 - if(list_item.pid==list.pid) continue;  
4212 - for (var j in list_item.goods) {  
4213 - //如果赠品的ID一样,要进行统计数量  
4214 - if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id) {  
4215 - all_num += list_item.goods[j].goods_num;  
4216 - }  
4217 - if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id && list_item.goods[j].prom_id == p_item[0]) {  
4218 - all_limit_num += list_item.goods[j].goods_num;  
4219 - }  
4220 -  
4221 - }  
4222 - } 4247 + //-- 赠品的数量超出库存数量和会员的限制,这里是保证所有的赠品部会超出 --
  4248 + if (discount.gift_storecount < all_num + newd.goods_num || discount.limit_num < all_limit_num + newd.goods_num) {
  4249 + no_gift_arr.push(discount.gift_id);
  4250 + //--进入下一个循环 --
  4251 + continue;
  4252 + }
4223 4253
4224 - //-- 赠品的数量超出库存数量和会员的限制,这里是保证所有的赠品部会超出 --  
4225 - if (discount.gift_storecount < all_num+newd.goods_num || discount.limit_num <all_limit_num+newd.goods_num ) {  
4226 - no_gift_arr.push(discount.gift_id);  
4227 - //--进入下一个循环 --  
4228 - continue;  
4229 - }  
4230 4254
  4255 + var url = "/api/weshop/cart/delGift?store_id=" + newd.store_id + "&user_id=" +
  4256 + newd.user_id + "&goods_id=" + newd.goods_id + "&is_gift=1&pick_id=" + newd.pick_id + "&prom_id=" + newd.prom_id
  4257 + await getApp().request.promiseDelete(url, {})
4231 4258
4232 - var url = "/api/weshop/cart/delGift?store_id=" + newd.store_id + "&user_id=" +  
4233 - newd.user_id + "&goods_id=" + newd.goods_id + "&is_gift=1&pick_id=" + newd.pick_id + "&prom_id=" + newd.prom_id  
4234 - await getApp().request.promiseDelete(url, {})  
4235 -  
4236 - var add_data = null;  
4237 - await getApp().request.promisePost("/api/weshop/cart/save", {  
4238 - data: newd  
4239 - }).then(res => {  
4240 - if (res.data.code == 0) {  
4241 - add_data = res.data.data;  
4242 - }  
4243 - })  
4244 - if (add_data) {  
4245 - newd.id = add_data.id;  
4246 - list.goods.push(newd);  
4247 - }  
4248 - }  
4249 - } 4259 + var add_data = null;
  4260 + await getApp().request.promisePost("/api/weshop/cart/save", {
  4261 + data: newd
  4262 + }).then(res => {
  4263 + if (res.data.code == 0) {
  4264 + add_data = res.data.data;
4250 } 4265 }
4251 - 4266 + })
  4267 + if (add_data) {
  4268 + newd.id = add_data.id;
  4269 + list.goods.push(newd);
  4270 + }
4252 } 4271 }
4253 - //--更新购物车的前台渲染--  
4254 - var rq_text = "requestData[" + cindex + "]";  
4255 - this.setData({  
4256 - [rq_text]: list  
4257 - }); 4272 + }
  4273 + }
4258 4274
4259 - var diff_text = "requestData[" + cindex + "].make_up_arr";  
4260 - //-- 如果有凑单的话 --  
4261 - if (make_up_arr.length > 0) {  
4262 - this.setData({  
4263 - [diff_text]: make_up_arr  
4264 - });  
4265 - } else {  
4266 - this.setData({  
4267 - [diff_text]: null  
4268 - });  
4269 - } 4275 + }
  4276 + //--更新购物车的前台渲染--
  4277 + var rq_text = "requestData[" + cindex + "]";
  4278 + this.setData({
  4279 + [rq_text]: list
  4280 + });
4270 4281
4271 - var gift_text = "requestData[" + cindex + "].send_gift_arr";  
4272 - //-- 如果有凑单的话 --  
4273 - if (send_gift_arr.length > 0) {  
4274 - this.setData({  
4275 - [gift_text]: send_gift_arr  
4276 - });  
4277 - } else {  
4278 - this.setData({  
4279 - [gift_text]: null  
4280 - });  
4281 - } 4282 + var diff_text = "requestData[" + cindex + "].make_up_arr";
  4283 + //-- 如果有凑单的话 --
  4284 + if (make_up_arr.length > 0) {
  4285 + this.setData({
  4286 + [diff_text]: make_up_arr
  4287 + });
  4288 + } else {
  4289 + this.setData({
  4290 + [diff_text]: null
  4291 + });
  4292 + }
  4293 +
  4294 + var gift_text = "requestData[" + cindex + "].send_gift_arr";
  4295 + //-- 如果有凑单的话 --
  4296 + if (send_gift_arr.length > 0) {
  4297 + this.setData({
  4298 + [gift_text]: send_gift_arr
  4299 + });
  4300 + } else {
  4301 + this.setData({
  4302 + [gift_text]: null
  4303 + });
  4304 + }
4282 4305
4283 4306
4284 - }  
4285 - },  
4286 -  
4287 - //去凑单  
4288 - go_cou_dang: function (e) {  
4289 - var prom_id = e.currentTarget.dataset.prom_id;  
4290 - var url = "/pages/goods/goodsList/goodsList?prom_type=3&prom_id=" + prom_id;  
4291 - getApp().goto(url);  
4292 - },  
4293 -  
4294 - //导航跳转  
4295 - nav_goto: function (e) {  
4296 - var url = e.currentTarget.dataset.url;  
4297 - if (!url || url == '') return;  
4298 - if (url[0] != '/') url = '/' + url;  
4299 - getApp().goto(url);  
4300 - },  
4301 -  
4302 - refresh_input: function () {  
4303 - this.data.btn_click = 0;  
4304 - },  
4305 -  
4306 - imageLoad: function (e) {  
4307 - var imgwidth = e.detail.width;  
4308 - var imgheight = e.detail.height;  
4309 - //宽高比  
4310 - var ratio = imgwidth / imgheight;  
4311 - //计算的高度值  
4312 - var viewHeight = 715 / ratio;  
4313 - var hei = this.data.max_sw_height;  
4314 -  
4315 - if (hei < viewHeight) {  
4316 - this.setData({  
4317 - max_sw_height: viewHeight  
4318 - });  
4319 - }  
4320 - },  
4321 -  
4322 - go_url(e) {  
4323 - var url = e.currentTarget.dataset.url;  
4324 - getApp().goto(url);  
4325 - },  
4326 -  
4327 - //跳转到商品  
4328 - go_gd:function (e) {  
4329 - var user_id=getApp().globalData.user_id;  
4330 - if(!user_id) user_id=0;  
4331 - var gd= e.currentTarget.dataset.gd;  
4332 - var good_url="/pages/goods/goodsInfo/goodsInfo?goods_id=" + gd;  
4333 - var url="/api/weshop/activitylist/getGoodActInfo";  
4334 - var req_data={  
4335 - store_id:os.stoid,goodsidlist:gd,is_detail:1,user_id:user_id  
4336 - };  
4337 - //获取秒杀的多规格  
4338 - getApp().request.promiseGet(url, {data:req_data}).then(res=>{  
4339 - if(res.data.code==0 && res.data.data){  
4340 - if(res.data.data.length==1){  
4341 - var item=res.data.data[0];  
4342 - switch (item.prom_type){  
4343 - case 9:  
4344 - good_url= '/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo?goods_id=' + gd + '&group_id=' + item.act_id;  
4345 - break;  
4346 - case 8:  
4347 - good_url="/packageC/pages/presell/goodsInfo/goodsInfo?goods_id="+gd+"&prom_id="+item.act_id  
4348 - break;  
4349 - default:  
4350 - good_url="/pages/goods/goodsInfo/goodsInfo?goods_id="+gd+"&prom_id="+item.act_id+"&prom_type=1";  
4351 - break  
4352 - }  
4353 - }  
4354 - getApp().goto(good_url); 4307 + }
  4308 + },
4355 4309
4356 - } else {  
4357 - getApp().goto(good_url);  
4358 - }  
4359 - })  
4360 - }, 4310 + //去凑单
  4311 + go_cou_dang: function (e) {
  4312 + var prom_id = e.currentTarget.dataset.prom_id;
  4313 + var url = "/pages/goods/goodsList/goodsList?prom_type=3&prom_id=" + prom_id;
  4314 + getApp().goto(url);
  4315 + },
4361 4316
4362 - //赠品提示  
4363 - show_gift_toast:function () {  
4364 - wx.showToast({  
4365 - title: "请点击结算至提交订单页选择赠品",  
4366 - icon: 'none',  
4367 - duration: 2000  
4368 - }); 4317 + //导航跳转
  4318 + nav_goto: function (e) {
  4319 + var url = e.currentTarget.dataset.url;
  4320 + if (!url || url == '') return;
  4321 + if (url[0] != '/') url = '/' + url;
  4322 + getApp().goto(url);
  4323 + },
  4324 +
  4325 + refresh_input: function () {
  4326 + this.data.btn_click = 0;
  4327 + },
  4328 +
  4329 + imageLoad: function (e) {
  4330 + var imgwidth = e.detail.width;
  4331 + var imgheight = e.detail.height;
  4332 + //宽高比
  4333 + var ratio = imgwidth / imgheight;
  4334 + //计算的高度值
  4335 + var viewHeight = 715 / ratio;
  4336 + var hei = this.data.max_sw_height;
  4337 +
  4338 + if (hei < viewHeight) {
  4339 + this.setData({
  4340 + max_sw_height: viewHeight
  4341 + });
4369 } 4342 }
  4343 + },
  4344 +
  4345 + go_url(e) {
  4346 + var url = e.currentTarget.dataset.url;
  4347 + getApp().goto(url);
  4348 + },
  4349 +
  4350 + //跳转到商品
  4351 + go_gd: function (e) {
  4352 + var user_id = getApp().globalData.user_id;
  4353 + if (!user_id) user_id = 0;
  4354 + var gd = e.currentTarget.dataset.gd;
  4355 + var good_url = "/pages/goods/goodsInfo/goodsInfo?goods_id=" + gd;
  4356 + var url = "/api/weshop/activitylist/getGoodActInfo";
  4357 + var req_data = {
  4358 + store_id: os.stoid, goodsidlist: gd, is_detail: 1, user_id: user_id
  4359 + };
  4360 + //获取秒杀的多规格
  4361 + getApp().request.promiseGet(url, { data: req_data }).then(res => {
  4362 + if (res.data.code == 0 && res.data.data) {
  4363 + if (res.data.data.length == 1) {
  4364 + var item = res.data.data[0];
  4365 + switch (item.prom_type) {
  4366 + case 9:
  4367 + good_url = '/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo?goods_id=' + gd + '&group_id=' + item.act_id;
  4368 + break;
  4369 + case 8:
  4370 + good_url = "/packageC/pages/presell/goodsInfo/goodsInfo?goods_id=" + gd + "&prom_id=" + item.act_id
  4371 + break;
  4372 + default:
  4373 + good_url = "/pages/goods/goodsInfo/goodsInfo?goods_id=" + gd + "&prom_id=" + item.act_id + "&prom_type=1";
  4374 + break
  4375 + }
  4376 + }
  4377 + getApp().goto(good_url);
  4378 +
  4379 + } else {
  4380 + getApp().goto(good_url);
  4381 + }
  4382 + })
  4383 + },
  4384 +
  4385 + //赠品提示
  4386 + show_gift_toast: function () {
  4387 + wx.showToast({
  4388 + title: "请点击结算至提交订单页选择赠品",
  4389 + icon: 'none',
  4390 + duration: 2000
  4391 + });
  4392 + }
4370 4393
4371 }); 4394 });
4372 \ No newline at end of file 4395 \ No newline at end of file