From b47798ef198d725ec63800f73d3e7a3a61f7fdcd Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期日, 12 一月 2025 20:36:22 +0800
Subject: [PATCH] update 优化 无需多余set变量
---
ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java | 68 ++++++++++++++++++++++------------
1 files changed, 44 insertions(+), 24 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 b8aff31..3729980 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
@@ -3,7 +3,6 @@
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Dict;
-import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
@@ -23,13 +22,13 @@
import org.apache.velocity.app.Velocity;
import org.dromara.common.core.constant.Constants;
import org.dromara.common.core.exception.ServiceException;
+import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.core.utils.file.FileUtils;
import org.dromara.common.json.utils.JsonUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.generator.constant.GenConstants;
import org.dromara.generator.domain.GenTable;
import org.dromara.generator.domain.GenTableColumn;
@@ -63,6 +62,8 @@
private final GenTableMapper baseMapper;
private final GenTableColumnMapper genTableColumnMapper;
private final IdentifierGenerator identifierGenerator;
+
+ private static final String[] TABLE_IGNORE = new String[]{"sj_", "act_", "flw_", "gen_"};
/**
* 鏌ヨ涓氬姟瀛楁鍒楄〃
@@ -104,7 +105,8 @@
.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,
- "create_time", params.get("beginTime"), params.get("endTime"));
+ "create_time", params.get("beginTime"), params.get("endTime"))
+ .orderByDesc("update_time");
return wrapper;
}
@@ -121,16 +123,27 @@
// 鑾峰彇鏌ヨ鏉′欢
String tableName = genTable.getTableName();
String tableComment = genTable.getTableComment();
- // 鑾峰彇鍒嗛〉鍙傛暟
- Integer pageNum = pageQuery.getPageNum();
- Integer pageSize = pageQuery.getPageSize();
- LinkedHashMap<String, Table> tablesMap = ServiceProxy.metadata().tables();
+ LinkedHashMap<String, Table<?>> tablesMap = ServiceProxy.metadata().tables();
if (CollUtil.isEmpty(tablesMap)) {
return TableDataInfo.build();
}
+ List<String> tableNames = baseMapper.selectTableNameList(genTable.getDataName());
+ String[] tableArrays;
+ if (CollUtil.isNotEmpty(tableNames)) {
+ tableArrays = tableNames.toArray(new String[0]);
+ } else {
+ tableArrays = new String[0];
+ }
// 杩囨护骞惰浆鎹㈣〃鏍兼暟鎹�
List<GenTable> tables = tablesMap.values().stream()
+ .filter(x -> !StringUtils.startWithAnyIgnoreCase(x.getName(), TABLE_IGNORE))
+ .filter(x -> {
+ if (CollUtil.isEmpty(tableNames)) {
+ return true;
+ }
+ return !StringUtils.equalsAnyIgnoreCase(x.getName(), tableArrays);
+ })
.filter(x -> {
boolean nameMatches = true;
boolean commentMatches = true;
@@ -149,15 +162,17 @@
GenTable gen = new GenTable();
gen.setTableName(x.getName());
gen.setTableComment(x.getComment());
- gen.setCreateTime(x.getCreateTime());
+ // postgresql鐨勮〃鍏冩暟鎹病鏈夊垱寤烘椂闂磋繖涓笢瑗�(濂藉钁�) 鍙兘new Date浠f浛
+ gen.setCreateTime(ObjectUtil.defaultIfNull(x.getCreateTime(), new Date()));
gen.setUpdateTime(x.getUpdateTime());
return gen;
- }).toList();
+ }).sorted(Comparator.comparing(GenTable::getCreateTime).reversed())
+ .toList();
- // 鍒涘缓鍒嗛〉瀵硅薄锛屽苟璁剧疆鎬昏褰曟暟
- IPage<GenTable> page = new Page<>(pageNum, pageSize, tables.size());
- // 浣跨敤CollUtil杩涜鍒嗛〉锛屽苟璁剧疆鍒嗛〉璁板綍
- page.setRecords(CollUtil.page(pageNum - 1, pageSize, tables));
+ IPage<GenTable> page = pageQuery.build();
+ page.setTotal(tables.size());
+ // 鎵嬪姩鍒嗛〉 set鏁版嵁
+ page.setRecords(CollUtil.page((int) page.getCurrent() - 1, (int) page.getSize(), tables));
return TableDataInfo.build(page);
}
@@ -172,16 +187,17 @@
@Override
public List<GenTable> selectDbTableListByNames(String[] tableNames, String dataName) {
Set<String> tableNameSet = new HashSet<>(List.of(tableNames));
- LinkedHashMap<String, Table> tablesMap = ServiceProxy.metadata().tables();
+ LinkedHashMap<String, Table<?>> tablesMap = ServiceProxy.metadata().tables();
if (CollUtil.isEmpty(tablesMap)) {
return new ArrayList<>();
}
- List<Table> tableList = tablesMap.values().stream()
+ List<Table<?>> tableList = tablesMap.values().stream()
+ .filter(x -> !StringUtils.startWithAnyIgnoreCase(x.getName(), TABLE_IGNORE))
.filter(x -> tableNameSet.contains(x.getName())).toList();
- if (ArrayUtil.isEmpty(tableList)) {
+ if (CollUtil.isEmpty(tableList)) {
return new ArrayList<>();
}
return tableList.stream().map(x -> {
@@ -245,16 +261,15 @@
@DSTransactional
@Override
public void importGenTable(List<GenTable> tableList, String dataName) {
- Long operId = LoginHelper.getUserId();
try {
for (GenTable table : tableList) {
String tableName = table.getTableName();
- GenUtils.initTable(table, operId);
+ GenUtils.initTable(table);
table.setDataName(dataName);
int row = baseMapper.insert(table);
if (row > 0) {
// 淇濆瓨鍒椾俊鎭�
- List<GenTableColumn> genTableColumns = selectDbTableColumnsByName(tableName, dataName);
+ List<GenTableColumn> genTableColumns = SpringUtils.getAopProxy(this).selectDbTableColumnsByName(tableName, dataName);
List<GenTableColumn> saveColumns = new ArrayList<>();
for (GenTableColumn column : genTableColumns) {
GenUtils.initColumnField(column, table);
@@ -278,15 +293,20 @@
* @return 鍒椾俊鎭�
*/
@DS("#dataName")
- private List<GenTableColumn> selectDbTableColumnsByName(String tableName, String dataName) {
- LinkedHashMap<String, Column> columns = ServiceProxy.service().metadata().table(tableName).getColumns();
+ @Override
+ public List<GenTableColumn> selectDbTableColumnsByName(String tableName, String dataName) {
+ Table<?> table = ServiceProxy.metadata().table(tableName);
+ if (ObjectUtil.isNull(table)) {
+ return new ArrayList<>();
+ }
+ LinkedHashMap<String, Column> columns = table.getColumns();
List<GenTableColumn> tableColumns = new ArrayList<>();
columns.forEach((columnName, column) -> {
GenTableColumn tableColumn = new GenTableColumn();
tableColumn.setIsPk(String.valueOf(column.isPrimaryKey()));
tableColumn.setColumnName(column.getName());
tableColumn.setColumnComment(column.getComment());
- tableColumn.setColumnType(column.getTypeName().toLowerCase());
+ tableColumn.setColumnType(column.getOriginType().toLowerCase());
tableColumn.setSort(column.getPosition());
tableColumn.setIsRequired(column.isNullable() == 0 ? "1" : "0");
tableColumn.setIsIncrement(column.isAutoIncrement() == -1 ? "0" : "1");
@@ -390,7 +410,7 @@
List<GenTableColumn> tableColumns = table.getColumns();
Map<String, GenTableColumn> tableColumnMap = StreamUtils.toIdentityMap(tableColumns, GenTableColumn::getColumnName);
- List<GenTableColumn> dbTableColumns = selectDbTableColumnsByName(table.getTableName(), table.getDataName());
+ List<GenTableColumn> dbTableColumns = SpringUtils.getAopProxy(this).selectDbTableColumnsByName(table.getTableName(), table.getDataName());
if (CollUtil.isEmpty(dbTableColumns)) {
throw new ServiceException("鍚屾鏁版嵁澶辫触锛屽師琛ㄧ粨鏋勪笉瀛樺湪");
}
@@ -533,7 +553,7 @@
String treeCode = paramsObj.getStr(GenConstants.TREE_CODE);
String treeParentCode = paramsObj.getStr(GenConstants.TREE_PARENT_CODE);
String treeName = paramsObj.getStr(GenConstants.TREE_NAME);
- String parentMenuId = paramsObj.getStr(GenConstants.PARENT_MENU_ID);
+ Long parentMenuId = paramsObj.getLong(GenConstants.PARENT_MENU_ID);
String parentMenuName = paramsObj.getStr(GenConstants.PARENT_MENU_NAME);
genTable.setTreeCode(treeCode);
--
Gitblit v1.9.3