From 83cbce2ec50e88d47ea941e90a8449099de960e5 Mon Sep 17 00:00:00 2001 From: DaxPay Dev Date: Wed, 1 Jul 2026 12:29:51 +0800 Subject: [PATCH] =?UTF-8?q?refactor(context):=20PaymentAssistService?= =?UTF-8?q?=E8=BF=81=E5=85=A5common.context=E5=8C=85,=20ScopeManager/Filte?= =?UTF-8?q?r=E6=94=B9=E5=90=8D=E4=B8=BAContext=E7=B3=BB=E5=B9=B6=E8=BF=81?= =?UTF-8?q?=E5=87=BAold=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/service/develop/DevelopTradeService.java | 6 +++--- .../context}/PaymentAssistService.java | 4 +--- .../context/PaymentContextFilter.java} | 13 ++++++------- ...ScopeManager.java => PaymentContextManager.java} | 9 +++------ .../service/config/ChannelConfigService.java | 2 +- .../old/pay/event/TradeOrderEventService.java | 2 +- .../old/pay/service/assist/ChannelAuthService.java | 1 + .../callback/MerchantCallbackSendService.java | 2 +- .../old/pay/service/order/pay/PayOrderService.java | 2 +- .../payment/unipay/aop/PaymentVerifyAspect.java | 2 +- .../unipay/controller/ChannelAuthController.java | 2 +- 11 files changed, 20 insertions(+), 25 deletions(-) rename daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/{old/pay/service/assist => common/context}/PaymentAssistService.java (98%) rename daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/{old/pay/filter/PaymentScopeFilter.java => common/context/PaymentContextFilter.java} (74%) rename daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/common/context/{PaymentScopeManager.java => PaymentContextManager.java} (86%) diff --git a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/admin/service/develop/DevelopTradeService.java b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/admin/service/develop/DevelopTradeService.java index 643f08eeb..526d7e720 100644 --- a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/admin/service/develop/DevelopTradeService.java +++ b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/admin/service/develop/DevelopTradeService.java @@ -3,7 +3,7 @@ package cn.daxpay.open.payment.admin.service.develop; import cn.daxpay.open.payment.admin.param.develop.DevelopParam; import cn.daxpay.open.payment.admin.result.develop.DevelopPayResult; import cn.daxpay.open.payment.admin.result.develop.DevelopSignResult; -import cn.daxpay.open.payment.common.context.PaymentScopeManager; +import cn.daxpay.open.payment.common.context.PaymentContextManager; import cn.daxpay.open.payment.common.util.ObjectSignStrUtil; import cn.daxpay.open.payment.common.util.PaySignUtil; import cn.daxpay.open.payment.masterdata.constants.provider.result.PayProviderMethodResult; @@ -31,7 +31,7 @@ import java.util.List; public class DevelopTradeService { private final NormalPayService normalPayService; - private final PaymentScopeManager paymentScopeManager; + private final PaymentContextManager paymentContextManager; private final PayProviderMethodService payProviderMethodService; private final PayRouteStrategyCapabilitySupport payRouteStrategyCapabilitySupport; @@ -55,7 +55,7 @@ public class DevelopTradeService { signInfo = this.sign(param); } // 在支付作用域内执行, 初始化商户上下文, 使 mchNo/appId 等字段自动填充 - NormalPayResult payResult = paymentScopeManager.executeWithScope( + NormalPayResult payResult = paymentContextManager.executeWithScope( payParam.getMchNo(), payParam.getAppId(), () -> normalPayService.pay(payParam) ); diff --git a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/service/assist/PaymentAssistService.java b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/common/context/PaymentAssistService.java similarity index 98% rename from daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/service/assist/PaymentAssistService.java rename to daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/common/context/PaymentAssistService.java index d2774a5d8..dcf6abd0b 100644 --- a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/service/assist/PaymentAssistService.java +++ b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/common/context/PaymentAssistService.java @@ -1,4 +1,4 @@ -package cn.daxpay.open.payment.old.pay.service.assist; +package cn.daxpay.open.payment.common.context; import cn.daxpay.open.platform.core.enums.client.ClientEnum; import cn.daxpay.open.platform.core.exception.ValidationFailedException; @@ -6,7 +6,6 @@ import cn.daxpay.open.platform.core.exception.BizInfoException; import cn.daxpay.open.platform.core.code.CommonErrorCode; import cn.daxpay.open.platform.core.code.CommonCode; import cn.daxpay.open.platform.iam.service.client.ClientCodeService; -import cn.daxpay.open.payment.common.context.PaymentContext; import cn.daxpay.open.platform.core.exception.config.ConfigNotEnableException; import cn.daxpay.open.platform.core.exception.business.VerifySignFailedException; import cn.daxpay.open.platform.common.config.properties.PlatformConfigProperties; @@ -152,4 +151,3 @@ public class PaymentAssistService { } } } - diff --git a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/filter/PaymentScopeFilter.java b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/common/context/PaymentContextFilter.java similarity index 74% rename from daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/filter/PaymentScopeFilter.java rename to daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/common/context/PaymentContextFilter.java index 880d39d95..036d9fd12 100644 --- a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/filter/PaymentScopeFilter.java +++ b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/common/context/PaymentContextFilter.java @@ -1,6 +1,5 @@ -package cn.daxpay.open.payment.old.pay.filter; +package cn.daxpay.open.payment.common.context; -import cn.daxpay.open.payment.common.context.PaymentScopeManager; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; @@ -13,22 +12,22 @@ import org.springframework.web.filter.OncePerRequestFilter; import java.io.IOException; -/// # 支付作用域过滤器 +/// # 支付上下文过滤器 /// /// 在HTTP请求开始时开启作用域, 请求结束时关闭 @Component @RequiredArgsConstructor @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET) -public class PaymentScopeFilter extends OncePerRequestFilter implements Ordered { - private final PaymentScopeManager paymentScopeManager; +public class PaymentContextFilter extends OncePerRequestFilter implements Ordered { + private final PaymentContextManager paymentContextManager; @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { - paymentScopeManager.start(); + paymentContextManager.start(); try { filterChain.doFilter(request, response); } finally { - paymentScopeManager.end(); + paymentContextManager.end(); } } diff --git a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/common/context/PaymentScopeManager.java b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/common/context/PaymentContextManager.java similarity index 86% rename from daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/common/context/PaymentScopeManager.java rename to daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/common/context/PaymentContextManager.java index 8f186ccdc..5bf4836c8 100644 --- a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/common/context/PaymentScopeManager.java +++ b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/common/context/PaymentContextManager.java @@ -1,7 +1,5 @@ package cn.daxpay.open.payment.common.context; -import cn.daxpay.open.payment.common.context.PaymentContextHolder; -import cn.daxpay.open.payment.old.pay.service.assist.PaymentAssistService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; @@ -12,7 +10,7 @@ import java.util.function.Supplier; /// 为HTTP请求、定时任务、MQ消费者等场景提供统一的上下文生命周期管理 @Component @RequiredArgsConstructor -public class PaymentScopeManager { +public class PaymentContextManager { private final PaymentAssistService paymentAssistService; @@ -35,7 +33,7 @@ public class PaymentScopeManager { /// 在作用域内执行(自动管理生命周期, 同步执行) /// Lambda是同步执行的, 不是异步, 异常正常向上传播 - /// 若当前线程已绑定上下文(如HTTP请求已被PaymentScopeFilter绑定), 则复用之, 仅补初始化商户, 避免重复bind抛异常 + /// 若当前线程已绑定上下文(如HTTP请求已被PaymentContextFilter绑定), 则复用之, 仅补初始化商户, 避免重复bind抛异常 public T executeWithScope(String mchNo, String appId, Supplier action) { if (PaymentContextHolder.isBound()) { // 复用已有作用域, 仅初始化商户信息 @@ -52,7 +50,7 @@ public class PaymentScopeManager { /// 在作用域内执行(自动管理生命周期, 同步执行) /// Lambda是同步执行的, 不是异步, 异常正常向上传播 - /// 若当前线程已绑定上下文(如HTTP请求已被PaymentScopeFilter绑定), 则复用之, 仅补初始化商户, 避免重复bind抛异常 + /// 若当前线程已绑定上下文(如HTTP请求已被PaymentContextFilter绑定), 则复用之, 仅补初始化商户, 避免重复抛异常 public void executeWithScope(String mchNo, String appId, Runnable action) { if (PaymentContextHolder.isBound()) { // 复用已有作用域, 仅初始化商户信息 @@ -68,4 +66,3 @@ public class PaymentScopeManager { } } } - diff --git a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/merchant/service/config/ChannelConfigService.java b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/merchant/service/config/ChannelConfigService.java index c49ae03e8..5b16a984d 100644 --- a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/merchant/service/config/ChannelConfigService.java +++ b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/merchant/service/config/ChannelConfigService.java @@ -8,7 +8,7 @@ import cn.daxpay.open.payment.merchant.result.config.ChannelConfigResult; import cn.daxpay.open.payment.masterdata.constants.channel.service.PayChannelService; import cn.daxpay.open.payment.masterdata.config.entity.ChannelConfig; import cn.daxpay.open.payment.masterdata.constants.channel.result.PayChannelResult; -import cn.daxpay.open.payment.old.pay.service.assist.PaymentAssistService; +import cn.daxpay.open.payment.common.context.PaymentAssistService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; diff --git a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/event/TradeOrderEventService.java b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/event/TradeOrderEventService.java index 8f4af0ed8..144d1872d 100644 --- a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/event/TradeOrderEventService.java +++ b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/event/TradeOrderEventService.java @@ -3,7 +3,7 @@ package cn.daxpay.open.payment.old.pay.event; import cn.daxpay.open.platform.core.code.DaxPayCode; import cn.daxpay.open.payment.old.pay.dao.order.pay.PayOrderManager; import cn.daxpay.open.payment.old.pay.entity.order.pay.PayOrder; -import cn.daxpay.open.payment.old.pay.service.assist.PaymentAssistService; +import cn.daxpay.open.payment.common.context.PaymentAssistService; import cn.daxpay.open.payment.old.pay.service.trade.pay.PayCloseService; import cn.daxpay.open.payment.old.pay.service.trade.pay.PaySyncService; import lombok.RequiredArgsConstructor; diff --git a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/service/assist/ChannelAuthService.java b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/service/assist/ChannelAuthService.java index 62e186158..d1b527cbd 100644 --- a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/service/assist/ChannelAuthService.java +++ b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/service/assist/ChannelAuthService.java @@ -1,5 +1,6 @@ package cn.daxpay.open.payment.old.pay.service.assist; +import cn.daxpay.open.payment.common.context.PaymentAssistService; import cn.daxpay.open.payment.common.util.PaymentStrategyFactory; import cn.daxpay.open.payment.strategy.auth.AbsChannelAuthStrategy; import cn.daxpay.open.platform.common.json.util.JacksonUtil; diff --git a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/service/notice/callback/MerchantCallbackSendService.java b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/service/notice/callback/MerchantCallbackSendService.java index 427d006c1..2e6579d8b 100644 --- a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/service/notice/callback/MerchantCallbackSendService.java +++ b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/service/notice/callback/MerchantCallbackSendService.java @@ -12,7 +12,7 @@ import cn.daxpay.open.payment.old.pay.entity.notice.callback.MerchantCallbackTas import cn.daxpay.open.platform.core.enums.pay.notice.CallbackNoticeTypeEnum; import cn.daxpay.open.platform.core.enums.pay.notice.NoticeSendTypeEnum; import cn.daxpay.open.payment.old.pay.service.assist.PayPluginAssistService; -import cn.daxpay.open.payment.old.pay.service.assist.PaymentAssistService; +import cn.daxpay.open.payment.common.context.PaymentAssistService; import cn.daxpay.open.payment.old.pay.service.notice.MerchantNoticeAssistService; import cn.hutool.core.util.StrUtil; import cn.hutool.http.ContentType; diff --git a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/service/order/pay/PayOrderService.java b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/service/order/pay/PayOrderService.java index 0cb9c1bb0..787044ab5 100644 --- a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/service/order/pay/PayOrderService.java +++ b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/old/pay/service/order/pay/PayOrderService.java @@ -5,7 +5,7 @@ import cn.daxpay.open.platform.core.exception.operation.OperationFailException; import cn.daxpay.open.payment.old.pay.dao.order.pay.PayOrderManager; import cn.daxpay.open.payment.old.pay.entity.order.pay.PayOrder; import cn.daxpay.open.payment.old.pay.exception.TradeNotExistException; -import cn.daxpay.open.payment.old.pay.service.assist.PaymentAssistService; +import cn.daxpay.open.payment.common.context.PaymentAssistService; import cn.daxpay.open.payment.old.pay.service.trade.pay.PayCloseService; import cn.daxpay.open.payment.old.pay.service.trade.pay.PaySyncService; import lombok.RequiredArgsConstructor; diff --git a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/unipay/aop/PaymentVerifyAspect.java b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/unipay/aop/PaymentVerifyAspect.java index cc6f116f5..fe82b89fd 100644 --- a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/unipay/aop/PaymentVerifyAspect.java +++ b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/unipay/aop/PaymentVerifyAspect.java @@ -11,7 +11,7 @@ import cn.daxpay.open.payment.common.result.DaxResult; import cn.daxpay.open.payment.old.pay.anno.PaymentVerify; import cn.daxpay.open.payment.old.pay.service.assist.PayParamCapabilityValidator; import cn.daxpay.open.payment.old.pay.service.assist.PayParamRouteValidator; -import cn.daxpay.open.payment.old.pay.service.assist.PaymentAssistService; +import cn.daxpay.open.payment.common.context.PaymentAssistService; import cn.daxpay.open.payment.unipay.param.trade.pay.NormalPayParam; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/unipay/controller/ChannelAuthController.java b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/unipay/controller/ChannelAuthController.java index 69afa2b03..1885ae99f 100644 --- a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/unipay/controller/ChannelAuthController.java +++ b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/unipay/controller/ChannelAuthController.java @@ -12,7 +12,7 @@ import cn.daxpay.open.payment.unipay.result.assist.AuthUrlResult; import cn.daxpay.open.payment.common.util.DaxRes; import cn.daxpay.open.payment.old.pay.anno.PaymentVerify; import cn.daxpay.open.payment.old.pay.service.assist.ChannelAuthService; -import cn.daxpay.open.payment.old.pay.service.assist.PaymentAssistService; +import cn.daxpay.open.payment.common.context.PaymentAssistService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor;