修改从订单列表执行立即付款时的执行逻辑

This commit is contained in:
赵毅 2025-09-17 16:05:48 +08:00
parent 3c87af65de
commit a732eab59f
4 changed files with 111 additions and 87 deletions

View File

@ -291,7 +291,8 @@ export default {
goToPay(item) { goToPay(item) {
// //
const transformedItems = item.commodity_order_item_list.map(goods => ({ const transformedItems = item.commodity_order_item_list.map(goods => ({
checked: true, isafterSale: true,
orderId: item.id,
commodity_goods_info: { commodity_goods_info: {
commodity_brief: "", commodity_brief: "",
commodity_id: goods.commodity_id, commodity_id: goods.commodity_id,

View File

@ -292,7 +292,8 @@ export default {
goToPay(item) { goToPay(item) {
// //
const transformedItems = item.commodity_order_item_list.map(goods => ({ const transformedItems = item.commodity_order_item_list.map(goods => ({
checked: true, isafterSale: true,
orderId: item.id,
commodity_goods_info: { commodity_goods_info: {
commodity_brief: "", commodity_brief: "",
commodity_id: goods.commodity_id, commodity_id: goods.commodity_id,

View File

@ -263,7 +263,8 @@ export default {
gotoPayment() { gotoPayment() {
// //
const transformedItems = this.orderInfo.commodity_order_item_list.map(goods => ({ const transformedItems = this.orderInfo.commodity_order_item_list.map(goods => ({
checked: true, isafterSale: true,
orderId: item.id,
commodity_goods_info: { commodity_goods_info: {
commodity_brief: "", commodity_brief: "",
commodity_id: goods.goods_id, commodity_id: goods.goods_id,

View File

@ -562,109 +562,130 @@ export default {
if (!isGroupBuyValid) break; if (!isGroupBuyValid) break;
} }
const params = { // isafterSaletrue
user_id: uni.getStorageSync('userId'), const hasAfterSaleItem = this.carList.some(item => item.isafterSale === true);
is_group_buy: isGroupBuyValid, const orderIdFromAfterSale = hasAfterSaleItem ? this.carList.find(item => item.isafterSale === true)?.orderId : null;
goods_list: Object.keys(this.supplierGroups).map(supplierId => {
const group = this.supplierGroups[supplierId];
const firstItem = group[0];
// id // trans_type
this.group_buy_activity_id = firstItem.commodity_goods_info.group_buy_activity_id; // : 71, App: 51
const systemInfo = uni.getSystemInfoSync();
let trans_type = 51; // App
// id //
const ztAddress = this.defZTAddress.find(adItem => adItem.id == supplierId) || {}; if (systemInfo.platform === 'devtools' || systemInfo.platform === 'unknown') {
trans_type = 71; //
return {
supplier_id: firstItem.supplier_id,
supplier_name: firstItem.supplier_name || '',
is_same_day: firstItem.commodity_goods_info.is_same_day,
receiving_name: ztAddress.name || '',
receiving_phone: ztAddress.phone || '',
receiving_address: ztAddress.address || '',
group_buy_activity_id: firstItem.commodity_goods_info.group_buy_activity_id,
goods_and_count: group.map(item => {
const activityInfo = item.commodity_goods_info.group_buy_activity_info;
const isGroupBuy = activityInfo &&
currentTime >= new Date(activityInfo.start_time).getTime() &&
currentTime <= new Date(activityInfo.end_time).getTime();
return {
goods_id: item.goods_id,
count: item.count,
price: isGroupBuy ? item.commodity_goods_info.group_buy_price : item.commodity_goods_info.sales_price,
freight: item.commodity_goods_info.freight,
}
})
}
})
} }
//
// #ifdef MP
trans_type = 71; //
// #endif
request(apiArr.createOrder, "POST", params).then(resVal => { // #ifdef APP-PLUS
// trans_type trans_type = 51; // App
// : 71, App: 51 // #endif
const systemInfo = uni.getSystemInfoSync();
let trans_type = 51; // App
//
if (systemInfo.platform === 'devtools' || systemInfo.platform === 'unknown') {
trans_type = 71; //
}
//
// #ifdef MP
trans_type = 71; //
// #endif
// #ifdef APP-PLUS
trans_type = 51; // App
// #endif
// isafterSaletruecreateOrder
if (hasAfterSaleItem && orderIdFromAfterSale) {
const param = { const param = {
order_id: resVal.order_id, order_id: orderIdFromAfterSale,
user_id: uni.getStorageSync('userId'), user_id: uni.getStorageSync('userId'),
trans_type: trans_type trans_type: trans_type
} }
request(apiArr.mergePreorder, "POST", param).then(res => { request(apiArr.mergePreorder, "POST", param).then(res => {
this.handleMergePreorderResponse(res, orderIdFromAfterSale);
})
} else {
//
const params = {
user_id: uni.getStorageSync('userId'),
is_group_buy: isGroupBuyValid,
goods_list: Object.keys(this.supplierGroups).map(supplierId => {
const group = this.supplierGroups[supplierId];
const firstItem = group[0];
if (res && res.timeStamp && res.nonceStr && res.package && res.signType && res.paySign) { // id
// this.group_buy_activity_id = firstItem.commodity_goods_info.group_buy_activity_id;
uni.requestPayment({
timeStamp: res.timeStamp, // id
nonceStr: res.nonceStr, const ztAddress = this.defZTAddress.find(adItem => adItem.id == supplierId) || {};
package: res.package,
signType: res.signType, return {
paySign: res.paySign, supplier_id: firstItem.supplier_id,
success: (payRes) => { supplier_name: firstItem.supplier_name || '',
const params = { is_same_day: firstItem.commodity_goods_info.is_same_day,
order_id: resVal.order_id, receiving_name: ztAddress.name || '',
from: 2, receiving_phone: ztAddress.phone || '',
group_buy_activity_id: this.group_buy_activity_id, receiving_address: ztAddress.address || '',
group_buy_activity_id: firstItem.commodity_goods_info.group_buy_activity_id,
goods_and_count: group.map(item => {
const activityInfo = item.commodity_goods_info.group_buy_activity_info;
const isGroupBuy = activityInfo &&
currentTime >= new Date(activityInfo.start_time).getTime() &&
currentTime <= new Date(activityInfo.end_time).getTime();
return {
goods_id: item.goods_id,
count: item.count,
price: isGroupBuy ? item.commodity_goods_info.group_buy_price : item.commodity_goods_info.sales_price,
freight: item.commodity_goods_info.freight,
} }
request(apiArr.queryOrder, "POST", params).then(res => { })
this.verifyCode = res.verification_code }
this.boxshadow1 = true })
}) }
},
fail: (payErr) => { request(apiArr.createOrder, "POST", params).then(resVal => {
uni.showToast({ const param = {
title: payErr.errMsg == 'requestPayment:fail cancel' ? '用户取消支付' : '支付失败', order_id: resVal.order_id,
icon: 'none' user_id: uni.getStorageSync('userId'),
}) trans_type: trans_type
}, }
complete: () => { request(apiArr.mergePreorder, "POST", param).then(res => {
// this.handleMergePreorderResponse(res, resVal.order_id);
} })
})
}
},
// mergePreorder
handleMergePreorderResponse(res, orderId) {
if (res && res.timeStamp && res.nonceStr && res.package && res.signType && res.paySign) {
//
uni.requestPayment({
timeStamp: res.timeStamp,
nonceStr: res.nonceStr,
package: res.package,
signType: res.signType,
paySign: res.paySign,
success: (payRes) => {
const params = {
order_id: orderId,
from: 2,
group_buy_activity_id: this.group_buy_activity_id,
}
request(apiArr.queryOrder, "POST", params).then(res => {
this.verifyCode = res.verification_code
this.boxshadow1 = true
}) })
} else { },
console.error("获取支付参数失败,缺少必要参数") fail: (payErr) => {
uni.showToast({ uni.showToast({
title: '获取支付信息失败', title: payErr.errMsg == 'requestPayment:fail cancel' ? '用户取消支付' : '支付失败',
icon: 'none' icon: 'none'
}) })
},
complete: () => {
//
} }
}) })
}) } else {
console.error("获取支付参数失败,缺少必要参数")
uni.showToast({
title: '获取支付信息失败',
icon: 'none'
})
}
}
}, },
// //
copyAddress() { copyAddress() {