fix(reconcile): 修复对账差异逻辑

- 修改 ReconcileDiscrepancyService 中的比较逻辑,解决远程和本地都存在时的差异判断问题
- 修改 WechatPayReconcileService 中的状态处理,确保正确设置交易状态
This commit is contained in:
DaxPay
2024-10-31 11:29:56 +08:00
parent dcae277c73
commit 1bfb09fc24
2 changed files with 3 additions and 5 deletions

View File

@@ -140,14 +140,12 @@ public class WechatPayReconcileService {
case WxPayConstants.ResultCode.FAIL -> tradeBo.setTradeStatus(TradeStatusEnum.FAIL.getCode());
case WxPayConstants.RefundStatus.CHANGE -> tradeBo.setTradeStatus(TradeStatusEnum.EXCEPTION.getCode());
}
tradeBo.setTradeStatus(TradeStatusEnum.SUCCESS.getCode());
}
// 撤销状态
if (Objects.equals(billDetail.getTradeState(), WxPayConstants.WxpayTradeStatus.REVOKED)) {
tradeBo.setTradeType(TradeTypeEnum.PAY.getCode())
.setTradeStatus(TradeStatusEnum.REVOKED.getCode());
}
return tradeBo;
}

View File

@@ -92,8 +92,8 @@ public class ReconcileDiscrepancyService {
discrepancies.add(reconcileAssistService.buildDiscrepancy(statement,channelDetail));
continue;
}
// 如果远程和本地都存在, 比对差异
if (this.reconcileDiff(channelDetail, localTrade)) {
// 如果远程和本地都存在, 判断是否有差异
if (!this.reconcileDiff(channelDetail, localTrade)) {
discrepancies.add(reconcileAssistService.buildDiscrepancy(statement, localTrade, channelDetail));
}
}
@@ -109,7 +109,7 @@ public class ReconcileDiscrepancyService {
}
/**
* 判断订单之间存是否有差异
* 判断订单之间存是否有差异, 没有差异返回true, 有差异返回false
* @param outDetail 下载的对账订单(通道交易)
* @param localTrade 本地交易订单(平台交易)
*/