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/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java | 70 ++++++++++++++++++++++++++-------- 1 files changed, 53 insertions(+), 17 deletions(-) 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 77ef303..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; @@ -54,7 +52,6 @@ * * @author Lion Li */ -// @DS("#header.datasource") @Slf4j @RequiredArgsConstructor @Service @@ -100,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, @@ -108,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); } @@ -120,7 +158,7 @@ * 鏌ヨ鎹簱鍒楄〃 * * @param tableNames 琛ㄥ悕绉扮粍 - * @param dataName + * @param dataName 鏁版嵁婧愬悕绉� * @return 鏁版嵁搴撹〃闆嗗悎 */ @DS("#dataName") @@ -143,7 +181,6 @@ * 淇敼涓氬姟 * * @param genTable 涓氬姟淇℃伅 - * @return 缁撴灉 */ @Transactional(rollbackFor = Exception.class) @Override @@ -162,13 +199,12 @@ * 鍒犻櫎涓氬姟瀵硅薄 * * @param tableIds 闇�瑕佸垹闄ょ殑鏁版嵁ID - * @return 缁撴灉 */ @Transactional(rollbackFor = Exception.class) @Override public void deleteGenTableByIds(Long[] tableIds) { List<Long> ids = Arrays.asList(tableIds); - baseMapper.deleteBatchIds(ids); + baseMapper.deleteByIds(ids); genTableColumnMapper.delete(new LambdaQueryWrapper<GenTableColumn>().in(GenTableColumn::getTableId, ids)); } @@ -176,16 +212,16 @@ * 瀵煎叆琛ㄧ粨鏋� * * @param tableList 瀵煎叆琛ㄥ垪琛� - * @param dataName + * @param dataName 鏁版嵁婧愬悕绉� */ @DSTransactional @Override public void importGenTable(List<GenTable> tableList, String dataName) { - String operName = LoginHelper.getUsername(); + Long operId = LoginHelper.getUserId(); try { for (GenTable table : tableList) { String tableName = table.getTableName(); - GenUtils.initTable(table, operName); + GenUtils.initTable(table, operId); table.setDataName(dataName); int row = baseMapper.insert(table); if (row > 0) { @@ -335,7 +371,7 @@ if (CollUtil.isNotEmpty(delColumns)) { List<Long> ids = StreamUtils.toList(delColumns, GenTableColumn::getColumnId); if (CollUtil.isNotEmpty(ids)) { - genTableColumnMapper.deleteBatchIds(ids); + genTableColumnMapper.deleteByIds(ids); } } } -- Gitblit v1.9.3