diff --git a/esua-epdc/epdc-commons/epdc-commons-mybatis/pom.xml b/esua-epdc/epdc-commons/epdc-commons-mybatis/pom.xml
index 229e900f6..84b8051f9 100644
--- a/esua-epdc/epdc-commons/epdc-commons-mybatis/pom.xml
+++ b/esua-epdc/epdc-commons/epdc-commons-mybatis/pom.xml
@@ -65,6 +65,17 @@
org.postgresql
postgresql
+
+
+
+ com.alibaba.cloud
+ spring-cloud-alibaba-seata
+
+
+ io.seata
+ seata-all
+
+
diff --git a/esua-epdc/epdc-commons/epdc-commons-mybatis/src/main/java/com/elink/esua/epdc/commons/mybatis/config/DataSourceConfig.java b/esua-epdc/epdc-commons/epdc-commons-mybatis/src/main/java/com/elink/esua/epdc/commons/mybatis/config/DataSourceConfig.java
new file mode 100644
index 000000000..09958f30f
--- /dev/null
+++ b/esua-epdc/epdc-commons/epdc-commons-mybatis/src/main/java/com/elink/esua/epdc/commons/mybatis/config/DataSourceConfig.java
@@ -0,0 +1,167 @@
+package com.elink.esua.epdc.commons.mybatis.config;
+
+import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
+import com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties;
+import com.baomidou.mybatisplus.autoconfigure.MybatisPlusPropertiesCustomizer;
+import com.baomidou.mybatisplus.autoconfigure.SpringBootVFS;
+import com.baomidou.mybatisplus.core.MybatisConfiguration;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
+import com.baomidou.mybatisplus.core.injector.ISqlInjector;
+import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
+import io.seata.rm.datasource.DataSourceProxy;
+import org.apache.ibatis.mapping.DatabaseIdProvider;
+import org.apache.ibatis.plugin.Interceptor;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.beans.factory.ObjectProvider;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.io.Resource;
+import org.springframework.core.io.ResourceLoader;
+import org.springframework.util.Assert;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.ObjectUtils;
+import org.springframework.util.StringUtils;
+
+import javax.sql.DataSource;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * seata分布式事务数据源
+ *
+ * @author rongchao
+ * @Date 19-8-21
+ */
+@Configuration
+@EnableConfigurationProperties({MybatisPlusProperties.class})
+public class DataSourceConfig implements InitializingBean {
+
+ private final Logger logger = LoggerFactory.getLogger(getClass());
+
+ private final MybatisPlusProperties properties;
+ private final Interceptor[] interceptors;
+ private final ResourceLoader resourceLoader;
+ private final DatabaseIdProvider databaseIdProvider;
+ private final List configurationCustomizers;
+ private final List mybatisPlusPropertiesCustomizers;
+ private final ApplicationContext applicationContext;
+
+ public DataSourceConfig(MybatisPlusProperties properties, ObjectProvider interceptorsProvider, ResourceLoader resourceLoader, ObjectProvider databaseIdProvider, ObjectProvider> configurationCustomizersProvider, ObjectProvider> mybatisPlusPropertiesCustomizerProvider, ApplicationContext applicationContext) {
+ this.properties = properties;
+ this.interceptors = (Interceptor[]) interceptorsProvider.getIfAvailable();
+ this.resourceLoader = resourceLoader;
+ this.databaseIdProvider = (DatabaseIdProvider) databaseIdProvider.getIfAvailable();
+ this.configurationCustomizers = (List) configurationCustomizersProvider.getIfAvailable();
+ this.mybatisPlusPropertiesCustomizers = (List) mybatisPlusPropertiesCustomizerProvider.getIfAvailable();
+ this.applicationContext = applicationContext;
+ }
+
+ @Override
+ public void afterPropertiesSet() {
+ if (!CollectionUtils.isEmpty(this.mybatisPlusPropertiesCustomizers)) {
+ this.mybatisPlusPropertiesCustomizers.forEach((i) -> {
+ i.customize(this.properties);
+ });
+ }
+
+ this.checkConfigFileExists();
+ }
+
+ private void checkConfigFileExists() {
+ if (this.properties.isCheckConfigLocation() && StringUtils.hasText(this.properties.getConfigLocation())) {
+ Resource resource = this.resourceLoader.getResource(this.properties.getConfigLocation());
+ Assert.state(resource.exists(), "Cannot find config location: " + resource + " (please add config file or check your Mybatis configuration)");
+ }
+
+ }
+
+ @Bean
+ @ConditionalOnMissingBean
+ public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
+ DataSourceProxy dataSourceProxy = new DataSourceProxy(dataSource);
+ MybatisSqlSessionFactoryBean factory = new MybatisSqlSessionFactoryBean();
+ factory.setDataSource(dataSourceProxy);
+ factory.setVfs(SpringBootVFS.class);
+ if (StringUtils.hasText(this.properties.getConfigLocation())) {
+ factory.setConfigLocation(this.resourceLoader.getResource(this.properties.getConfigLocation()));
+ }
+
+ this.applyConfiguration(factory);
+ if (this.properties.getConfigurationProperties() != null) {
+ factory.setConfigurationProperties(this.properties.getConfigurationProperties());
+ }
+
+ if (!ObjectUtils.isEmpty(this.interceptors)) {
+ factory.setPlugins(this.interceptors);
+ }
+
+ if (this.databaseIdProvider != null) {
+ factory.setDatabaseIdProvider(this.databaseIdProvider);
+ }
+
+ if (StringUtils.hasLength(this.properties.getTypeAliasesPackage())) {
+ factory.setTypeAliasesPackage(this.properties.getTypeAliasesPackage());
+ }
+
+ if (this.properties.getTypeAliasesSuperType() != null) {
+ factory.setTypeAliasesSuperType(this.properties.getTypeAliasesSuperType());
+ }
+
+ if (StringUtils.hasLength(this.properties.getTypeHandlersPackage())) {
+ factory.setTypeHandlersPackage(this.properties.getTypeHandlersPackage());
+ }
+
+ if (!ObjectUtils.isEmpty(this.properties.resolveMapperLocations())) {
+ factory.setMapperLocations(this.properties.resolveMapperLocations());
+ }
+
+ if (StringUtils.hasLength(this.properties.getTypeEnumsPackage())) {
+ factory.setTypeEnumsPackage(this.properties.getTypeEnumsPackage());
+ }
+
+ GlobalConfig globalConfig = this.properties.getGlobalConfig();
+ if (this.applicationContext.getBeanNamesForType(MetaObjectHandler.class, false, false).length > 0) {
+ MetaObjectHandler metaObjectHandler = (MetaObjectHandler) this.applicationContext.getBean(MetaObjectHandler.class);
+ globalConfig.setMetaObjectHandler(metaObjectHandler);
+ }
+
+ if (this.applicationContext.getBeanNamesForType(IKeyGenerator.class, false, false).length > 0) {
+ IKeyGenerator keyGenerator = (IKeyGenerator) this.applicationContext.getBean(IKeyGenerator.class);
+ globalConfig.getDbConfig().setKeyGenerator(keyGenerator);
+ }
+
+ if (this.applicationContext.getBeanNamesForType(ISqlInjector.class, false, false).length > 0) {
+ ISqlInjector iSqlInjector = (ISqlInjector) this.applicationContext.getBean(ISqlInjector.class);
+ globalConfig.setSqlInjector(iSqlInjector);
+ }
+
+ factory.setGlobalConfig(globalConfig);
+ return factory.getObject();
+ }
+
+ private void applyConfiguration(MybatisSqlSessionFactoryBean factory) {
+ MybatisConfiguration configuration = this.properties.getConfiguration();
+ if (configuration == null && !StringUtils.hasText(this.properties.getConfigLocation())) {
+ configuration = new MybatisConfiguration();
+ }
+
+ if (configuration != null && !CollectionUtils.isEmpty(this.configurationCustomizers)) {
+ Iterator var3 = this.configurationCustomizers.iterator();
+
+ while (var3.hasNext()) {
+ ConfigurationCustomizer customizer = (ConfigurationCustomizer) var3.next();
+ customizer.customize(configuration);
+ }
+ }
+
+ factory.setConfiguration(configuration);
+ }
+}
diff --git a/esua-epdc/epdc-gateway/pom.xml b/esua-epdc/epdc-gateway/pom.xml
index d3fbd473c..56b578458 100644
--- a/esua-epdc/epdc-gateway/pom.xml
+++ b/esua-epdc/epdc-gateway/pom.xml
@@ -68,6 +68,7 @@
9094
+ 2
47.104.224.45
6379
elink@888
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml b/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml
index db13d4461..33d4e2d05 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml
@@ -42,17 +42,6 @@
${spring.boot.admin.version}
-
-
- com.alibaba.cloud
- spring-cloud-alibaba-seata
-
-
- io.seata
- seata-all
-
-
-
com.alibaba.cloud
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/config/WebConfig.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/config/WebConfig.java
index ba68370a2..89458d299 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/config/WebConfig.java
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/config/WebConfig.java
@@ -8,10 +8,8 @@
package com.elink.esua.epdc.config;
+import com.elink.esua.epdc.commons.tools.resolver.LoginUserHandlerMethodArgumentResolver;
import com.elink.esua.epdc.interceptor.AuthorizationInterceptor;
-import com.elink.esua.epdc.resolver.LoginUserHandlerMethodArgumentResolver;
-import com.elink.esua.epdc.interceptor.AuthorizationInterceptor;
-import com.elink.esua.epdc.resolver.LoginUserHandlerMethodArgumentResolver;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/resolver/LoginUserHandlerMethodArgumentResolver.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/resolver/LoginUserHandlerMethodArgumentResolver.java
deleted file mode 100644
index e4d9c04bb..000000000
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/resolver/LoginUserHandlerMethodArgumentResolver.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * Copyright (c) 2018 人人开源 All rights reserved.
- *
- * https://www.renren.io
- *
- * 版权所有,侵权必究!
- */
-
-package com.elink.esua.epdc.resolver;
-
-import com.elink.esua.epdc.annotation.LoginUser;
-import com.elink.esua.epdc.annotation.LoginUser;
-import com.elink.esua.epdc.entity.UserEntity;
-import com.elink.esua.epdc.interceptor.AuthorizationInterceptor;
-import com.elink.esua.epdc.service.UserService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.MethodParameter;
-import org.springframework.stereotype.Component;
-import org.springframework.web.bind.support.WebDataBinderFactory;
-import org.springframework.web.context.request.NativeWebRequest;
-import org.springframework.web.context.request.RequestAttributes;
-import org.springframework.web.method.support.HandlerMethodArgumentResolver;
-import org.springframework.web.method.support.ModelAndViewContainer;
-
-/**
- * 有@LoginUser注解的方法参数,注入当前登录用户
- *
- * @author Mark sunlightcs@gmail.com
- */
-@Component
-public class LoginUserHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver {
- @Autowired
- private UserService userService;
-
- @Override
- public boolean supportsParameter(MethodParameter parameter) {
- return parameter.getParameterType().isAssignableFrom(UserEntity.class) && parameter.hasParameterAnnotation(LoginUser.class);
- }
-
- @Override
- public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer container,
- NativeWebRequest request, WebDataBinderFactory factory) throws Exception {
- //获取用户ID
- Object object = request.getAttribute(AuthorizationInterceptor.USER_KEY, RequestAttributes.SCOPE_REQUEST);
- if(object == null){
- return null;
- }
-
- //获取用户信息
- UserEntity user = userService.getUserByUserId((Long)object);
-
- return user;
- }
-}
diff --git a/esua-epdc/epdc-module/epdc-demo/epdc-demo-server/pom.xml b/esua-epdc/epdc-module/epdc-demo/epdc-demo-server/pom.xml
index abca22391..8e83befcf 100644
--- a/esua-epdc/epdc-module/epdc-demo/epdc-demo-server/pom.xml
+++ b/esua-epdc/epdc-module/epdc-demo/epdc-demo-server/pom.xml
@@ -48,17 +48,6 @@
spring-cloud-starter-alibaba-nacos-discovery
-
-
-
- com.alibaba.cloud
- spring-cloud-alibaba-seata
-
-
- io.seata
- seata-all
-
-