优化结构重构 agent bean 逻辑
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/ApplicationUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/ApplicationUtil.java
new file mode 100644
index 0000000..3523689
--- /dev/null
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/ApplicationUtil.java
@@ -0,0 +1,29 @@
+package com.supwisdom.dlpay.framework.util;
+
+import com.supwisdom.dlpay.agent.AgentPayService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.NoSuchBeanDefinitionException;
+import org.springframework.context.ApplicationContext;
+
+public class ApplicationUtil {
+ private static final Logger logger = LoggerFactory.getLogger(ApplicationUtil.class);
+
+ public static AgentPayService findAgentPayService(ApplicationContext context, String service) {
+ try {
+ Object bean = context.getBean(service);
+ if (bean instanceof AgentPayService) {
+ return (AgentPayService) bean;
+ } else {
+ return null;
+ }
+ } catch (NoSuchBeanDefinitionException ex) {
+ logger.error("can't create bean <%s> , ex %s", service, ex.getMessage());
+ return null;
+ } catch (BeansException ex) {
+ logger.error("can't create bean <%s> , ex %s", service, ex.getMessage());
+ return null;
+ }
+ }
+}
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
index 55f0697..b0be489 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
@@ -199,14 +199,9 @@
}
fun createAgentService(sourceType: String): AgentPayService {
- return applicationContext.getBean(sourceType + "Agent")?.let {
- if (it is AgentPayService) {
- it
- } else {
- null
- }
- } ?: throw TransactionCheckException(TradeErrorCode.BUSINESS_DEAL_ERROR,
- "支付类型<$sourceType>未定义")
+ return ApplicationUtil.findAgentPayService(applicationContext, sourceType + "Agent")
+ ?: throw TransactionCheckException(TradeErrorCode.BUSINESS_DEAL_ERROR,
+ "支付类型<$sourceType>未定义")
}
/**