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)