资产展示
parent
b33d7ecfac
commit
0bf8e8962b
|
@ -63,6 +63,18 @@ public class DataRunNameController {
|
|||
return success(dataRunNameService.getDataBaseTableName());
|
||||
}
|
||||
|
||||
/**
|
||||
* 资产展示
|
||||
* 连接数据库获取当前所有的数据库名称和所有字段
|
||||
* @return 所有数据库以及所有表的结果集
|
||||
*/
|
||||
@PostMapping("/extractDataTableNameShow")
|
||||
@Operation(summary = "获取数据",description = "返回所有数据库以及所有表的结果集到资产展示")
|
||||
public Result<List<DataName>> extractDataTableNameShow(){
|
||||
|
||||
return success(dataRunNameService.extractDataTableNameShow());
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据类型转换
|
||||
* @par 数据类型转换ID
|
||||
|
|
|
@ -31,6 +31,13 @@ public interface DataRunNameService {
|
|||
*/
|
||||
List<DataName> getDataBaseTableName();
|
||||
|
||||
/**
|
||||
* 资产展示
|
||||
* 连接数据库获取当前所有的数据库名称和所有字段
|
||||
* @return 所有数据库以及所有表的结果集
|
||||
*/
|
||||
List<DataName> extractDataTableNameShow();
|
||||
|
||||
/**
|
||||
* 数据类型转换
|
||||
* @paracId 数据类型转换ID
|
||||
|
@ -79,4 +86,6 @@ public interface DataRunNameService {
|
|||
* @return 返回结果
|
||||
*/
|
||||
boolean addDeptAssetAuthorization(AssetAuthorization authorization);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -2,9 +2,7 @@ package com.muyu.server.service.impl;
|
|||
|
||||
import com.alibaba.druid.pool.DruidDataSource;
|
||||
import com.alibaba.druid.pool.DruidPooledConnection;
|
||||
import com.alibaba.nacos.api.common.Constants;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.muyu.common.core.domain.Result;
|
||||
import com.muyu.common.datascope.annotation.DataScope;
|
||||
import com.muyu.common.domain.*;
|
||||
import com.muyu.common.domain.enums.DataType;
|
||||
|
@ -24,7 +22,6 @@ import org.springframework.util.CollectionUtils;
|
|||
|
||||
import java.sql.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
@ -113,6 +110,83 @@ public class DataRunNameServiceImpl implements DataRunNameService {
|
|||
return dataNames;
|
||||
}
|
||||
|
||||
/**
|
||||
* 资产展示
|
||||
* 连接数据库获取当前所有的数据库名称和所有字段
|
||||
* @return 所有数据库以及所有表的结果集
|
||||
*/
|
||||
@Override
|
||||
public List<DataName> extractDataTableNameShow() {
|
||||
//数据库名称查询
|
||||
List<DataName> dataNameList = dataNameService.list().stream()
|
||||
.map(DataName::dataNameBuild).toList();
|
||||
|
||||
//遍历获取数据数据库名称对象
|
||||
dataNameList.forEach(dataName -> {
|
||||
|
||||
//判断getId不为空
|
||||
if (StringUtils.isNotBlank(String.valueOf(dataName.getId()))) {
|
||||
|
||||
//使用安全管理工具获取当前登录的用户对象
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
//从登录用户对象中获取系统用户对象
|
||||
SysUser sysUser = loginUser.getSysUser();
|
||||
//从系统用户对象中获取用户ID
|
||||
Long userId = sysUser.getUserId();
|
||||
//从系统用户对象中获取部门ID
|
||||
Long deptId = sysUser.getDeptId();
|
||||
// 调用DataRunNameServiceImpl服务的findTableIdAndBasicIdByUserId方法
|
||||
// 传入用户ID,
|
||||
// 获取该用户授权的所有表ID和基础ID
|
||||
List<AssetAuthorization> tableIdAndBasicIdByUserId = dataRunNameMapper.findTableIdAndBasicIdByUserId(userId);
|
||||
|
||||
// 调用assetImpowerService服务的findTableIdAndBasicIdByDeptId方法
|
||||
// 传入部门ID,获取该部门下所有授权的表ID和基础ID
|
||||
List<AssetAuthorization> idByDeptId = dataRunNameMapper.findTableIdAndBasicIdByDeptId(deptId);
|
||||
//在取数据数据遍历里获取表名称查询方法
|
||||
tableIdAndBasicIdByUserId.forEach(tableIdAndBasicId -> {
|
||||
|
||||
this.dataDeptShow(tableIdAndBasicId,dataName);
|
||||
|
||||
});
|
||||
idByDeptId.forEach(tableIdAndBasicId -> {
|
||||
if (tableIdAndBasicId.getDeptId()==tableIdAndBasicId.getDeptId()){
|
||||
|
||||
this.dataDeptShow(tableIdAndBasicId,dataName);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
//返回所有数据
|
||||
return dataNameList;
|
||||
}
|
||||
|
||||
private void dataDeptShow(AssetAuthorization tableIdAndBasicId, DataName dataName) {
|
||||
List<TableNames> tableNamesList = tableRunNameService.list(new LambdaQueryWrapper<TableNames>()
|
||||
.eq(TableNames::getDataId, dataName.getId())
|
||||
.eq(TableNames::getId, tableIdAndBasicId.getTableId()))
|
||||
|
||||
.stream()
|
||||
.map(TableNames::tableNamesBuild)
|
||||
.toList();
|
||||
|
||||
//判断tableNamesList查询数据为空直接返回
|
||||
if (CollectionUtils.isEmpty(tableNamesList)) {
|
||||
return;
|
||||
}
|
||||
|
||||
//在每一次循环中创建一个新的集合
|
||||
ArrayList<TableNames> namesArrayList = new ArrayList<>(tableNamesList);
|
||||
//添加到数据库实体类集合字段上
|
||||
dataName.setTableNames(namesArrayList);
|
||||
//将添加好的实体类集合进行遍历操作
|
||||
log.info("数据库表名称:{}",dataName.getTableNames());
|
||||
if (CollectionUtils.isEmpty(dataName.getTableNames())) {return;}
|
||||
//在内部封装方法
|
||||
dataName.getTableNames().forEach(tableName1 -> {this.tableNameRun(tableName1,dataName);});
|
||||
}
|
||||
|
||||
/**
|
||||
* 连接数据库获取当前所有的数据库名称和所有字段
|
||||
* @return 所有数据库以及所有表的结果集
|
||||
|
@ -374,22 +448,7 @@ public class DataRunNameServiceImpl implements DataRunNameService {
|
|||
*/
|
||||
@Override
|
||||
public List<TableNames> extractDataTableNames(AssetAuthorization assetAuthorization) {
|
||||
//使用安全管理工具获取当前登录的用户对象
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
//从登录用户对象中获取系统用户对象
|
||||
SysUser sysUser = loginUser.getSysUser();
|
||||
//从系统用户对象中获取用户ID
|
||||
Long userId = sysUser.getUserId();
|
||||
//从系统用户对象中获取部门ID
|
||||
Long deptId = sysUser.getDeptId();
|
||||
// 调用DataRunNameServiceImpl服务的findTableIdAndBasicIdByUserId方法
|
||||
// 传入用户ID,
|
||||
// 获取该用户授权的所有表ID和基础ID
|
||||
List<AssetAuthorization> tableIdAndBasicIdByUserId = dataRunNameMapper.findTableIdAndBasicIdByUserId(userId);
|
||||
|
||||
// 调用assetImpowerService服务的findTableIdAndBasicIdByDeptId方法
|
||||
// 传入部门ID,获取该部门下所有授权的表ID和基础ID
|
||||
List<AssetAuthorization> idByDeptId = dataRunNameMapper.findTableIdAndBasicIdByDeptId(deptId);
|
||||
|
||||
HashSet<TableNames> hashSet = new HashSet<>();
|
||||
tableIdAndBasicIdByUserId.forEach(assetAuthorization1 -> {
|
||||
|
|
Loading…
Reference in New Issue