fix(): saas修复报错

master
xinzirun 2024-09-20 11:07:28 +08:00
parent a258817f3f
commit 124cae3bb3
1 changed files with 10 additions and 57 deletions

View File

@ -1,20 +1,12 @@
package com.muyu.common.many.datasource; package com.muyu.common.many.datasource;
import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.fastjson2.JSON;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.utils.SpringUtils; import com.muyu.common.core.utils.SpringUtils;
import com.muyu.common.many.datasource.constents.DatasourceContent;
import com.muyu.common.many.datasource.domain.model.DataSourceInfo; import com.muyu.common.many.datasource.domain.model.DataSourceInfo;
import com.muyu.common.many.datasource.factory.DruidDataSourceFactory; import com.muyu.common.many.datasource.factory.DruidDataSourceFactory;
import com.muyu.common.many.datasource.role.DynamicDataSource; import com.muyu.common.many.datasource.role.DynamicDataSource;
import com.muyu.common.saas.domain.model.EntInfo; import com.muyu.common.saas.domain.model.EntInfo;
import com.muyu.common.saas.exception.SaaSException;
import com.muyu.common.system.domain.SysUser;
import com.muyu.common.system.remote.RemoteUserService;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -32,7 +24,7 @@ import java.util.Map;
*/ */
@Log4j2 @Log4j2
@Component @Component
public class ManyDataSource implements ApplicationRunner { public class ManyDataSource {
@PostConstruct @PostConstruct
public void init(){ public void init(){
@ -55,42 +47,17 @@ public class ManyDataSource implements ApplicationRunner {
private List<EntInfo> dataSourceInfoList(){ private List<EntInfo> dataSourceInfoList(){
RemoteUserService remoteUserService = SpringUtils.getBean(RemoteUserService.class); List<EntInfo> list = new ArrayList<>();
Result<List<SysUser>> tableDataInfoResult = remoteUserService.companyList(); list.add(
if (tableDataInfoResult==null){ EntInfo.builder()
throw new SaaSException("saas远调数据源错误"); .entCode("ent_4587")
} .ip("192.168.40.132")
List<SysUser> data = tableDataInfoResult.getData(); .port(3307)
if (tableDataInfoResult.getCode() ==Result.SUCCESS && data !=null){ .build()
List<EntInfo> list = new ArrayList<>(); );
for (SysUser row : data) { return list;
list.add(
EntInfo.builder()
.entCode(row.getDatabaseName())
.ip(DatasourceContent.IP)
.port(DatasourceContent.PORT)
.build()
);
}
return list;
}else {
log.error("远调数据源错误,远调数据为:{}", JSON.toJSONString(data));
return null;
}
} }
// private List<EntInfo> dataPrimarySourceInfoList(){
// List<EntInfo> list = new ArrayList<>();
// list.add(
// EntInfo.builder()
// .entCode()
// .ip(DatasourceContent.IP)
// .port(DatasourceContent.PORT)
// .build()
// );
// return list;
// }
@Bean @Bean
@Primary @Primary
public DynamicDataSource dynamicDataSource(DruidDataSourceFactory druidDataSourceFactory) { public DynamicDataSource dynamicDataSource(DruidDataSourceFactory druidDataSourceFactory) {
@ -112,18 +79,4 @@ public class ManyDataSource implements ApplicationRunner {
dynamicDataSource.setDefineTargetDataSources(dataSourceMap); dynamicDataSource.setDefineTargetDataSources(dataSourceMap);
return dynamicDataSource; return dynamicDataSource;
} }
@Override
public void run(ApplicationArguments args) throws Exception {
DruidDataSourceFactory druidDataSourceFactory = SpringUtils.getBean(DruidDataSourceFactory.class);
DynamicDataSource dynamicDataSource = SpringUtils.getBean(DynamicDataSource.class);
for (EntInfo entInfo : dataSourceInfoList()) {
DataSourceInfo dataSourceInfo = DataSourceInfo.hostAndPortBuild(
entInfo.getEntCode(), entInfo.getIp(), entInfo.getPort()
);
DruidDataSource druidDataSource = druidDataSourceFactory.create(dataSourceInfo);
dynamicDataSource.put(dataSourceInfo.getKey(), druidDataSource);
log.info("存储数据连接池为key:{}",dataSourceInfo.getKey());
}
}
} }