优化结构重构 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>未定义")
     }
 
     /**