From 34bf35a398c25f1a211d7a0578ca391e7ec26144 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=86=99=E6=9C=9D?= <13694051+wangxizhao123@user.noreply.gitee.com> Date: Tue, 14 May 2024 22:40:46 +0800 Subject: [PATCH] =?UTF-8?q?fase()=E9=9A=8F=E6=9C=BA=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=92=8C=E9=98=9F=E5=88=97=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/test/clinet/config/AccessConfig.java | 130 +++++++++++++++++ .../config/runner/AccessConfigRunner.java | 12 -- .../muyu/data/test/common/domain/Column.java | 29 ++++ .../data/test/common/domain/DataModel.java | 29 ++++ .../com/data/test/common/TestController.java | 67 ++------- .../com/data/test/server/TestService.java | 8 + .../test/server/impl/TestServiceImpl.java | 17 +++ .../muyu-goods-edition-common/pom.xml | 31 ++++ .../edition/dataSoutce/DataSourceConfig.java | 5 - .../muyu-goods-edition-remote/pom.xml | 26 ++++ .../muyu-goods-edition-server/pom.xml | 138 ++++++++++++++++++ .../src/main/resources/bootstrap.yml | 28 ++++ 12 files changed, 452 insertions(+), 68 deletions(-) create mode 100644 muyu-modules/muyu-data-test/muyu-data-test-common/src/main/java/muyu/data/test/common/domain/Column.java create mode 100644 muyu-modules/muyu-data-test/muyu-data-test-common/src/main/java/muyu/data/test/common/domain/DataModel.java create mode 100644 muyu-modules/muyu-goods-edition/muyu-goods-edition-common/pom.xml create mode 100644 muyu-modules/muyu-goods-edition/muyu-goods-edition-remote/pom.xml create mode 100644 muyu-modules/muyu-goods-edition/muyu-goods-edition-server/pom.xml create mode 100644 muyu-modules/muyu-goods-edition/muyu-goods-edition-server/src/main/resources/bootstrap.yml diff --git a/muyu-modules/muyu-data-test/muyu-data-test-client/src/main/java/muyu/data/test/clinet/config/AccessConfig.java b/muyu-modules/muyu-data-test/muyu-data-test-client/src/main/java/muyu/data/test/clinet/config/AccessConfig.java index f95a866..0739751 100644 --- a/muyu-modules/muyu-data-test/muyu-data-test-client/src/main/java/muyu/data/test/clinet/config/AccessConfig.java +++ b/muyu-modules/muyu-data-test/muyu-data-test-client/src/main/java/muyu/data/test/clinet/config/AccessConfig.java @@ -1,13 +1,143 @@ package muyu.data.test.clinet.config; +import lombok.extern.log4j.Log4j2; import muyu.data.test.clinet.config.runner.AccessConfigRunner; +import muyu.data.test.common.dataSoutce.DataSourceConfig; +import muyu.data.test.common.domain.DataModel; +import org.apache.poi.ss.formula.functions.T; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Import; +import java.awt.*; +import java.sql.*; +import java.util.*; +import java.util.List; +import java.util.stream.Collectors; + /** * 规则引擎客户端配置类 */ +@Log4j2 @ComponentScan @Import(value = AccessConfigRunner.class) public class AccessConfig { + public List getRabdomData(Long id, String tableName,Integer ruleLevel) { + List> listList = new ArrayList<>(); + Connection connection = DataSourceConfig.getConnection(id); + String sql = "select * from " + tableName; + try { + //获取原数据 + Statement statement = connection.createStatement(); + ResultSet resultSet = statement.executeQuery(sql); + PreparedStatement pst = connection.prepareStatement("select * from " + tableName); + log.info("元数据1:{}",resultSet); +// ResultSet resultSet1 = pst.executeQuery(); + //元数据信息 + ResultSetMetaData metaData = pst.getMetaData(); + //元数据数量 + int columnCount = metaData.getColumnCount(); + while (resultSet.next()){ + List list = new ArrayList<>(); + for (int i = 1; i <= columnCount; i++) { + String columnName = metaData.getColumnName(i); + log.info("字段名:{}",columnName); + String tableName1 = metaData.getTableName(i); + log.info("表名:{}",tableName1); + String columnClassName = metaData.getColumnClassName(i); + log.info("java类型:{}",columnClassName); + String columnTypeName = metaData.getColumnTypeName(i); + log.info("原类型:{}",columnTypeName); + String catalogName = metaData.getCatalogName(i); + log.info("数据库名:{}",catalogName); + Object object = resultSet.getObject(i); + log.info("字段值:{}",object); + DataModel build = DataModel.builder() + .key(columnName) + .val(object) + .sourceType(columnTypeName) + .processType(columnClassName) + .processClass(Class.forName(columnClassName)) + .build(); + log.info("测试内容:{}",build); + list.add(build); + } + listList.add(list); + } + } catch (SQLException e) { + throw new RuntimeException(e); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } + log.info("长度:{}",listList.size()); + log.info("列表:{}",listList); + if (listList.size() == 0){ + return null; + } + for (List list : listList) { + System.out.println(list); + } + Random random = new Random(); + int i = random.nextInt(listList.size()); + return listList.get(i); + } + + public List> getColumn(Long id, String tableName, Integer ruleLevel) { + List> listList = new ArrayList<>(); + Connection connection = DataSourceConfig.getConnection(id); + String sql = "select * from " + tableName; + try { + //获取原数据 + Statement statement = connection.createStatement(); + ResultSet resultSet = statement.executeQuery(sql); + PreparedStatement pst = connection.prepareStatement("select * from " + tableName); + log.info("元数据1:{}",resultSet); + //元数据信息 + ResultSetMetaData metaData = pst.getMetaData(); + //元数据数量 + int columnCount = metaData.getColumnCount(); + while (resultSet.next()){ + List list = new ArrayList<>(); + for (int i = 1; i <= columnCount; i++) { + String columnName = metaData.getColumnName(i); + String columnClassName = metaData.getColumnClassName(i); + String columnTypeName = metaData.getColumnTypeName(i); + Object object = resultSet.getObject(i); + DataModel build = DataModel.builder() + .key(columnName) + .val(object) + .sourceType(columnTypeName) + .processType(columnClassName) + .processClass(Class.forName(columnClassName)) + .build(); + log.info("测试内容:{}",build); + list.add(build); + } + listList.add(list); + } + } catch (SQLException e) { + throw new RuntimeException(e); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } + switch (ruleLevel){ + case 2, 3: + return listList; + } + return null; + } + private Map getColumnComments(DatabaseMetaData metaData, String typeName) { + Map columnComents = new HashMap<>(); + try (ResultSet colums = metaData.getColumns(null, null, typeName, null)) { + while (colums.next()) { + String columsName = colums.getString("COLUMN_NAME"); + String columsComment = colums.getString("REMARKS"); + columnComents.put(columsName, columsComment); + } + } catch (SQLException e) { + throw new RuntimeException(e); + } + return columnComents; + } + + } diff --git a/muyu-modules/muyu-data-test/muyu-data-test-client/src/main/java/muyu/data/test/clinet/config/runner/AccessConfigRunner.java b/muyu-modules/muyu-data-test/muyu-data-test-client/src/main/java/muyu/data/test/clinet/config/runner/AccessConfigRunner.java index 217078b..98be986 100644 --- a/muyu-modules/muyu-data-test/muyu-data-test-client/src/main/java/muyu/data/test/clinet/config/runner/AccessConfigRunner.java +++ b/muyu-modules/muyu-data-test/muyu-data-test-client/src/main/java/muyu/data/test/clinet/config/runner/AccessConfigRunner.java @@ -52,18 +52,6 @@ public class AccessConfigRunner implements ApplicationRunner { DataSourceConfig.index(listResultDatum); } } - //连接上线程池 - DataAccess dataAccess = listResultData.get(0); - DataSourceConfig.verify(dataAccess.getId()); - //获取一个线程池 - Connection connection = DataSourceConfig.getConnection(dataAccess.getId()); - log.info("获取一个线程:{}",connection); - DataSourceConfig.verify(dataAccess.getId()); - //归还线程池 - DataSourceConfig.returnConnection(connection); - DataSourceConfig.verify(dataAccess.getId()); - //将对象传入Spring - //SpringHashMap(hashMap); } diff --git a/muyu-modules/muyu-data-test/muyu-data-test-common/src/main/java/muyu/data/test/common/domain/Column.java b/muyu-modules/muyu-data-test/muyu-data-test-common/src/main/java/muyu/data/test/common/domain/Column.java new file mode 100644 index 0000000..7212032 --- /dev/null +++ b/muyu-modules/muyu-data-test/muyu-data-test-common/src/main/java/muyu/data/test/common/domain/Column.java @@ -0,0 +1,29 @@ +package muyu.data.test.common.domain; + +import lombok.Data; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +public class Column { + /** + * 键 字段名 + */ + private String key; + /** + * 值 字段值 + */ + private Object val; + /** + * 原标准 原类型 + */ + private String sourceType; + /** + * 处理标准 + */ + private String processType; + /** + * 处理类型 + */ + private Class processClass; +} diff --git a/muyu-modules/muyu-data-test/muyu-data-test-common/src/main/java/muyu/data/test/common/domain/DataModel.java b/muyu-modules/muyu-data-test/muyu-data-test-common/src/main/java/muyu/data/test/common/domain/DataModel.java new file mode 100644 index 0000000..a672b89 --- /dev/null +++ b/muyu-modules/muyu-data-test/muyu-data-test-common/src/main/java/muyu/data/test/common/domain/DataModel.java @@ -0,0 +1,29 @@ +package muyu.data.test.common.domain; + +import lombok.Data; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +public class DataModel { + /** + * 键 字段名 + */ + private String key; + /** + * 值 字段值 + */ + private Object val; + /** + * 原标准 原类型 + */ + private String sourceType; + /** + * 处理标准 + */ + private String processType; + /** + * 处理类型 + */ + private Class processClass; +} diff --git a/muyu-modules/muyu-data-test/muyu-data-test-server/src/main/java/com/data/test/common/TestController.java b/muyu-modules/muyu-data-test/muyu-data-test-server/src/main/java/com/data/test/common/TestController.java index 24f1c40..d79aa53 100644 --- a/muyu-modules/muyu-data-test/muyu-data-test-server/src/main/java/com/data/test/common/TestController.java +++ b/muyu-modules/muyu-data-test/muyu-data-test-server/src/main/java/com/data/test/common/TestController.java @@ -1,12 +1,17 @@ package com.data.test.common; import com.alibaba.druid.pool.DruidDataSource; +import com.data.test.server.TestService; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.controller.BaseController; import lombok.extern.log4j.Log4j2; import muyu.data.test.common.dataSoutce.DataSourceConfig; +import muyu.data.test.common.domain.DataModel; import muyu.data.test.common.domain.Table; +import org.bouncycastle.pqc.crypto.newhope.NHSecretKeyProcessor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -17,62 +22,22 @@ import java.util.Random; @Log4j2 @RestController -@RequestMapping("/data") +@RequestMapping("/extract") public class TestController extends BaseController { + @Autowired + private TestService service; /** * 随机字段 * @param id * @return */ - @GetMapping("randomField") - public Result randomField(Long id,String tableName) throws SQLException { - System.out.println("id="+id); - Connection connection = DataSourceConfig.getConnection(id); - DruidDataSource verify = DataSourceConfig.verify(id); - System.out.println(verify.getUrl()); - log.info("获取一个线程池:{}",connection); - //运行sql语句 - Statement statement = connection.createStatement(); - ResultSet resultSet = statement.executeQuery("select * from " + tableName); - //获取meteData - ResultSetMetaData metaData = resultSet.getMetaData(); - //总数量 - int columnCount = metaData.getColumnCount(); - //随机数 - Random random = new Random(); - List list = new ArrayList<>(); - int i = random.nextInt(columnCount)+1; - System.out.println("随机数"+i); - while (resultSet.next()){ - for (int i1 = 1; i1 <= columnCount; i1++) { - String s = metaData.getColumnName(i1); - Object o = resultSet.getObject(i1); - System.out.println(s); - System.out.println(o); - Table build = Table.builder() - .key(s) - .val(o) - .build(); - list.add(build); - } - } - if (list.size()==0){ - return null; - } - int qu = list.size()/columnCount; - System.out.println("区间数:"+qu); - int in = i*qu; - System.out.println("字段长度"+columnCount); - System.out.println("新数"+in); - System.out.println(list); - System.out.println("长度"+list.size()); - List
tables = new ArrayList<>(); - for (int idd = i*columnCount-columnCount; idd < i*columnCount; idd++) { - System.out.println(idd); - tables.add(list.get(idd)); - } - System.out.println(tables); - DataSourceConfig.returnConnection(connection); - return success(tables); + @GetMapping("getRabdomData") + public Result> getRabdomData(Long id, String tableName,Integer ruleLevel) throws SQLException { + return success(service.getRabdomData(id,tableName,ruleLevel)); + } + + @GetMapping("getColumn") + public Result>> getColumn(Long id, String tableName,Integer ruleLevel) throws Exception { + return success(service.getColumn(id,tableName,ruleLevel)); } } diff --git a/muyu-modules/muyu-data-test/muyu-data-test-server/src/main/java/com/data/test/server/TestService.java b/muyu-modules/muyu-data-test/muyu-data-test-server/src/main/java/com/data/test/server/TestService.java index 211dc5c..248c15b 100644 --- a/muyu-modules/muyu-data-test/muyu-data-test-server/src/main/java/com/data/test/server/TestService.java +++ b/muyu-modules/muyu-data-test/muyu-data-test-server/src/main/java/com/data/test/server/TestService.java @@ -1,4 +1,12 @@ package com.data.test.server; +import muyu.data.test.common.domain.DataModel; + +import java.sql.SQLException; +import java.util.List; + public interface TestService { + List getRabdomData(Long id, String tableName,Integer ruleLevel) throws SQLException; + + List> getColumn(Long id, String tableName, Integer ruleLevel); } diff --git a/muyu-modules/muyu-data-test/muyu-data-test-server/src/main/java/com/data/test/server/impl/TestServiceImpl.java b/muyu-modules/muyu-data-test/muyu-data-test-server/src/main/java/com/data/test/server/impl/TestServiceImpl.java index 055eb0a..3275e70 100644 --- a/muyu-modules/muyu-data-test/muyu-data-test-server/src/main/java/com/data/test/server/impl/TestServiceImpl.java +++ b/muyu-modules/muyu-data-test/muyu-data-test-server/src/main/java/com/data/test/server/impl/TestServiceImpl.java @@ -1,8 +1,25 @@ package com.data.test.server.impl; import com.data.test.server.TestService; +import muyu.data.test.clinet.config.AccessConfig; +import muyu.data.test.common.domain.DataModel; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.SQLException; +import java.util.List; + @Service public class TestServiceImpl implements TestService { + @Autowired + private AccessConfig accessConfig; + @Override + public List getRabdomData(Long id, String tableName, Integer ruleLevel) throws SQLException { + return accessConfig.getRabdomData(id,tableName,ruleLevel); + } + + @Override + public List> getColumn(Long id, String tableName, Integer ruleLevel) { + return accessConfig.getColumn(id,tableName,ruleLevel); + } } diff --git a/muyu-modules/muyu-goods-edition/muyu-goods-edition-common/pom.xml b/muyu-modules/muyu-goods-edition/muyu-goods-edition-common/pom.xml new file mode 100644 index 0000000..6218378 --- /dev/null +++ b/muyu-modules/muyu-goods-edition/muyu-goods-edition-common/pom.xml @@ -0,0 +1,31 @@ + + + 4.0.0 + + com.muyu + muyu-goods-edition + 3.6.3 + + + muyu-goods-edition-common + + + 17 + 17 + UTF-8 + + + + com.muyu + muyu-common-core + + + com.muyu + muyu-modules-system + 3.6.3 + compile + + + diff --git a/muyu-modules/muyu-goods-edition/muyu-goods-edition-common/src/main/java/com/muyu/edition/dataSoutce/DataSourceConfig.java b/muyu-modules/muyu-goods-edition/muyu-goods-edition-common/src/main/java/com/muyu/edition/dataSoutce/DataSourceConfig.java index 47d4aa9..c69cd58 100644 --- a/muyu-modules/muyu-goods-edition/muyu-goods-edition-common/src/main/java/com/muyu/edition/dataSoutce/DataSourceConfig.java +++ b/muyu-modules/muyu-goods-edition/muyu-goods-edition-common/src/main/java/com/muyu/edition/dataSoutce/DataSourceConfig.java @@ -90,9 +90,4 @@ public class DataSourceConfig { // 获取连接 log.info("查看连接上的线程池:{}",dataSource); } - -// @Bean -// public static HashMap SpringHashMap(HashMap hashMap) { -// return hashMap; -// } } diff --git a/muyu-modules/muyu-goods-edition/muyu-goods-edition-remote/pom.xml b/muyu-modules/muyu-goods-edition/muyu-goods-edition-remote/pom.xml new file mode 100644 index 0000000..550935a --- /dev/null +++ b/muyu-modules/muyu-goods-edition/muyu-goods-edition-remote/pom.xml @@ -0,0 +1,26 @@ + + + 4.0.0 + + com.muyu + muyu-goods-edition + 3.6.3 + + + muyu-goods-edition-remote + + + 17 + 17 + UTF-8 + + + + com.muyu + muyu-goods-edition-common + 3.6.3 + + + diff --git a/muyu-modules/muyu-goods-edition/muyu-goods-edition-server/pom.xml b/muyu-modules/muyu-goods-edition/muyu-goods-edition-server/pom.xml new file mode 100644 index 0000000..cc82942 --- /dev/null +++ b/muyu-modules/muyu-goods-edition/muyu-goods-edition-server/pom.xml @@ -0,0 +1,138 @@ + + + 4.0.0 + + com.muyu + muyu-goods-edition + 3.6.3 + + + muyu-goods-edition-server + + + 17 + 17 + UTF-8 + + + + + + com.muyu + muyu-goods-edition-common + 3.6.3 + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + org.projectlombok + lombok + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + muyu-common-datasource + + + + + com.muyu + muyu-common-datascope + + + + + com.muyu + muyu-common-log + + + + + com.muyu + muyu-common-swagger + + + + + com.microsoft.sqlserver + mssql-jdbc + 9.4.0.jre8 + + + com.muyu + muyu-goods-edition-clinet + 3.6.3 + compile + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + org.springframework.boot + spring-boot-maven-plugin + + com.muyu.ruleEngine.GtlRuleEngineApplication + + + + + + diff --git a/muyu-modules/muyu-goods-edition/muyu-goods-edition-server/src/main/resources/bootstrap.yml b/muyu-modules/muyu-goods-edition/muyu-goods-edition-server/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..eb5e92b --- /dev/null +++ b/muyu-modules/muyu-goods-edition/muyu-goods-edition-server/src/main/resources/bootstrap.yml @@ -0,0 +1,28 @@ +# Tomcat +server: + port: 9508 + +# Spring +spring: + application: + # 应用名称 + name: muyu-rule + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 129.211.23.219:8848 + config: + # 配置中心地址 + server-addr: 129.211.23.219:8848 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} +logging: + level: + com.muyu.edition.mapper: DEBUG