From de1adffa6a40c47a6aab258bd69218aed9760c78 Mon Sep 17 00:00:00 2001 From: banche Date: Thu, 24 Mar 2022 11:06:58 +0800 Subject: [PATCH] fix:服务卡订单立即支付限制库存限购 --- pages/user/order_list/order_list.js | 185 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 163 insertions(+), 22 deletions(-) diff --git a/pages/user/order_list/order_list.js b/pages/user/order_list/order_list.js index 8878190..aed79a2 100644 --- a/pages/user/order_list/order_list.js +++ b/pages/user/order_list/order_list.js @@ -2224,35 +2224,176 @@ Page({ }, // 卡项订单 - 立即支付 - pay(e) { + pay: async function(e) { let index = e.currentTarget.dataset.index; let item = this.data.cardList[index]; let order_sn = item.order_sn; let order_id = item.order_id; let store_id = app.globalData.setting.stoid; - // console.log('go1!!!!!!!!!!!!!!!!!!!!!!!!!',index,item,order_sn,store_id); + let user_id = oo.user_id; + let flag = true; + + + // 如果是普通购买或单独购买,不用判断 + // 如果是秒杀购买:1、判断活动是否变化;2、是否超出限购 + + let list = item.list; + for(const it of list) { + if(it.prom_type == 1) { + let act_details = null; + let redis_num = 0; + let promcardbuynum = 0; + let qty = it.qty; + + + await getApp().request.promiseGet('/api/ms/flash_sale/getNew/' + store_id + '/' + user_id + '/' + it.prom_id, {}).then(res => { + console.log('11111111====>>>'); + if(res.data.code == 0) { + console.log('当前的秒杀活动信息:', res.data.data); + act_details = res.data.data; + if(act_details.is_end == 1) { + wx.showModal({ + title: '提示', + content: '活动已结束,无法支付,请取消订单!', + showCancel: false, + }); + flag = false; + return false; + }; + if(act_details.id != it.prom_id) { + wx.showModal({ + title: '提示', + content: '活动发生了变化,无法支付,请取消订单,重新购买!', + showCancel: false, + }); + flag = false; + return false; + }; + }; + }); + + await getApp().request.promiseGet('/api/weshop/activitylist/getActLen/' + store_id + '/' + it.prom_type + '/' + it.prom_id, { + 1: 1 + }).then(res => { + console.log('222222222====>>>'); + if (res.data.code == 0) { + // 当前可以购买的数量 + console.log('redis当前可以购买的数量:', res.data.data); + redis_num = res.data.data; + // if(redis_num <=0) { + // wx.showModal({ + // title: '提示', + // content: '活动库存不足,无法支付,请取消订单!', + // showCancel: false, + // }); + // // flag = false; + // return true; + // }; + }; + }); + + await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum", { + data: { + store_id: store_id, + user_id: user_id, + card_id: it.card_id, + prom_type: it.prom_type, + prom_id: it.prom_id, + } + }).then(res => { + console.log('333333333====>>>'); + if (res.data.code == 0) { + console.log('已经购买的数量:', res.data.data); + promcardbuynum = res.data.data.promcardbuynum; + + + let limited = act_details.buy_limit; // 限购数量a + let buyedNum = promcardbuynum; // 自己已经购买的数量b + let canBuyNum = limited - buyedNum; // 自己还可购买的数量c + + + if(canBuyNum <= 0) { + wx.showModal({ + title: '提示', + content: '您已超出活动限购数量,无法支付,请取消订单!', + showCancel: false, + }); + flag = false; + return false; + }; + + if(limited > redis_num) { + if(canBuyNum <= redis_num) { + if(qty > canBuyNum) { + wx.showModal({ + title: '提示', + content: '您已超出活动限购数量,无法支付,请取消订单!', + showCancel: false, + }); + flag = false; + return false; + }; + + }; + + if(canBuyNum > redis_num) { + if(qty > redis_num) { + wx.showModal({ + title: '提示', + content: '活动库存不足,无法支付,请取消订单!', + showCancel: false, + }); + flag = false; + return false; + }; + + }; + }; + + if(limited <= redis_num) { + if(qty > canBuyNum) { + wx.showModal({ + title: '提示', + content: '您已超出活动限购数量,无法支付,请取消订单!', + showCancel: false, + }); + flag = false; + return false; + }; + }; + }; + }); + + }; + + }; + - app.request.post('/api/weshop/order/pay/createRechargeOrder', { - data: { - parentSn: order_sn, - store_id: store_id, - }, + if(flag) { + await app.request.promisePost('/api/weshop/order/pay/createRechargeOrder', { + data: { + parentSn: order_sn, + store_id: store_id, + }, + }).then(res => { + // success: function(res) { + var n = res.data.data; + self.weixinPay(n, function() { + app.showWarning('支付成功'); + + }, function() { + app.showWarning('支付失败'); + // setTimeout(function() { + // wx.reLaunch({ + // url: '/packageA/pages/cardList/cardList', + // }) + // }, 1000) + }); + // } + }); + }; + - success: function(res) { - var n = res.data.data; - self.weixinPay(n, function() { - app.showWarning('支付成功'); - - }, function() { - app.showWarning('支付失败'); - // setTimeout(function() { - // wx.reLaunch({ - // url: '/packageA/pages/cardList/cardList', - // }) - // }, 1000) - }); - } - }) }, //------调起支付框-------- -- libgit2 0.21.4