diff --git a/muyu-modules/muyu-data-source/muyu-data-source-common/src/main/java/com/muyu/data/source/domain/AssetStructure.java b/muyu-modules/muyu-data-source/muyu-data-source-common/src/main/java/com/muyu/data/source/domain/AssetStructure.java index 412be99..4e0a0b7 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-common/src/main/java/com/muyu/data/source/domain/AssetStructure.java +++ b/muyu-modules/muyu-data-source/muyu-data-source-common/src/main/java/com/muyu/data/source/domain/AssetStructure.java @@ -40,5 +40,10 @@ public class AssetStructure{ /**是否核心*/ private String coreOrNot; + /**表注释*/ + private String tableComment; + + /**类型*/ + private Integer type; } diff --git a/muyu-modules/muyu-data-source/muyu-data-source-common/src/main/java/com/muyu/data/source/domain/DatabaseTableInformation.java b/muyu-modules/muyu-data-source/muyu-data-source-common/src/main/java/com/muyu/data/source/domain/DatabaseTableInformation.java new file mode 100644 index 0000000..66c3ce9 --- /dev/null +++ b/muyu-modules/muyu-data-source/muyu-data-source-common/src/main/java/com/muyu/data/source/domain/DatabaseTableInformation.java @@ -0,0 +1,43 @@ +package com.muyu.data.source.domain; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * DatabaseTableInformation + * + * @author DeKangLiu + * on 2024/4/23 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DatabaseTableInformation { + + /**数据库信息id*/ + private Long id; + + /**数据库表名*/ + private String name; + + /**数据库表备注*/ + private String as; + + /**数据库表条数*/ + private Integer dataTotal; + + /**接入源名称*/ + private String accessSourceName; + + /**数据来源名称*/ + private String dataSourceSystemName; + + /**数据库名称*/ + private String databaseName; + + /**类型*/ + private Integer type; +} diff --git a/muyu-modules/muyu-data-source/muyu-data-source-common/src/main/java/com/muyu/data/source/domain/Structure.java b/muyu-modules/muyu-data-source/muyu-data-source-common/src/main/java/com/muyu/data/source/domain/Structure.java new file mode 100644 index 0000000..849dcb4 --- /dev/null +++ b/muyu-modules/muyu-data-source/muyu-data-source-common/src/main/java/com/muyu/data/source/domain/Structure.java @@ -0,0 +1,27 @@ +package com.muyu.data.source.domain; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * TestList + * + * @author DeKangLiu + * on 2024/4/24 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Structure { + /**数据库表信息对象*/ + private List databaseTableInformationList; + + /**资产结构对象*/ + private List assetStructureList; + +} diff --git a/muyu-modules/muyu-data-source/muyu-data-source-common/src/main/java/com/muyu/data/source/domain/model/DataBaseModel.java b/muyu-modules/muyu-data-source/muyu-data-source-common/src/main/java/com/muyu/data/source/domain/model/DataBaseModel.java new file mode 100644 index 0000000..f830c77 --- /dev/null +++ b/muyu-modules/muyu-data-source/muyu-data-source-common/src/main/java/com/muyu/data/source/domain/model/DataBaseModel.java @@ -0,0 +1,28 @@ +package com.muyu.data.source.domain.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 数据库对象 DataBaseModel + * + * @author DeKangLiu + * on 2024/4/23 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DataBaseModel { + + /** + * 数据库名称 + */ + private String tableName; + + /** + * 数据库 + */ +} diff --git a/muyu-modules/muyu-data-source/muyu-data-source-common/src/main/java/com/muyu/data/source/domain/model/DatabaseTableModel.java b/muyu-modules/muyu-data-source/muyu-data-source-common/src/main/java/com/muyu/data/source/domain/model/DatabaseTableModel.java new file mode 100644 index 0000000..75aa790 --- /dev/null +++ b/muyu-modules/muyu-data-source/muyu-data-source-common/src/main/java/com/muyu/data/source/domain/model/DatabaseTableModel.java @@ -0,0 +1,52 @@ +package com.muyu.data.source.domain.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 数据库表对象 DatabaseTable + * + * @author DeKangLiu + * on 2024/4/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DatabaseTableModel { + /**数据库表id*/ + private Long id; + + /**数据库表名*/ + private String tableName; + + /**字段名*/ + private String name; + + /**字段注释*/ + private String comment; + + /**是否核心*/ + private String isPrimaryKey; + + /**Java类型*/ + private String type; + + /**字段类型*/ + private String detailName; + + /**长度*/ + private Integer length; + + /**小数点*/ + private Integer decimalPlaces; + + /**是否为空*/ + private String isNull; + + /**默认值*/ + private String defaultValue; + +} diff --git a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DataSourceController.java b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DataSourceController.java index 9202891..81b84aa 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DataSourceController.java +++ b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DataSourceController.java @@ -3,8 +3,8 @@ package com.muyu.data.source.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; -import com.muyu.data.source.domain.AccessType; -import com.muyu.data.source.domain.AssetStructure; +import com.muyu.data.source.domain.*; +import com.muyu.data.source.domain.model.DatabaseTableModel; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -21,7 +21,6 @@ import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; import com.muyu.common.security.annotation.RequiresPermissions; -import com.muyu.data.source.domain.DataSource; import com.muyu.data.source.domain.req.DataSourceQueryReq; import com.muyu.data.source.domain.req.DataSourceSaveReq; import com.muyu.data.source.domain.req.DataSourceEditReq; @@ -127,4 +126,20 @@ public class DataSourceController extends BaseController { public Result synchronization(@RequestBody DataSource dataSource){ return dataSourceService.synchronization(dataSource); } + + @GetMapping("/findDataBaseTable") + public Result> findDataBaseTable(){ + return dataSourceService.findDataBaseTable(); + } + @GetMapping("/findAssetStructure") + public Result> findAssetStructure(){ + return dataSourceService.findAssetStructure(); + } + + @GetMapping("/findStructure") + public Result findStructure(){ + return dataSourceService.findStructure(); + } + + } diff --git a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/mapper/DataSourceMapper.java b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/mapper/DataSourceMapper.java index 3a48ee4..908bb8c 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/mapper/DataSourceMapper.java +++ b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/mapper/DataSourceMapper.java @@ -1,10 +1,13 @@ package com.muyu.data.source.mapper; +import java.util.ArrayList; import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.data.source.domain.AccessType; import com.muyu.data.source.domain.AssetStructure; import com.muyu.data.source.domain.DataSource; +import com.muyu.data.source.domain.DatabaseTableInformation; +import com.muyu.data.source.domain.model.DatabaseTableModel; import org.apache.ibatis.annotations.Param; /** @@ -20,4 +23,18 @@ public interface DataSourceMapper extends BaseMapper { void addAssets(@Param("assetStructure") List assetStructure); void addAssets1(AssetStructure assetStructure); + + List assetStructureList(); + + DatabaseTableModel findByName(@Param("databaseName") String databaseName, @Param("databaseTableName") String databaseTableName); + + List findByBaseName(@Param("databaseName") String databaseName); + + void addDatabaseTableInformation(@Param("databaseTableInformationList") List databaseTableInformationList); + + void addDatabaseTableInfo(@Param("databaseTableInformations") ArrayList databaseTableInformations); + + List findAssetStructure(); + + List findInformation(); } diff --git a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/DataSourceService.java b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/DataSourceService.java index 4dc8f1a..e5b1b6c 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/DataSourceService.java +++ b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/DataSourceService.java @@ -3,10 +3,9 @@ package com.muyu.data.source.service; import java.util.List; import com.muyu.common.core.domain.Result; -import com.muyu.data.source.domain.AccessType; -import com.muyu.data.source.domain.AssetStructure; -import com.muyu.data.source.domain.DataSource; +import com.muyu.data.source.domain.*; import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.data.source.domain.model.DatabaseTableModel; import com.muyu.data.source.domain.req.DataSourceSaveReq; /** @@ -30,4 +29,10 @@ public interface DataSourceService extends IService { Result synchronization(DataSource dataSource); + + Result> findDataBaseTable(); + + Result> findAssetStructure(); + + Result findStructure(); } diff --git a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/impl/DataSourceServiceImpl.java b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/impl/DataSourceServiceImpl.java index 69ffe42..66e3b01 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/impl/DataSourceServiceImpl.java +++ b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/impl/DataSourceServiceImpl.java @@ -8,14 +8,13 @@ import java.util.List; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.ObjUtils; import com.muyu.common.security.utils.SecurityUtils; -import com.muyu.data.source.domain.AccessType; -import com.muyu.data.source.domain.AssetStructure; +import com.muyu.data.source.domain.*; +import com.muyu.data.source.domain.model.DatabaseTableModel; import com.muyu.data.source.domain.req.DataSourceSaveReq; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.muyu.data.source.mapper.DataSourceMapper; -import com.muyu.data.source.domain.DataSource; import com.muyu.data.source.service.DataSourceService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -111,10 +110,11 @@ public class DataSourceServiceImpl extends ServiceImpl tableNames = new ArrayList<>(); + List databaseTableInformationList=dataSourceMapper.findByBaseName(dataSource.getDatabaseName()); + dataSourceMapper.addDatabaseTableInformation(databaseTableInformationList); List list = new ArrayList<>(); - String user=dataSource.getDatabaseUserName(); String password=dataSource.getDatabaseUserPassword(); String jdbcDriver="com.mysql.cj.jdbc.Driver"; @@ -140,21 +141,18 @@ public class DataSourceServiceImpl extends ServiceImpl> findDataBaseTable() { + List assetStructureList=dataSourceMapper.assetStructureList(); + List databaseTableList = new ArrayList<>(); + for (AssetStructure assetStructure : assetStructureList) { + DatabaseTableModel databaseTableModel=dataSourceMapper.findByName(assetStructure.getDatabaseName(),assetStructure.getDatabaseTableName()); + System.out.println(databaseTableModel); + databaseTableList.add(databaseTableModel); + } + return Result.success(databaseTableList); + } + + + @Override + public Result> findAssetStructure() { + List assetStructureList=dataSourceMapper.assetStructureList(); + return Result.success(assetStructureList); + } + + @Override + public Result findStructure() { + Structure structure = new Structure(); + List assetStructure = dataSourceMapper.findAssetStructure(); + structure.setAssetStructureList(assetStructure); + List databaseTableInformationList=dataSourceMapper.findInformation(); + structure.setDatabaseTableInformationList(databaseTableInformationList); + return Result.success(structure); + } + } diff --git a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/resources/mapper/dataSource/DataSourceMapper.xml b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/resources/mapper/dataSource/DataSourceMapper.xml index 549af72..29ab20b 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/resources/mapper/dataSource/DataSourceMapper.xml +++ b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/resources/mapper/dataSource/DataSourceMapper.xml @@ -49,22 +49,95 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" INSERT INTO `data_management`.`asset_structure` - (`access_source_name`, `data_source_system_name`, `database_name`, `database_table_name`, `data_volume`, `data_quantity`, `core_or_not`) + (`access_source_name`, `data_source_system_name`, `database_name`, `data_volume`, `data_quantity`, `core_or_not`) VALUES ( #{accessSourceName}, #{dataSourceSystemName}, #{databaseName}, - #{databaseTableName}, #{dataVolume}, #{dataQuantity}, 'Y' ) + + + INSERT INTO `data_management`.`database_table_information` + ( `name`, `as`, `dataTotal`) + VALUES + + ( + #{databaseTableInformationList.name}, + #{databaseTableInformationList.as}, + #{databaseTableInformationList.dataTotal} + ) + + + + + INSERT INTO `data_management`.`database_table_information` ( `name`, `as`, `dataTotal`, `access_source_name`, `data_source_system_name`, `database_name`) + VALUES + + + ( + #{databaseTableInformations.name}, + #{databaseTableInformations.as}, + #{databaseTableInformations.dataTotal}, + #{databaseTableInformations.accessSourceName}, + #{databaseTableInformations.dataSourceSystemName}, + #{databaseTableInformations.databaseName} + ) + + + + + + +