From 7fa88d527aced7f79fc551fc7e988abdf242542d Mon Sep 17 00:00:00 2001 From: bootx Date: Sat, 27 Jan 2024 01:42:29 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E9=80=80=E6=AC=BE=E5=9B=9E=E8=B0=83?= =?UTF-8?q?=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _doc/Task.md | 5 +- .../order/PayRefundOrderController.java | 4 +- .../daxpay/code/PayRefundStatusEnum.java | 2 + .../order/RefundChannelOrderResult.java | 3 - .../result/order/RefundOrderResult.java | 12 +- .../daxpay/service/code/WeChatPayCode.java | 25 ++-- .../service/common/context/CallbackLocal.java | 2 +- .../alipay/service/AliPayCallbackService.java | 5 +- .../service/WeChatPayCallbackService.java | 12 +- .../wechat/service/WeChatPayService.java | 10 +- .../wechat/service/WeChatPaySyncService.java | 12 +- .../core/order/pay/entity/PayOrder.java | 4 +- .../refund/entity/PayRefundChannelOrder.java | 6 - .../order/refund/entity/PayRefundOrder.java | 4 + .../callback/service/PayCallbackService.java | 31 +++-- .../service/PayRefundCallbackService.java | 31 ++--- .../service/PayRefundAssistService.java | 3 +- .../factory/PayRepairStrategyFactory.java | 2 +- .../factory/RefundRepairStrategyFactory.java | 114 ------------------ .../repair/service/RefundRepairService.java | 60 +++++---- .../{pay => }/AliPayRepairStrategy.java | 2 +- .../{pay => }/CashPayRepairStrategy.java | 2 +- .../{pay => }/UnionPayRepairStrategy.java | 2 +- .../{pay => }/VoucherPayRepairStrategy.java | 2 +- .../{pay => }/WalletPayRepairStrategy.java | 2 +- .../{pay => }/WeChatPayRepairStrategy.java | 2 +- .../refund/AliRefundRepairStrategy.java | 29 ----- .../refund/CashRefundRepairStrategy.java | 29 ----- .../refund/UnionRefundRepairStrategy.java | 29 ----- .../refund/VoucherRefundRepairStrategy.java | 29 ----- .../refund/WalletRefundRepairStrategy.java | 24 ---- .../refund/WeChatRefundRepairStrategy.java | 29 ----- .../dto/order/refund/PayRefundOrderDto.java | 5 +- .../order/refund/RefundChannelOrderDto.java | 3 - .../param/order/PayRefundOrderQuery.java | 3 + 35 files changed, 137 insertions(+), 402 deletions(-) delete mode 100644 daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/factory/RefundRepairStrategyFactory.java rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/{pay => }/AliPayRepairStrategy.java (99%) rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/{pay => }/CashPayRepairStrategy.java (99%) rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/{pay => }/UnionPayRepairStrategy.java (98%) rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/{pay => }/VoucherPayRepairStrategy.java (99%) rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/{pay => }/WalletPayRepairStrategy.java (99%) rename daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/{pay => }/WeChatPayRepairStrategy.java (99%) delete mode 100644 daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/AliRefundRepairStrategy.java delete mode 100644 daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/CashRefundRepairStrategy.java delete mode 100644 daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/UnionRefundRepairStrategy.java delete mode 100644 daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/VoucherRefundRepairStrategy.java delete mode 100644 daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/WalletRefundRepairStrategy.java delete mode 100644 daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/WeChatRefundRepairStrategy.java diff --git a/_doc/Task.md b/_doc/Task.md index fab19eeb..f2a8b2bd 100644 --- a/_doc/Task.md +++ b/_doc/Task.md @@ -84,8 +84,11 @@ - [x] 去除各通道支付记录,统一为通道支付记录 - 2024-01-26: - [x] 优化支付修复时的触发来源的获取 + - [x] 优化支付回调处理, 处理各种错误 + - [x] 调整支付修复策略, 拆分为支付和退款修复两大类 +- 2024-01-27: + - 01-25支付宝对账单下载异常排查 - [ ] 增加退款同步策略, 对退款中的状态的退款订单进行处理 - - [ ] 调整支付修复策略, 拆分为支付和退款修复两大类 - **任务池** - [ ] 微信退款状态不一致补偿 - [ ] 支付SDK编写 diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/bootx/platform/daxpay/admin/controller/order/PayRefundOrderController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/bootx/platform/daxpay/admin/controller/order/PayRefundOrderController.java index 2cf2d8f2..54a291ed 100644 --- a/daxpay-single/daxpay-single-admin/src/main/java/cn/bootx/platform/daxpay/admin/controller/order/PayRefundOrderController.java +++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/bootx/platform/daxpay/admin/controller/order/PayRefundOrderController.java @@ -45,8 +45,8 @@ public class PayRefundOrderController { @Operation(summary = "查询单条") @GetMapping("/findById") - public ResResult findById(Long paymentId){ - return Res.ok(payRefundQueryService.findById(paymentId)); + public ResResult findById(Long id){ + return Res.ok(payRefundQueryService.findById(id)); } @Operation(summary = "通道退款订单列表查询") diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/code/PayRefundStatusEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/code/PayRefundStatusEnum.java index e4f41329..ed4e393d 100644 --- a/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/code/PayRefundStatusEnum.java +++ b/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/code/PayRefundStatusEnum.java @@ -20,6 +20,8 @@ public enum PayRefundStatusEnum { * 接口调用成功不代表成功 */ PROGRESS("progress","退款中"), + /** 部分成功 */ + PART_SUCCESS("part_success","部分成功"), SUCCESS("success","成功"), FAIL("fail","失败"); diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/result/order/RefundChannelOrderResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/result/order/RefundChannelOrderResult.java index 9fd27291..d60466d9 100644 --- a/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/result/order/RefundChannelOrderResult.java +++ b/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/result/order/RefundChannelOrderResult.java @@ -20,9 +20,6 @@ public class RefundChannelOrderResult { @Schema(description = "通道支付单id") private Long payChannelId; - @Schema(description = "支付网关订单号") - private String gatewayOrderNo; - @Schema(description = "异步支付方式") private boolean async; diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/result/order/RefundOrderResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/result/order/RefundOrderResult.java index 1a588686..494122bd 100644 --- a/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/result/order/RefundOrderResult.java +++ b/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/result/order/RefundOrderResult.java @@ -36,15 +36,21 @@ public class RefundOrderResult { @Schema(description = "剩余可退") private BigDecimal refundableBalance; + /** + * 异步支付通道发给网关的退款号, 用与将记录关联起来 + */ + @Schema(description = "支付网关订单号") + private String gatewayOrderNo; + + @Schema(description = "通道退款订单") + private List channels; + @Schema(description = "退款终端ip") private String clientIp; @Schema(description = "退款时间") private LocalDateTime refundTime; - @Schema(description = "通道退款订单") - private List channels; - /** * @see PayRefundStatusEnum */ diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/code/WeChatPayCode.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/code/WeChatPayCode.java index f6edbae0..093a755b 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/code/WeChatPayCode.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/code/WeChatPayCode.java @@ -92,28 +92,37 @@ public interface WeChatPayCode { // 交易状态 /** 支付成功 */ - String TRADE_SUCCESS = "SUCCESS"; + String PAY_SUCCESS = "SUCCESS"; /** 支付失败 */ - String TRADE_FAIL = "FAIL"; + String PAY_FAIL = "FAIL"; /** 退款 */ - String TRADE_REFUND = "REFUND"; + String PAY_REFUND = "REFUND"; /** 未支付 */ - String TRADE_NOTPAY = "NOTPAY"; + String PAY_NOTPAY = "NOTPAY"; /** 已关闭 */ - String TRADE_CLOSED = "CLOSED"; + String PAY_CLOSED = "CLOSED"; /** 已接收,等待扣款 */ - String TRADE_ACCEPT = "ACCEPT"; + String PAY_ACCEPT = "ACCEPT"; /** 已撤销(刷卡支付) */ - String TRADE_REVOKED = "REVOKED"; + String PAY_REVOKED = "REVOKED"; /** 用户支付中(刷卡支付) */ - String TRADE_USERPAYING = "USERPAYING"; + String PAY_USERPAYING = "USERPAYING"; + + /** 退款成功 */ + String REFUND_USERPAYING = "SUCCESS"; + + /** 退款异常 */ + String REFUND_CHANGE = "CHANGE"; + + /** 退款关闭 */ + String REFUND_REFUNDCLOSE = "REFUNDCLOSE"; /** 支付失败(刷卡支付) */ String TRADE_PAYERROR = "PAYERROR"; diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/common/context/CallbackLocal.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/common/context/CallbackLocal.java index dc7da569..4b8874c2 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/common/context/CallbackLocal.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/common/context/CallbackLocal.java @@ -44,7 +44,7 @@ public class CallbackLocal { private LocalDateTime finishTime; /** 支付修复ID */ - private Long payRepairOrderId; + private Long payRepairId; /** * 回调处理状态 diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/alipay/service/AliPayCallbackService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/alipay/service/AliPayCallbackService.java index 775d0309..7466bcd1 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/alipay/service/AliPayCallbackService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/alipay/service/AliPayCallbackService.java @@ -57,14 +57,15 @@ public class AliPayCallbackService extends AbsCallbackStrategy { public boolean verifyNotify() { Map params =PaymentContextLocal.get().getCallbackInfo().getCallbackParam(); String callReq = JSONUtil.toJsonStr(params); + log.info("支付宝发起回调 报文: {}", callReq); String appId = params.get(APP_ID); if (StrUtil.isBlank(appId)) { - log.error("支付宝回调报文 appId 为空 {}", callReq); + log.error("支付宝回调报文appId为空"); return false; } AliPayConfig alipayConfig = aliasConfigService.getConfig(); if (Objects.isNull(alipayConfig)) { - log.error("支付宝支付配置不存在: {}", callReq); + log.error("支付宝支付配置不存在"); return false; } try { diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/service/WeChatPayCallbackService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/service/WeChatPayCallbackService.java index 5de2dda3..80d0d313 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/service/WeChatPayCallbackService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/service/WeChatPayCallbackService.java @@ -43,7 +43,7 @@ public class WeChatPayCallbackService extends AbsCallbackStrategy { */ @Override public PayChannelEnum getChannel() { - return PayChannelEnum.ALI; + return PayChannelEnum.WECHAT; } /** @@ -57,7 +57,7 @@ public class WeChatPayCallbackService extends AbsCallbackStrategy { String appId = params.get(APPID); if (StrUtil.isBlank(appId)) { - log.warn("微信回调报文 appId 为空 {}", callReq); + log.warn("微信回调报文 appId 为空"); return false; } @@ -69,7 +69,7 @@ public class WeChatPayCallbackService extends AbsCallbackStrategy { // 支付回调信息校验 WeChatPayConfig weChatPayConfig = weChatPayConfigService.getConfig(); if (Objects.isNull(weChatPayConfig)) { - log.warn("微信支付配置不存在: {}", callReq); + log.warn("微信支付配置不存在"); return false; } return WxPayKit.verifyNotify(params, weChatPayConfig.getApiKeyV2(), SignType.HMACSHA256, null); @@ -121,11 +121,13 @@ public class WeChatPayCallbackService extends AbsCallbackStrategy { callbackInfo.setGatewayOrderNo(callbackParam.get(REFUND_ID)); // 退款订单Id callbackInfo.setOrderId(Long.valueOf(callbackParam.get(OUT_REFUND_NO))); - // 交易状态 - callbackInfo.setGatewayStatus(callbackParam.get(REFUND_STATUS)); // 退款金额 callbackInfo.setAmount(callbackParam.get(REFUND_FEE)); + // 交易状态 + PayStatusEnum payStatus = Objects.equals(callbackParam.get(REFUND_STATUS), REFUND_USERPAYING) ? PayStatusEnum.SUCCESS : PayStatusEnum.FAIL; + callbackInfo.setGatewayStatus(payStatus.getCode()); + // 退款时间 String timeEnd = callbackParam.get(SUCCESS_TIME); if (StrUtil.isNotBlank(timeEnd)) { diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/service/WeChatPayService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/service/WeChatPayService.java index 8faa7f52..144a321d 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/service/WeChatPayService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/service/WeChatPayService.java @@ -202,25 +202,25 @@ public class WeChatPayService { String resultCode = result.get(WeChatPayCode.RESULT_CODE); String errCode = result.get(WeChatPayCode.ERR_CODE); // 支付成功处理, - if (Objects.equals(resultCode, WeChatPayCode.TRADE_SUCCESS)) { + if (Objects.equals(resultCode, WeChatPayCode.PAY_SUCCESS)) { asyncPayInfo.setGatewayOrderNo(result.get(WeChatPayCode.TRANSACTION_ID)) .setPayComplete(true); return; } // 支付中, 发起轮训同步 - if (Objects.equals(resultCode, WeChatPayCode.TRADE_FAIL) - && Objects.equals(errCode, WeChatPayCode.TRADE_USERPAYING)) { + if (Objects.equals(resultCode, WeChatPayCode.PAY_FAIL) + && Objects.equals(errCode, WeChatPayCode.PAY_USERPAYING)) { SpringUtil.getBean(this.getClass()).rotationSync(payment); asyncPayInfo.setGatewayOrderNo(result.get(WeChatPayCode.TRANSACTION_ID)); return; } // 支付撤销 - if (Objects.equals(resultCode, WeChatPayCode.TRADE_REVOKED)) { + if (Objects.equals(resultCode, WeChatPayCode.PAY_REVOKED)) { throw new PayFailureException("用户已撤销支付"); } // 支付失败 if (Objects.equals(resultCode, WeChatPayCode.TRADE_PAYERROR) - || Objects.equals(resultCode, WeChatPayCode.TRADE_FAIL)) { + || Objects.equals(resultCode, WeChatPayCode.PAY_FAIL)) { String errorMsg = result.get(WeChatPayCode.ERR_CODE_DES); throw new PayFailureException(errorMsg); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/service/WeChatPaySyncService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/service/WeChatPaySyncService.java index 1b61d9b3..8c71b95c 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/service/WeChatPaySyncService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/wechat/service/WeChatPaySyncService.java @@ -68,25 +68,25 @@ public class WeChatPaySyncService { // 查询到订单的状态 String tradeStatus = result.get(WeChatPayCode.TRADE_STATE); // 支付完成 - if (Objects.equals(tradeStatus, WeChatPayCode.TRADE_SUCCESS) || Objects.equals(tradeStatus, WeChatPayCode.TRADE_ACCEPT)) { + if (Objects.equals(tradeStatus, WeChatPayCode.PAY_SUCCESS) || Objects.equals(tradeStatus, WeChatPayCode.PAY_ACCEPT)) { String timeEnd = result.get(WeChatPayCode.TIME_END); LocalDateTime time = LocalDateTimeUtil.parse(timeEnd, DatePattern.PURE_DATETIME_PATTERN); PaymentContextLocal.get().getPaySyncInfo().setPayTime(time); return syncResult.setSyncStatus(PaySyncStatusEnum.PAY_SUCCESS); } // 待支付 - if (Objects.equals(tradeStatus, WeChatPayCode.TRADE_NOTPAY) - || Objects.equals(tradeStatus, WeChatPayCode.TRADE_USERPAYING)) { + if (Objects.equals(tradeStatus, WeChatPayCode.PAY_NOTPAY) + || Objects.equals(tradeStatus, WeChatPayCode.PAY_USERPAYING)) { return syncResult.setSyncStatus(PaySyncStatusEnum.PAY_WAIT); } // 已退款/退款中 触发一下退款记录的查询 - if (Objects.equals(tradeStatus, WeChatPayCode.TRADE_REFUND)) { + if (Objects.equals(tradeStatus, WeChatPayCode.PAY_REFUND)) { this.syncRefundStatus(order, weChatPayConfig); } // 已关闭 - if (Objects.equals(tradeStatus, WeChatPayCode.TRADE_CLOSED) - || Objects.equals(tradeStatus, WeChatPayCode.TRADE_REVOKED) + if (Objects.equals(tradeStatus, WeChatPayCode.PAY_CLOSED) + || Objects.equals(tradeStatus, WeChatPayCode.PAY_REVOKED) || Objects.equals(tradeStatus, WeChatPayCode.TRADE_PAYERROR)) { return syncResult.setSyncStatus(PaySyncStatusEnum.CLOSED); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/pay/entity/PayOrder.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/pay/entity/PayOrder.java index b075307f..fc77a1bc 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/pay/entity/PayOrder.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/pay/entity/PayOrder.java @@ -54,9 +54,9 @@ public class PayOrder extends MpBaseEntity implements EntityBaseFunction createAsyncLast(List channelCodes) { - return create(channelCodes, true); - } - - /** - * 根据传入的支付类型批量创建策略, 异步支付在前面 - */ - public static List createAsyncFront(List channelCodes) { - return create(channelCodes, false); - } - - /** - * 根据传入的支付类型批量创建策略 - * @param asyncSort 是否异步支付在后面 - * @return 支付策略 - */ - private static List create(List channelCodes, boolean asyncSort) { - if (CollectionUtil.isEmpty(channelCodes)) { - return Collections.emptyList(); - } - - // 同步支付 - val syncChannels = channelCodes.stream() - .filter(code -> !ASYNC_TYPE_CODE.contains(code)) - .map(PayChannelEnum::findByCode) - .collect(Collectors.toList()); - - // 异步支付 - val asyncChannels = channelCodes.stream() - .filter(ASYNC_TYPE_CODE::contains) - .map(PayChannelEnum::findByCode) - .collect(Collectors.toList()); - - List sortList = new ArrayList<>(channelCodes.size()); - - // 异步在后面 - if (asyncSort) { - sortList.addAll(syncChannels); - sortList.addAll(asyncChannels); - } - else { - sortList.addAll(asyncChannels); - sortList.addAll(syncChannels); - } - - // 此处有一个根据Type的反转排序, - return sortList.stream() - .filter(Objects::nonNull) - .map(RefundRepairStrategyFactory::create) - .collect(Collectors.toList()); - } -} diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/service/RefundRepairService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/service/RefundRepairService.java index 3d26d874..da8ad061 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/service/RefundRepairService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/service/RefundRepairService.java @@ -59,7 +59,7 @@ public class RefundRepairService { PayChannelOrder payChannelOrder = payChannelOrderManager.findByPaymentIdAndChannel(payOrder.getId(), payOrder.getAsyncChannel()) .orElseThrow(DataNotExistException::new); // 异步通道退款单 - PayRefundChannelOrder refundChannelOrder = refundChannelOrderManager.findByPaymentIdAndChannel(refundOrder.getPaymentId(), payOrder.getAsyncChannel()) + PayRefundChannelOrder refundChannelOrder = refundChannelOrderManager.findByPaymentIdAndChannel(refundOrder.getId(), payOrder.getAsyncChannel()) .orElseThrow(DataNotExistException::new); // 根据不同的类型执行对应的修复逻辑 @@ -106,7 +106,7 @@ public class RefundRepairService { // 设置退款为完成状态 refundOrder.setStatus(PayRefundStatusEnum.SUCCESS.getCode()); refundChannelOrder.setStatus(PayRefundStatusEnum.SUCCESS.getCode()); - + payOrder.setStatus(afterPayRefundStatus.getCode()); // 更新订单和退款相关订单 payChannelOrderManager.updateById(payChannelOrder); payOrderManager.updateById(payOrder); @@ -124,42 +124,52 @@ public class RefundRepairService { * 退款失败, 将失败的退款金额归还回订单 */ private RefundRepairResult closeLocal(PayRefundOrder refundOrder, PayOrder payOrder, PayRefundChannelOrder refundChannelOrder, PayChannelOrder payChannelOrder) { + // 要返回的状态 + RefundRepairResult repairResult = new RefundRepairResult(); - // 更新通道支付单全部退款还是部分退款 - if (Objects.equals(payChannelOrder.getRefundableBalance(),0)){ - payChannelOrder.setStatus(PayStatusEnum.REFUNDED.getCode()); - } else { - payChannelOrder.setStatus(PayStatusEnum.PARTIAL_REFUND.getCode()); - } - - // 订单相关状态 + // 订单修复前状态 PayStatusEnum beforePayStatus = PayStatusEnum.findByCode(refundOrder.getStatus()); - PayStatusEnum afterPayRefundStatus; PayRefundStatusEnum beforeRefundStatus = PayRefundStatusEnum.findByCode(refundOrder.getStatus()); + repairResult.setBeforePayStatus(beforePayStatus) + .setBeforeRefundStatus(beforeRefundStatus); - // 判断订单是支付成功还是部分退款 - - - if (Objects.equals(payOrder.getRefundableBalance(),0)){ - afterPayRefundStatus = PayStatusEnum.REFUNDED; + // 退款失败返还后的余额 + int payOrderAmount = refundChannelOrder.getAmount() + payOrder.getRefundableBalance(); + int payChannelOrderAmount = refundChannelOrder.getAmount() + payChannelOrder.getRefundableBalance(); + // 退款失败返还后的余额+可退余额 == 订单金额 支付订单回退为为支付成功状态 + if (payOrderAmount == payOrder.getAmount()){ + payOrder.setStatus(PayStatusEnum.SUCCESS.getCode()); + // 说明这个退款只有异步这一个支付, 所以也可以直接回退 + payChannelOrder.setStatus(PayStatusEnum.SUCCESS.getCode()); + repairResult.setAfterPayStatus(PayStatusEnum.SUCCESS); } else { - afterPayRefundStatus = PayStatusEnum.PARTIAL_REFUND; + // 回归部分退款状态 + payOrder.setStatus(PayStatusEnum.PARTIAL_REFUND.getCode()); + repairResult.setAfterPayStatus(PayStatusEnum.PARTIAL_REFUND); } + // 更新支付订单相关的可退款金额 + payOrder.setRefundableBalance(payOrderAmount); + payChannelOrder.setRefundableBalance(payChannelOrderAmount); - // 设置退款为失败状态 - refundOrder.setStatus(PayRefundStatusEnum.FAIL.getCode()); - refundChannelOrder.setStatus(PayRefundStatusEnum.FAIL.getCode()); + // 判断退款订单是否只有异步通道一个关联的通道退款单, 退款值一致说明是一个 + if (Objects.equals(refundOrder.getAmount(), refundChannelOrder.getAmount())){ + // 退款单和通道退款单统一设置为失败 + refundOrder.setStatus(PayRefundStatusEnum.FAIL.getCode()); + refundChannelOrder.setStatus(PayRefundStatusEnum.FAIL.getCode()); + repairResult.setAfterRefundStatus(PayRefundStatusEnum.FAIL); + } else { + // 退款单设置为部分成功状态, 通道退款单设置为失败状态 + refundOrder.setStatus(PayRefundStatusEnum.FAIL.getCode()); + refundChannelOrder.setStatus(PayRefundStatusEnum.FAIL.getCode()); + repairResult.setAfterRefundStatus(PayRefundStatusEnum.PART_SUCCESS); + } // 更新订单和退款相关订单 payChannelOrderManager.updateById(payChannelOrder); payOrderManager.updateById(payOrder); refundOrderManager.updateById(refundOrder); refundChannelOrderManager.updateById(refundChannelOrder); - return new RefundRepairResult() - .setBeforePayStatus(beforePayStatus) - .setAfterPayStatus(afterPayRefundStatus) - .setBeforeRefundStatus(beforeRefundStatus) - .setAfterRefundStatus(PayRefundStatusEnum.FAIL); + return repairResult; } /** diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/pay/AliPayRepairStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/AliPayRepairStrategy.java similarity index 99% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/pay/AliPayRepairStrategy.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/AliPayRepairStrategy.java index 1a3653f9..1853c35a 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/pay/AliPayRepairStrategy.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/AliPayRepairStrategy.java @@ -1,4 +1,4 @@ -package cn.bootx.platform.daxpay.service.core.payment.repair.strategy.pay; +package cn.bootx.platform.daxpay.service.core.payment.repair.strategy; import cn.bootx.platform.daxpay.code.PayChannelEnum; import cn.bootx.platform.daxpay.code.PayStatusEnum; diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/pay/CashPayRepairStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/CashPayRepairStrategy.java similarity index 99% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/pay/CashPayRepairStrategy.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/CashPayRepairStrategy.java index 8c593ffd..5ee2b129 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/pay/CashPayRepairStrategy.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/CashPayRepairStrategy.java @@ -1,4 +1,4 @@ -package cn.bootx.platform.daxpay.service.core.payment.repair.strategy.pay; +package cn.bootx.platform.daxpay.service.core.payment.repair.strategy; import cn.bootx.platform.daxpay.code.PayChannelEnum; import cn.bootx.platform.daxpay.code.PayStatusEnum; diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/pay/UnionPayRepairStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/UnionPayRepairStrategy.java similarity index 98% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/pay/UnionPayRepairStrategy.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/UnionPayRepairStrategy.java index 7ae4a84c..1721b71e 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/pay/UnionPayRepairStrategy.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/UnionPayRepairStrategy.java @@ -1,4 +1,4 @@ -package cn.bootx.platform.daxpay.service.core.payment.repair.strategy.pay; +package cn.bootx.platform.daxpay.service.core.payment.repair.strategy; import cn.bootx.platform.daxpay.code.PayChannelEnum; import cn.bootx.platform.daxpay.service.func.AbsPayRepairStrategy; diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/pay/VoucherPayRepairStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/VoucherPayRepairStrategy.java similarity index 99% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/pay/VoucherPayRepairStrategy.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/VoucherPayRepairStrategy.java index 8c0bbaae..400c0865 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/pay/VoucherPayRepairStrategy.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/VoucherPayRepairStrategy.java @@ -1,4 +1,4 @@ -package cn.bootx.platform.daxpay.service.core.payment.repair.strategy.pay; +package cn.bootx.platform.daxpay.service.core.payment.repair.strategy; import cn.bootx.platform.daxpay.code.PayChannelEnum; import cn.bootx.platform.daxpay.code.PayStatusEnum; diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/pay/WalletPayRepairStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/WalletPayRepairStrategy.java similarity index 99% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/pay/WalletPayRepairStrategy.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/WalletPayRepairStrategy.java index 8c7b4ecb..c85767db 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/pay/WalletPayRepairStrategy.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/WalletPayRepairStrategy.java @@ -1,4 +1,4 @@ -package cn.bootx.platform.daxpay.service.core.payment.repair.strategy.pay; +package cn.bootx.platform.daxpay.service.core.payment.repair.strategy; import cn.bootx.platform.daxpay.code.PayChannelEnum; import cn.bootx.platform.daxpay.code.PayStatusEnum; diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/pay/WeChatPayRepairStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/WeChatPayRepairStrategy.java similarity index 99% rename from daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/pay/WeChatPayRepairStrategy.java rename to daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/WeChatPayRepairStrategy.java index 27f72fc2..bd1c18bd 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/pay/WeChatPayRepairStrategy.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/WeChatPayRepairStrategy.java @@ -1,4 +1,4 @@ -package cn.bootx.platform.daxpay.service.core.payment.repair.strategy.pay; +package cn.bootx.platform.daxpay.service.core.payment.repair.strategy; import cn.bootx.platform.daxpay.code.PayChannelEnum; import cn.bootx.platform.daxpay.code.PayStatusEnum; diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/AliRefundRepairStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/AliRefundRepairStrategy.java deleted file mode 100644 index 7cc75650..00000000 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/AliRefundRepairStrategy.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.bootx.platform.daxpay.service.core.payment.repair.strategy.refund; - -import cn.bootx.platform.daxpay.code.PayChannelEnum; -import cn.bootx.platform.daxpay.service.func.AbsRefundRepairStrategy; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; - -import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROTOTYPE; - -/** - * - * @author xxm - * @since 2024/1/26 - */ -@Slf4j -@Scope(SCOPE_PROTOTYPE) -@Service -@RequiredArgsConstructor -public class AliRefundRepairStrategy extends AbsRefundRepairStrategy { - /** - * 策略标识 - */ - @Override - public PayChannelEnum getChannel() { - return PayChannelEnum.ALI; - } -} diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/CashRefundRepairStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/CashRefundRepairStrategy.java deleted file mode 100644 index ed36552b..00000000 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/CashRefundRepairStrategy.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.bootx.platform.daxpay.service.core.payment.repair.strategy.refund; - -import cn.bootx.platform.daxpay.code.PayChannelEnum; -import cn.bootx.platform.daxpay.service.func.AbsRefundRepairStrategy; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; - -import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROTOTYPE; - -/** - * - * @author xxm - * @since 2024/1/26 - */ -@Slf4j -@Scope(SCOPE_PROTOTYPE) -@Service -@RequiredArgsConstructor -public class CashRefundRepairStrategy extends AbsRefundRepairStrategy { - /** - * 策略标识 - */ - @Override - public PayChannelEnum getChannel() { - return PayChannelEnum.CASH; - } -} diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/UnionRefundRepairStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/UnionRefundRepairStrategy.java deleted file mode 100644 index 4825e034..00000000 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/UnionRefundRepairStrategy.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.bootx.platform.daxpay.service.core.payment.repair.strategy.refund; - -import cn.bootx.platform.daxpay.code.PayChannelEnum; -import cn.bootx.platform.daxpay.service.func.AbsRefundRepairStrategy; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; - -import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROTOTYPE; - -/** - * - * @author xxm - * @since 2024/1/26 - */ -@Slf4j -@Scope(SCOPE_PROTOTYPE) -@Service -@RequiredArgsConstructor -public class UnionRefundRepairStrategy extends AbsRefundRepairStrategy { - /** - * 策略标识 - */ - @Override - public PayChannelEnum getChannel() { - return PayChannelEnum.UNION_PAY; - } -} diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/VoucherRefundRepairStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/VoucherRefundRepairStrategy.java deleted file mode 100644 index 5d36335a..00000000 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/VoucherRefundRepairStrategy.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.bootx.platform.daxpay.service.core.payment.repair.strategy.refund; - -import cn.bootx.platform.daxpay.code.PayChannelEnum; -import cn.bootx.platform.daxpay.service.func.AbsRefundRepairStrategy; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; - -import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROTOTYPE; - -/** - * - * @author xxm - * @since 2024/1/26 - */ -@Slf4j -@Scope(SCOPE_PROTOTYPE) -@Service -@RequiredArgsConstructor -public class VoucherRefundRepairStrategy extends AbsRefundRepairStrategy { - /** - * 策略标识 - */ - @Override - public PayChannelEnum getChannel() { - return PayChannelEnum.VOUCHER; - } -} diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/WalletRefundRepairStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/WalletRefundRepairStrategy.java deleted file mode 100644 index 39bdc064..00000000 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/WalletRefundRepairStrategy.java +++ /dev/null @@ -1,24 +0,0 @@ -package cn.bootx.platform.daxpay.service.core.payment.repair.strategy.refund; - -import cn.bootx.platform.daxpay.code.PayChannelEnum; -import cn.bootx.platform.daxpay.service.func.AbsRefundRepairStrategy; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; - -import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROTOTYPE; - -@Slf4j -@Scope(SCOPE_PROTOTYPE) -@Service -@RequiredArgsConstructor -public class WalletRefundRepairStrategy extends AbsRefundRepairStrategy { - /** - * 策略标识 - */ - @Override - public PayChannelEnum getChannel() { - return PayChannelEnum.WALLET; - } -} diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/WeChatRefundRepairStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/WeChatRefundRepairStrategy.java deleted file mode 100644 index caaac487..00000000 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/repair/strategy/refund/WeChatRefundRepairStrategy.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.bootx.platform.daxpay.service.core.payment.repair.strategy.refund; - -import cn.bootx.platform.daxpay.code.PayChannelEnum; -import cn.bootx.platform.daxpay.service.func.AbsRefundRepairStrategy; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; - -import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROTOTYPE; - -/** - * - * @author xxm - * @since 2024/1/26 - */ -@Slf4j -@Scope(SCOPE_PROTOTYPE) -@Service -@RequiredArgsConstructor -public class WeChatRefundRepairStrategy extends AbsRefundRepairStrategy { - /** - * 策略标识 - */ - @Override - public PayChannelEnum getChannel() { - return PayChannelEnum.WECHAT; - } -} diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/refund/PayRefundOrderDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/refund/PayRefundOrderDto.java index 28ac6aa3..add6baab 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/refund/PayRefundOrderDto.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/refund/PayRefundOrderDto.java @@ -2,7 +2,6 @@ package cn.bootx.platform.daxpay.service.dto.order.refund; import cn.bootx.platform.common.core.rest.dto.BaseDto; import cn.bootx.platform.daxpay.code.PayRefundStatusEnum; -import cn.bootx.platform.daxpay.entity.RefundableInfo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -10,7 +9,6 @@ import lombok.experimental.Accessors; import java.math.BigDecimal; import java.time.LocalDateTime; -import java.util.List; /** * 退款记录 @@ -33,6 +31,9 @@ public class PayRefundOrderDto extends BaseDto { @Schema(description = "退款号") private String refundNo; + @Schema(description = "支付网关订单号") + private String gatewayOrderNo; + @Schema(description = "标题") private String title; diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/refund/RefundChannelOrderDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/refund/RefundChannelOrderDto.java index 6fb97f39..c2437624 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/refund/RefundChannelOrderDto.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/refund/RefundChannelOrderDto.java @@ -28,9 +28,6 @@ public class RefundChannelOrderDto extends BaseDto { @Schema(description = "通道支付单id") private Long payChannelId; - @Schema(description = "支付网关订单号") - private String gatewayOrderNo; - @Schema(description = "异步支付方式") private boolean async; diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/order/PayRefundOrderQuery.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/order/PayRefundOrderQuery.java index ac1754ca..847fe92e 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/order/PayRefundOrderQuery.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/order/PayRefundOrderQuery.java @@ -30,6 +30,9 @@ public class PayRefundOrderQuery extends QueryOrder { @QueryParam(type = QueryParam.CompareTypeEnum.LIKE) private String businessNo; + @Schema(description = "支付网关订单号") + private String gatewayOrderNo; + @Schema(description = "标题") @QueryParam(type = QueryParam.CompareTypeEnum.LIKE) private String title;