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,41 +47,16 @@ public class ManyDataSource implements ApplicationRunner {
private List<EntInfo> dataSourceInfoList(){ 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<>(); List<EntInfo> list = new ArrayList<>();
for (SysUser row : data) {
list.add( list.add(
EntInfo.builder() EntInfo.builder()
.entCode(row.getDatabaseName()) .entCode("ent_4587")
.ip(DatasourceContent.IP) .ip("192.168.40.132")
.port(DatasourceContent.PORT) .port(3307)
.build() .build()
); );
}
return list; 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
@ -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());
}
}
} }