|
|
@@ -720,14 +720,17 @@ public class WxPayServiceImpl implements WxPayService {
|
|
|
.eq(Account::getUserId, refundLog.getUserId()).update();
|
|
|
|
|
|
// 更新资金流水
|
|
|
+ // 注意:此时 balance 已在 applyWxRefund 阶段清零,
|
|
|
+ // beforeBalance 应反映退款前余额(即退款金额),afterBalance 为 0
|
|
|
var walletDetail = walletDetailService.getWalletDetailByOrderNo(refundNotification.getOutRefundNo(), WalletDetail.TYPE_退款);
|
|
|
+ var refundAmount = refundNotification.getAmount().getRefund().intValue();
|
|
|
walletDetailService.lambdaUpdate()
|
|
|
.set(WalletDetail::getStatus, WalletDetail.STATUS_已确认)
|
|
|
.set(WalletDetail::getTransactionId, refundNotification.getTransactionId())
|
|
|
.set(WalletDetail::getTransactionTime, successTime)
|
|
|
- .set(WalletDetail::getAmount, refundNotification.getAmount().getRefund().intValue())
|
|
|
- .set(WalletDetail::getBeforeBalance, account.getBalance())
|
|
|
- .set(WalletDetail::getAfterBalance, account.getBalance() - refundNotification.getAmount().getRefund().intValue())
|
|
|
+ .set(WalletDetail::getAmount, refundAmount)
|
|
|
+ .set(WalletDetail::getBeforeBalance, account.getBalance() + refundAmount)
|
|
|
+ .set(WalletDetail::getAfterBalance, account.getBalance())
|
|
|
.set(WalletDetail::getTransactionTime, successTime)
|
|
|
.eq(WalletDetail::getId, walletDetail.getId()).update();
|
|
|
LOGGER.info("微信退款回调{}:业务处理结束", notifyRes[2]);
|