From 1f05471dda652287337634a28f64d18e67a76f7d Mon Sep 17 00:00:00 2001 From: Guoqs <123456@jsowell.com> Date: Sat, 25 Jul 2026 13:57:39 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BF=AE=E5=A4=8D=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrderBasicInfoServiceImpl.java | 17 +++++++++++++++-- .../programlogic/DelayMerchantProgramLogic.java | 3 +++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 7af1df1b3..77bf0f932 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -1139,14 +1139,27 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { } // 余额支付:payAmount 已通过回调累加(可能含保险),payRecordAmount 仅含余额支付记录, // 直接比较两者即可,不应再加保险金额(避免双重计算) - if (!baseFieldsReady || !samePaymentAmount(orderBasicInfo.getPayAmount(), payRecordAmount)) { + if (!baseFieldsReady) { return OrderPaymentCheckResult.builder() .checkCompleted(true) .paymentEvidenceFound(true) .orderPaymentReady(false) .paymentAmount(payRecordAmount) .paymentTime(paymentTime) - .reason("支付流水存在,但订单主表支付字段不完整或金额不一致") + .reason("支付流水存在,但订单主表支付字段不完整(payStatus=" + payStatus + + ", payAmount=" + orderBasicInfo.getPayAmount() + + ", payTime=" + orderBasicInfo.getPayTime() + ")") + .build(); + } + if (!samePaymentAmount(orderBasicInfo.getPayAmount(), payRecordAmount)) { + return OrderPaymentCheckResult.builder() + .checkCompleted(true) + .paymentEvidenceFound(true) + .orderPaymentReady(false) + .paymentAmount(payRecordAmount) + .paymentTime(paymentTime) + .reason("支付流水存在,但订单主表支付金额(" + orderBasicInfo.getPayAmount() + + ")与支付明细汇总(" + payRecordAmount + ")不一致") .build(); } return OrderPaymentCheckResult.builder() diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java index 53bde990d..7f45776cc 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java @@ -356,6 +356,9 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic { giftBalancePay = stringBigDecimalMap.get("giftBalancePay"); } + // 更新支付金额 = 本金支付金额 + 赠送金支付金额,确保与 order_pay_record 汇总一致 + chargeAmount = principalBalancePay.add(giftBalancePay); + // 更新会员钱包 全部金额都用于支付订单 UpdateMemberBalanceDTO updateMemberBalanceDTO = UpdateMemberBalanceDTO.builder() .memberId(memberId)