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;
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.many.datasource.constents.DatasourceContent;
import com.muyu.common.many.datasource.domain.model.DataSourceInfo;
import com.muyu.common.many.datasource.factory.DruidDataSourceFactory;
import com.muyu.common.many.datasource.role.DynamicDataSource;
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 org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;
@ -32,7 +24,7 @@ import java.util.Map;
*/
@Log4j2
@Component
public class ManyDataSource implements ApplicationRunner {
public class ManyDataSource {
@PostConstruct
public void init(){
@ -55,42 +47,17 @@ public class ManyDataSource implements ApplicationRunner {
private List<EntInfo> dataSourceInfoList(){
RemoteUserService remoteUserService = SpringUtils.getBean(RemoteUserService.class);
Result<List<SysUser>> tableDataInfoResult = remoteUserService.companyList();
if (tableDataInfoResult==null){
throw new SaaSException("saas远调数据源错误");
}
List<SysUser> data = tableDataInfoResult.getData();
if (tableDataInfoResult.getCode() ==Result.SUCCESS && data !=null){
List<EntInfo> list = new ArrayList<>();
for (SysUser row : data) {
list.add(
EntInfo.builder()
.entCode(row.getDatabaseName())
.ip(DatasourceContent.IP)
.port(DatasourceContent.PORT)
.build()
);
}
return list;
}else {
log.error("远调数据源错误,远调数据为:{}", JSON.toJSONString(data));
return null;
}
List<EntInfo> list = new ArrayList<>();
list.add(
EntInfo.builder()
.entCode("ent_4587")
.ip("192.168.40.132")
.port(3307)
.build()
);
return list;
}
// private List<EntInfo> dataPrimarySourceInfoList(){
// List<EntInfo> list = new ArrayList<>();
// list.add(
// EntInfo.builder()
// .entCode()
// .ip(DatasourceContent.IP)
// .port(DatasourceContent.PORT)
// .build()
// );
// return list;
// }
@Bean
@Primary
public DynamicDataSource dynamicDataSource(DruidDataSourceFactory druidDataSourceFactory) {
@ -112,18 +79,4 @@ public class ManyDataSource implements ApplicationRunner {
dynamicDataSource.setDefineTargetDataSources(dataSourceMap);
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());
}
}
}