资产展示

master
Yueng 2024-09-05 17:52:28 +08:00
parent b33d7ecfac
commit 0bf8e8962b
3 changed files with 98 additions and 18 deletions

View File

@ -63,6 +63,18 @@ public class DataRunNameController {
return success(dataRunNameService.getDataBaseTableName()); return success(dataRunNameService.getDataBaseTableName());
} }
/**
*
*
* @return
*/
@PostMapping("/extractDataTableNameShow")
@Operation(summary = "获取数据",description = "返回所有数据库以及所有表的结果集到资产展示")
public Result<List<DataName>> extractDataTableNameShow(){
return success(dataRunNameService.extractDataTableNameShow());
}
/** /**
* *
* @par ID * @par ID

View File

@ -31,6 +31,13 @@ public interface DataRunNameService {
*/ */
List<DataName> getDataBaseTableName(); List<DataName> getDataBaseTableName();
/**
*
*
* @return
*/
List<DataName> extractDataTableNameShow();
/** /**
* *
* @paracId ID * @paracId ID
@ -79,4 +86,6 @@ public interface DataRunNameService {
* @return * @return
*/ */
boolean addDeptAssetAuthorization(AssetAuthorization authorization); boolean addDeptAssetAuthorization(AssetAuthorization authorization);
} }

View File

@ -2,9 +2,7 @@ package com.muyu.server.service.impl;
import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidPooledConnection; import com.alibaba.druid.pool.DruidPooledConnection;
import com.alibaba.nacos.api.common.Constants;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.datascope.annotation.DataScope;
import com.muyu.common.domain.*; import com.muyu.common.domain.*;
import com.muyu.common.domain.enums.DataType; import com.muyu.common.domain.enums.DataType;
@ -24,7 +22,6 @@ import org.springframework.util.CollectionUtils;
import java.sql.*; import java.sql.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
@ -113,6 +110,83 @@ public class DataRunNameServiceImpl implements DataRunNameService {
return dataNames; 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 * @return
@ -374,22 +448,7 @@ public class DataRunNameServiceImpl implements DataRunNameService {
*/ */
@Override @Override
public List<TableNames> extractDataTableNames(AssetAuthorization assetAuthorization) { 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<>(); HashSet<TableNames> hashSet = new HashSet<>();
tableIdAndBasicIdByUserId.forEach(assetAuthorization1 -> { tableIdAndBasicIdByUserId.forEach(assetAuthorization1 -> {