refactor(context): PaymentAssistService迁入common.context包, ScopeManager/Filter改名为Context系并迁出old包

This commit is contained in:
DaxPay Dev
2026-07-01 12:29:51 +08:00
parent eb3ce2f7b7
commit 83cbce2ec5
11 changed files with 20 additions and 25 deletions

View File

@@ -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)
);

View File

@@ -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 {
}
}
}

View File

@@ -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();
}
}

View File

@@ -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> T executeWithScope(String mchNo, String appId, Supplier<T> 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 {
}
}
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;