This commit is contained in:
2023-12-28 10:16:52 +08:00
parent 65d42c0cc9
commit e630322a0a

View File

@@ -3132,17 +3132,14 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
String memberId = orderBasicInfo.getMemberId(); String memberId = orderBasicInfo.getMemberId();
BigDecimal refundAmount = orderBasicInfo.getRefundAmount(); BigDecimal refundAmount = orderBasicInfo.getRefundAmount();
// 查到原汇付支付id // 新逻辑
AdapayCallbackRecord adapayCallbackRecord = selectAdapayCallbackRecord(orderCode); String mode = pileMerchantInfoService.getDelayModeByMerchantId(orderBasicInfo.getMerchantId());
AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
List<OrderDetailInfoVO.OrderRefundInfo> orderRefundInfoList = orderLogic.getOrderRefundInfoList(orderBasicInfo);
// 获取appId if (CollectionUtils.isEmpty(orderRefundInfoList)) {
String wechatAppId = pileMerchantInfoService.queryAppIdByMerchantId(orderBasicInfo.getMerchantId()); // 获取appId
String wechatAppId = pileMerchantInfoService.queryAppIdByMerchantId(orderBasicInfo.getMerchantId());
// 通过支付id查询退款记录
String paymentId = adapayCallbackRecord.getPaymentId();
List<PaymentReverseResponse> paymentReverses = queryOrderAdapayRefund(orderBasicInfo);
if (CollectionUtils.isEmpty(paymentReverses)) {
// 如果没有退款过,重新执行一遍退款 // 如果没有退款过,重新执行一遍退款
ApplyRefundDTO applyRefundDTO = new ApplyRefundDTO(); ApplyRefundDTO applyRefundDTO = new ApplyRefundDTO();
applyRefundDTO.setOrderCode(orderCode); applyRefundDTO.setOrderCode(orderCode);
@@ -3154,9 +3151,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
// logger.info("重试订单退款response:{}", JSON.toJSONString(response)); // logger.info("重试订单退款response:{}", JSON.toJSONString(response));
} else { } else {
BigDecimal reversedAmt = BigDecimal.ZERO; BigDecimal reversedAmt = BigDecimal.ZERO;
for (PaymentReverseResponse paymentRevers : paymentReverses) { for (OrderDetailInfoVO.OrderRefundInfo orderRefundInfo : orderRefundInfoList) {
if (new BigDecimal(paymentRevers.getReversed_amt()).compareTo(reversedAmt) > 0) { if (new BigDecimal(orderRefundInfo.getReverseAmt()).compareTo(reversedAmt) > 0) {
reversedAmt = new BigDecimal(paymentRevers.getReversed_amt()); reversedAmt = new BigDecimal(orderRefundInfo.getReverseAmt());
} }
} }
// 如果历史撤销金额 等于 订单退款金额,则提示已经退款请耐心等待 // 如果历史撤销金额 等于 订单退款金额,则提示已经退款请耐心等待