AprilWind
2024-07-19 a2a2fa23117035c45c1792584f6a45ade4574dc4
update 优化查询数据库列表
已修改3个文件
113 ■■■■■ 文件已修改
pom.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-generator/pom.xml 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>
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>
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  包含查询条件的GenTable对象
     * @param pageQuery 包含分页信息的PageQuery对象
     * @return 包含分页结果的TableDataInfo对象
     */
    @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);
    }