From d0131f4d976e0d10c885fcad8e26d1187e8db480 Mon Sep 17 00:00:00 2001
From: baize <3533151373@qq.com>
Date: Tue, 23 Apr 2024 09:28:42 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=20=20=20=20=E5=90=8C=E6=AD=A5=E8=B5=84?=
=?UTF-8?q?=E4=BA=A7=E7=BB=93=E6=9E=84=E5=88=B0=E6=95=B0=E6=8D=AE=E5=BA=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../data/source/domain/AssetStructure.java | 44 ++++++++++++++
.../muyu-data-source-server/pom.xml | 7 +++
.../controller/DataSourceController.java | 6 ++
.../data/source/mapper/DataSourceMapper.java | 6 ++
.../source/service/DataSourceService.java | 4 ++
.../service/impl/DataSourceServiceImpl.java | 58 +++++++++++++++++--
.../mapper/dataSource/DataSourceMapper.xml | 35 +++++++++++
7 files changed, 156 insertions(+), 4 deletions(-)
create mode 100644 muyu-modules/muyu-data-source/muyu-data-source-common/src/main/java/com/muyu/data/source/domain/AssetStructure.java
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
new file mode 100644
index 0000000..412be99
--- /dev/null
+++ b/muyu-modules/muyu-data-source/muyu-data-source-common/src/main/java/com/muyu/data/source/domain/AssetStructure.java
@@ -0,0 +1,44 @@
+package com.muyu.data.source.domain;
+
+import com.muyu.common.core.web.domain.BaseEntity;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * 资产结构对象 AssetStructure
+ *
+ * @author DeKangLiu
+ * on 2024/4/22
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class AssetStructure{
+ /** 接入源名称 */
+ private String accessSourceName;
+
+ /** 数据来源系统名称 */
+ private String dataSourceSystemName;
+
+ /** 数据库名称 */
+ private String databaseName;
+
+ /**数据库表名*/
+ private String databaseTableName;
+
+ /**数据量*/
+ private Integer dataVolume;
+
+ /**数据条数*/
+ private Integer dataQuantity;
+
+ /**是否核心*/
+ private String coreOrNot;
+
+
+}
diff --git a/muyu-modules/muyu-data-source/muyu-data-source-server/pom.xml b/muyu-modules/muyu-data-source/muyu-data-source-server/pom.xml
index c482806..a9bd46b 100644
--- a/muyu-modules/muyu-data-source/muyu-data-source-server/pom.xml
+++ b/muyu-modules/muyu-data-source/muyu-data-source-server/pom.xml
@@ -82,6 +82,13 @@
com.muyu
muyu-common-swagger
+
+ com.alibaba
+ druid
+ 1.2.20
+ compile
+
+
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 fec056b..9202891 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
@@ -4,6 +4,7 @@ import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.muyu.data.source.domain.AccessType;
+import com.muyu.data.source.domain.AssetStructure;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@@ -121,4 +122,9 @@ public class DataSourceController extends BaseController {
public Result testConnection(@RequestBody DataSourceSaveReq dataSourceSaveReq){
return dataSourceService.testConnection(dataSourceSaveReq);
}
+
+ @PostMapping("/synchronization")
+ public Result synchronization(@RequestBody DataSource dataSource){
+ return dataSourceService.synchronization(dataSource);
+ }
}
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 747edaf..3a48ee4 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
@@ -3,7 +3,9 @@ package com.muyu.data.source.mapper;
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 org.apache.ibatis.annotations.Param;
/**
* 数据源Mapper接口
@@ -14,4 +16,8 @@ import com.muyu.data.source.domain.DataSource;
public interface DataSourceMapper extends BaseMapper {
List findAccessType();
+
+ void addAssets(@Param("assetStructure") List assetStructure);
+
+ void addAssets1(AssetStructure assetStructure);
}
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 d58bcd6..4dc8f1a 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
@@ -4,6 +4,7 @@ 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.baomidou.mybatisplus.extension.service.IService;
import com.muyu.data.source.domain.req.DataSourceSaveReq;
@@ -26,4 +27,7 @@ public interface DataSourceService extends IService {
List findAccessType();
Result testConnection(DataSourceSaveReq dataSourceQueryReq);
+
+
+ Result synchronization(DataSource dataSource);
}
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 6c61a89..69ffe42 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
@@ -1,14 +1,15 @@
package com.muyu.data.source.service.impl;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.SQLException;
-import java.sql.Statement;
+import java.sql.*;
+import java.util.ArrayList;
+import java.util.Date;
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.req.DataSourceSaveReq;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -115,4 +116,53 @@ public class DataSourceServiceImpl extends ServiceImpl tableNames = new ArrayList<>();
+ List list = new ArrayList<>();
+
+
+ String user=dataSource.getDatabaseUserName();
+ String password=dataSource.getDatabaseUserPassword();
+ String jdbcDriver="com.mysql.cj.jdbc.Driver";
+ String url = "jdbc:mysql://" + dataSource.getHostAddress() + ":" + dataSource.getHostPort() + "/" + dataSource.getDatabaseName();
+ String query="show tables ";
+ try(Connection con=DriverManager.getConnection(url,user,password);
+ Statement stmt=con.createStatement();
+ ResultSet rs= stmt.executeQuery(query)) {
+ ResultSetMetaData rsmd = rs.getMetaData();
+ // 5. 处理查询结果
+ while (rs.next()) {
+ String tableName = rs.getString(1);
+ tableNames.add(tableName);
+ }
+ System.out.println(tableNames);
+ for (String tableName : tableNames) {
+ assetStructure.setAccessSourceName(dataSource.getAccessSourceName());
+ assetStructure.setDatabaseName(dataSource.getDatabaseName());
+ assetStructure.setDataSourceSystemName(dataSource.getDataSourceSystemName());
+ for (int a = 0; a < rsmd.getColumnCount(); a++) {
+ assetStructure.setDatabaseTableName(rsmd.getTableName(a+1));
+ assetStructure.setDataQuantity(rsmd.getColumnDisplaySize(a+1));
+ assetStructure.setDataVolume(rsmd.getColumnDisplaySize(a+1));
+ }
+ assetStructure.setDatabaseTableName(tableName);
+// assetStructure.setCreateBy(SecurityUtils.getUsername());
+// assetStructure.setCreateTime(new Date());
+ dataSourceMapper.addAssets1(assetStructure);
+ }
+ return Result.success("同步成功");
+
+ } catch (SQLException e) {
+ System.out.println("连接失败"+e.getMessage());
+ return Result.error("同步失败");
+ }
+
+ }
+
+
}
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 83fc0c2..549af72 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
@@ -29,6 +29,41 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select id, access_source_name, data_source_system_name, host_address, host_port, data_access_type_id, database_name, data_connection_parameter, initial_quantity, maximum_quantity, maximum_time, maximum_frequency, remark, create_by, create_time, update_by, update_time ,database_user_name ,database_user_password from data_source
+
+
+ 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`)
+ VALUES
+
+ (
+ #{assetStructure.accessSourceName},
+ #{assetStructure.dataSourceSystemName},
+ #{assetStructure.databaseName},
+ #{assetStructure.databaseTableName},
+ #{assetStructure.dataVolume},
+ #{assetStructure.dataQuantity},
+ 'Y'
+ )
+
+
+
+
+ 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`)
+ VALUES
+
+ (
+ #{accessSourceName},
+ #{dataSourceSystemName},
+ #{databaseName},
+ #{databaseTableName},
+ #{dataVolume},
+ #{dataQuantity},
+ 'Y'
+ )
+
+
+