mirror of https://gitee.com/stylefeng/roses
【7.2.4】【db】数据源管理增加分组名称显示
parent
23f79b541e
commit
57b0132183
|
@ -52,4 +52,9 @@ public interface DatasourceContainerConstants {
|
||||||
*/
|
*/
|
||||||
int MULTI_DATA_SOURCE_EXCHANGE_AOP = 1;
|
int MULTI_DATA_SOURCE_EXCHANGE_AOP = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据源的分组标识
|
||||||
|
*/
|
||||||
|
String DATASOURCE_GROUP_CODE = "DATASOURCE";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,6 +54,13 @@
|
||||||
<artifactId>spring-boot-starter-web</artifactId>
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!--分组相关业务-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.stylefeng.roses</groupId>
|
||||||
|
<artifactId>group-spring-boot-starter</artifactId>
|
||||||
|
<version>${roses.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -119,4 +119,10 @@ public class DatabaseInfo extends BaseEntity {
|
||||||
@TableField(value = "del_flag", fill = FieldFill.INSERT)
|
@TableField(value = "del_flag", fill = FieldFill.INSERT)
|
||||||
private String delFlag;
|
private String delFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分组名称
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String groupName;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,6 +40,10 @@ import cn.stylefeng.roses.kernel.dsctn.modular.entity.DatabaseInfo;
|
||||||
import cn.stylefeng.roses.kernel.dsctn.modular.factory.DruidPropertiesFactory;
|
import cn.stylefeng.roses.kernel.dsctn.modular.factory.DruidPropertiesFactory;
|
||||||
import cn.stylefeng.roses.kernel.dsctn.modular.mapper.DatabaseInfoMapper;
|
import cn.stylefeng.roses.kernel.dsctn.modular.mapper.DatabaseInfoMapper;
|
||||||
import cn.stylefeng.roses.kernel.dsctn.modular.service.DatabaseInfoService;
|
import cn.stylefeng.roses.kernel.dsctn.modular.service.DatabaseInfoService;
|
||||||
|
import cn.stylefeng.roses.kernel.group.api.GroupApi;
|
||||||
|
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.constants.RuleConstants;
|
||||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||||
import com.alibaba.druid.pool.DruidDataSource;
|
import com.alibaba.druid.pool.DruidDataSource;
|
||||||
|
@ -50,12 +54,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
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;
|
import static cn.stylefeng.roses.kernel.dsctn.api.constants.DatasourceContainerConstants.MASTER_DATASOURCE_NAME;
|
||||||
import static cn.stylefeng.roses.kernel.dsctn.api.exception.enums.DatasourceContainerExceptionEnum.*;
|
import static cn.stylefeng.roses.kernel.dsctn.api.exception.enums.DatasourceContainerExceptionEnum.*;
|
||||||
|
|
||||||
|
@ -68,6 +74,9 @@ import static cn.stylefeng.roses.kernel.dsctn.api.exception.enums.DatasourceCont
|
||||||
@Service
|
@Service
|
||||||
public class DatabaseInfoServiceImpl extends ServiceImpl<DatabaseInfoMapper, DatabaseInfo> implements DatabaseInfoService {
|
public class DatabaseInfoServiceImpl extends ServiceImpl<DatabaseInfoMapper, DatabaseInfo> implements DatabaseInfoService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private GroupApi groupApi;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void add(DatabaseInfoRequest databaseInfoRequest) {
|
public void add(DatabaseInfoRequest databaseInfoRequest) {
|
||||||
|
@ -154,10 +163,22 @@ public class DatabaseInfoServiceImpl extends ServiceImpl<DatabaseInfoMapper, Dat
|
||||||
// 查询分页结果
|
// 查询分页结果
|
||||||
Page<DatabaseInfo> result = this.page(PageFactory.defaultPage(), queryWrapper);
|
Page<DatabaseInfo> result = this.page(PageFactory.defaultPage(), queryWrapper);
|
||||||
|
|
||||||
|
// 查询结果中有没有用户挂标签的,有的话就返回中文分组名称
|
||||||
|
SysGroupRequest sysGroupRequest = new SysGroupRequest();
|
||||||
|
sysGroupRequest.setGroupBizCode(DATASOURCE_GROUP_CODE);
|
||||||
|
List<SysGroupDTO> list = groupApi.findGroupList(sysGroupRequest, true);
|
||||||
|
|
||||||
// 更新密码
|
// 更新密码
|
||||||
List<DatabaseInfo> records = result.getRecords();
|
List<DatabaseInfo> records = result.getRecords();
|
||||||
for (DatabaseInfo record : records) {
|
for (DatabaseInfo record : records) {
|
||||||
record.setPassword("***");
|
record.setPassword("***");
|
||||||
|
|
||||||
|
// 增加分组名称
|
||||||
|
for (SysGroupDTO sysGroupDTO : list) {
|
||||||
|
if (record.getDbId().equals(sysGroupDTO.getBusinessId())) {
|
||||||
|
record.setGroupName(sysGroupDTO.getGroupName());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return PageResultFactory.createPageResult(result);
|
return PageResultFactory.createPageResult(result);
|
||||||
|
@ -290,6 +311,30 @@ public class DatabaseInfoServiceImpl extends ServiceImpl<DatabaseInfoMapper, Dat
|
||||||
// 拼接状态条件
|
// 拼接状态条件
|
||||||
queryWrapper.eq(ObjectUtil.isNotEmpty(databaseInfoRequest.getStatusFlag()), DatabaseInfo::getStatusFlag, databaseInfoRequest.getStatusFlag());
|
queryWrapper.eq(ObjectUtil.isNotEmpty(databaseInfoRequest.getStatusFlag()), DatabaseInfo::getStatusFlag, databaseInfoRequest.getStatusFlag());
|
||||||
|
|
||||||
|
// 拼接分组相关的查询条件
|
||||||
|
String conditionGroupName = databaseInfoRequest.getConditionGroupName();
|
||||||
|
List<Long> userBizIds;
|
||||||
|
if (ObjectUtil.isNotEmpty(conditionGroupName) && !conditionGroupName.equals(GroupConstants.ALL_GROUP_NAME)) {
|
||||||
|
|
||||||
|
// 如果是未分组,则查询当前用户已经分组的所有的业务id,然后not in即可
|
||||||
|
SysGroupRequest sysGroupRequest = new SysGroupRequest();
|
||||||
|
sysGroupRequest.setGroupBizCode(DATASOURCE_GROUP_CODE);
|
||||||
|
|
||||||
|
if (conditionGroupName.equals(GroupConstants.GROUP_DELETE_NAME)) {
|
||||||
|
|
||||||
|
// 本用户所有分过组的项目id集合
|
||||||
|
userBizIds = groupApi.findUserGroupDataList(sysGroupRequest);
|
||||||
|
queryWrapper.nested(ObjectUtil.isNotEmpty(userBizIds), i -> i.notIn(DatabaseInfo::getDbId, userBizIds));
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// 查询本用户在当前分组所有的业务id
|
||||||
|
sysGroupRequest.setGroupName(conditionGroupName);
|
||||||
|
userBizIds = groupApi.findUserGroupDataList(sysGroupRequest);
|
||||||
|
queryWrapper.nested(ObjectUtil.isNotEmpty(userBizIds), i -> i.in(DatabaseInfo::getDbId, userBizIds));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue