From: Tang Cheng Date: Wed, 17 Jul 2019 14:40:34 +0000 (+0800) Subject: 优化结构重构 agent bean 逻辑 X-Git-Tag: 1.0.0^2~30 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=3328e843629cc28496a9e7331c1e5a3f1e2101fc;p=epayment%2Ffood_payapi.git 优化结构重构 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 00000000..35236893 --- /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 55f0697d..b0be4894 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 @@ class ConsumeAPIController { } 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>未定义") } /**