【7.2.4】更新一个获取数据源信息的api

pull/38/MERGE
fengshuonan 2022-08-23 14:35:47 +08:00
parent 55847454b6
commit b9f5935ee3
4 changed files with 85 additions and 1 deletions

View File

@ -1,4 +1,3 @@
package cn.stylefeng.roses.kernel.rule.enums;
import lombok.Getter;
@ -60,4 +59,26 @@ public enum DbTypeEnum {
this.validateQuery = validateQuery;
}
/**
* url
*
* @author fengshuonan
* @date 2022/8/23 14:22
*/
public static String getTypeByUrl(String url) {
if (url == null) {
return MYSQL.getUrlWords();
}
if (url.contains(DbTypeEnum.ORACLE.getUrlWords())) {
return ORACLE.getUrlWords();
} else if (url.contains(DbTypeEnum.DM.getUrlWords())) {
return DM.getUrlWords();
} else if (url.contains(DbTypeEnum.MS_SQL.getUrlWords())) {
return MS_SQL.getUrlWords();
} else if (url.contains(DbTypeEnum.PG_SQL.getUrlWords())) {
return PG_SQL.getUrlWords();
}
return MYSQL.getUrlWords();
}
}

View File

@ -1,9 +1,12 @@
package cn.stylefeng.roses.kernel.dsctn.api;
import cn.stylefeng.roses.kernel.dsctn.api.exception.DatasourceContainerException;
import cn.stylefeng.roses.kernel.dsctn.api.pojo.DataBaseInfoDto;
import cn.stylefeng.roses.kernel.dsctn.api.pojo.DataSourceDto;
import cn.stylefeng.roses.kernel.dsctn.api.pojo.request.DatabaseInfoRequest;
import java.util.List;
/**
* api
*
@ -41,4 +44,12 @@ public interface DataSourceApi {
*/
void deleteByDatasourceCode(String datasourceCode);
/**
*
*
* @author fengshuonan
* @date 2022/8/23 14:03
*/
List<DataBaseInfoDto> getDatasourceList();
}

View File

@ -0,0 +1,34 @@
package cn.stylefeng.roses.kernel.dsctn.api.pojo;
import lombok.Data;
/**
* DTO
*
* @author fengshuonan
* @date 2022/8/23 14:06
*/
@Data
public class DataBaseInfoDto {
/**
* id
*/
private Long dbId;
/**
*
*/
private String dbType;
/**
*
*/
private String dbName;
/**
*
*/
private String remarks;
}

View File

@ -33,6 +33,7 @@ import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
import cn.stylefeng.roses.kernel.db.api.pojo.druid.DruidProperties;
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
import cn.stylefeng.roses.kernel.dsctn.api.exception.DatasourceContainerException;
import cn.stylefeng.roses.kernel.dsctn.api.pojo.DataBaseInfoDto;
import cn.stylefeng.roses.kernel.dsctn.api.pojo.DataSourceDto;
import cn.stylefeng.roses.kernel.dsctn.api.pojo.request.DatabaseInfoRequest;
import cn.stylefeng.roses.kernel.dsctn.context.DataSourceContext;
@ -45,6 +46,7 @@ import cn.stylefeng.roses.kernel.group.api.constants.GroupConstants;
import cn.stylefeng.roses.kernel.group.api.pojo.SysGroupDTO;
import cn.stylefeng.roses.kernel.group.api.pojo.SysGroupRequest;
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
import cn.stylefeng.roses.kernel.rule.enums.DbTypeEnum;
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
import com.alibaba.druid.pool.DruidDataSource;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -60,6 +62,7 @@ import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.List;
import java.util.stream.Collectors;
import static cn.stylefeng.roses.kernel.dsctn.api.constants.DatasourceContainerConstants.DATASOURCE_GROUP_CODE;
import static cn.stylefeng.roses.kernel.dsctn.api.constants.DatasourceContainerConstants.MASTER_DATASOURCE_NAME;
@ -108,6 +111,21 @@ public class DatabaseInfoServiceImpl extends ServiceImpl<DatabaseInfoMapper, Dat
DataSourceContext.removeDataSource(datasourceCode);
}
@Override
public List<DataBaseInfoDto> getDatasourceList() {
LambdaQueryWrapper<DatabaseInfo> wrapper = new LambdaQueryWrapper<>();
wrapper.select(DatabaseInfo::getDbId, DatabaseInfo::getDbName, DatabaseInfo::getRemarks, DatabaseInfo::getJdbcUrl);
List<DatabaseInfo> list = this.list(wrapper);
return list.stream().map(item -> {
DataBaseInfoDto dataBaseInfoDto = new DataBaseInfoDto();
BeanUtil.copyProperties(item, dataBaseInfoDto);
String type = DbTypeEnum.getTypeByUrl(item.getJdbcUrl());
dataBaseInfoDto.setDbType(type);
return dataBaseInfoDto;
}).collect(Collectors.toList());
}
@Override
@Transactional(rollbackFor = Exception.class)
public void del(DatabaseInfoRequest databaseInfoRequest) {