From a2a2fa23117035c45c1792584f6a45ade4574dc4 Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: 星期五, 19 七月 2024 15:29:38 +0800 Subject: [PATCH] update 优化查询数据库列表 --- ruoyi-modules/ruoyi-generator/pom.xml | 26 +++++++++++++ ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java | 55 +++++++++++++++++++++++---- pom.xml | 32 ++++++++++++++++ 3 files changed, 105 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index 58ee247..2588375 100644 --- a/pom.xml +++ b/pom.xml @@ -50,6 +50,8 @@ <sms4j.version>3.2.1</sms4j.version> <!-- 闄愬埗妗嗘灦涓殑fastjson鐗堟湰 --> <fastjson.version>1.2.83</fastjson.version> + <!-- 闈㈠悜杩愯鏃剁殑D-ORM渚濊禆 --> + <anyline.version>8.7.2-jdk17-20240717</anyline.version> <!--宸ヤ綔娴侀厤缃�--> <flowable.version>7.0.1</flowable.version> @@ -340,6 +342,36 @@ </dependency> <dependency> + <groupId>org.anyline</groupId> + <artifactId>anyline-environment-spring-data-jdbc</artifactId> + <version>${anyline.version}</version> + </dependency> + + <dependency> + <groupId>org.anyline</groupId> + <artifactId>anyline-data-jdbc-mysql</artifactId> + <version>${anyline.version}</version> + </dependency> + + <dependency> + <groupId>org.anyline</groupId> + <artifactId>anyline-data-jdbc-oracle</artifactId> + <version>${anyline.version}</version> + </dependency> + + <dependency> + <groupId>org.anyline</groupId> + <artifactId>anyline-data-jdbc-postgresql</artifactId> + <version>${anyline.version}</version> + </dependency> + + <dependency> + <groupId>org.anyline</groupId> + <artifactId>anyline-data-jdbc-mssql</artifactId> + <version>${anyline.version}</version> + </dependency> + + <dependency> <groupId>org.dromara</groupId> <artifactId>ruoyi-system</artifactId> <version>${revision}</version> diff --git a/ruoyi-modules/ruoyi-generator/pom.xml b/ruoyi-modules/ruoyi-generator/pom.xml index de34f69..a92ff23 100644 --- a/ruoyi-modules/ruoyi-generator/pom.xml +++ b/ruoyi-modules/ruoyi-generator/pom.xml @@ -47,6 +47,32 @@ <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> </dependency> + + <dependency> + <groupId>org.anyline</groupId> + <artifactId>anyline-environment-spring-data-jdbc</artifactId> + </dependency> + + <dependency> + <groupId>org.anyline</groupId> + <artifactId>anyline-data-jdbc-mysql</artifactId> + </dependency> + + <dependency> + <groupId>org.anyline</groupId> + <artifactId>anyline-data-jdbc-oracle</artifactId> + </dependency> + + <dependency> + <groupId>org.anyline</groupId> + <artifactId>anyline-data-jdbc-postgresql</artifactId> + </dependency> + + <dependency> + <groupId>org.anyline</groupId> + <artifactId>anyline-data-jdbc-mssql</artifactId> + </dependency> + </dependencies> </project> diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java index 02a9fa7..7e508f9 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java +++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java @@ -9,10 +9,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.anyline.proxy.ServiceProxy; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; import org.apache.velocity.app.Velocity; @@ -41,11 +43,7 @@ import java.io.IOException; import java.io.StringWriter; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -99,7 +97,7 @@ Map<String, Object> params = genTable.getParams(); QueryWrapper<GenTable> wrapper = Wrappers.query(); wrapper - .eq(StringUtils.isNotEmpty(genTable.getDataName()),"data_name", genTable.getDataName()) + .eq(StringUtils.isNotEmpty(genTable.getDataName()), "data_name", genTable.getDataName()) .like(StringUtils.isNotBlank(genTable.getTableName()), "lower(table_name)", StringUtils.lowerCase(genTable.getTableName())) .like(StringUtils.isNotBlank(genTable.getTableComment()), "lower(table_comment)", StringUtils.lowerCase(genTable.getTableComment())) .between(params.get("beginTime") != null && params.get("endTime") != null, @@ -107,11 +105,52 @@ return wrapper; } + /** + * 鏌ヨ鏁版嵁搴撳垪琛� + * + * @param genTable 鍖呭惈鏌ヨ鏉′欢鐨凣enTable瀵硅薄 + * @param pageQuery 鍖呭惈鍒嗛〉淇℃伅鐨凱ageQuery瀵硅薄 + * @return 鍖呭惈鍒嗛〉缁撴灉鐨凾ableDataInfo瀵硅薄 + */ @DS("#genTable.dataName") @Override public TableDataInfo<GenTable> selectPageDbTableList(GenTable genTable, PageQuery pageQuery) { - genTable.getParams().put("genTableNames",baseMapper.selectTableNameList(genTable.getDataName())); - Page<GenTable> page = baseMapper.selectPageDbTableList(pageQuery.build(), genTable); + // 鑾峰彇鏌ヨ鏉′欢 + String tableName = genTable.getTableName(); + String tableComment = genTable.getTableComment(); + // 鑾峰彇鍒嗛〉鍙傛暟 + Integer pageNum = pageQuery.getPageNum(); + Integer pageSize = pageQuery.getPageSize(); + + // 杩囨护骞惰浆鎹㈣〃鏍兼暟鎹� + List<GenTable> tables = ServiceProxy.metadata().tables().values().stream() + .filter(x -> { + boolean nameMatches = true; + boolean commentMatches = true; + // 杩涜琛ㄥ悕绉扮殑妯$硦鏌ヨ + if (StringUtils.isNotBlank(tableName)) { + nameMatches = StringUtils.containsIgnoreCase(x.getName(), tableName); + } + // 杩涜琛ㄦ弿杩扮殑妯$硦鏌ヨ + if (StringUtils.isNotBlank(tableComment)) { + commentMatches = StringUtils.containsIgnoreCase(x.getComment(), tableComment); + } + // 鍚屾椂鍖归厤鍚嶇О鍜屾弿杩� + return nameMatches && commentMatches; + }) + .map(x -> { + GenTable gen = new GenTable(); + gen.setTableName(x.getName()); + gen.setTableComment(x.getComment()); + gen.setCreateTime(x.getCreateTime()); + gen.setUpdateTime(x.getUpdateTime()); + return gen; + }).toList(); + + // 鍒涘缓鍒嗛〉瀵硅薄锛屽苟璁剧疆鎬昏褰曟暟 + IPage<GenTable> page = new Page<>(pageNum, pageSize, tables.size()); + // 浣跨敤CollUtil杩涜鍒嗛〉锛屽苟璁剧疆鍒嗛〉璁板綍 + page.setRecords(CollUtil.page(pageNum - 1, pageSize, tables)); return TableDataInfo.build(page); } -- Gitblit v1.9.3