From 4044988afa0761ca1e557849c017844fbbf9e21c Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期三, 04 九月 2024 16:16:53 +0800
Subject: [PATCH] update 优化 代码生成菜单id匹配写法

---
 ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java |   34 ++++++++++++++++++++--------------
 1 files changed, 20 insertions(+), 14 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 ba9568c..bb8b444 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;
@@ -17,13 +16,13 @@
 import lombok.extern.slf4j.Slf4j;
 import org.anyline.metadata.Column;
 import org.anyline.metadata.Table;
-import org.anyline.proxy.CacheProxy;
 import org.anyline.proxy.ServiceProxy;
 import org.apache.velocity.Template;
 import org.apache.velocity.VelocityContext;
 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;
@@ -138,12 +137,12 @@
         }
         // 杩囨护骞惰浆鎹㈣〃鏍兼暟鎹�
         List<GenTable> tables = tablesMap.values().stream()
-            .filter(x -> !StringUtils.containsAnyIgnoreCase(x.getName(), TABLE_IGNORE))
+            .filter(x -> !startWithAnyIgnoreCase(x.getName(), TABLE_IGNORE))
             .filter(x -> {
                 if (CollUtil.isEmpty(tableNames)) {
                     return true;
                 }
-                return !StringUtils.containsAnyIgnoreCase(x.getName(), tableArrays);
+                return !StringUtils.equalsAnyIgnoreCase(x.getName(), tableArrays);
             })
             .filter(x -> {
                 boolean nameMatches = true;
@@ -175,6 +174,16 @@
         return TableDataInfo.build(page);
     }
 
+    public static boolean startWithAnyIgnoreCase(CharSequence cs, CharSequence... searchCharSequences) {
+        // 鍒ゆ柇鏄惁鏄互鎸囧畾瀛楃涓插紑澶�
+        for (CharSequence searchCharSequence : searchCharSequences) {
+            if (StringUtils.startsWithIgnoreCase(cs, searchCharSequence)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
     /**
      * 鏌ヨ鎹簱鍒楄〃
      *
@@ -196,7 +205,7 @@
             .filter(x -> !StringUtils.containsAnyIgnoreCase(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 -> {
@@ -269,7 +278,7 @@
                 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);
@@ -293,12 +302,9 @@
      * @return 鍒椾俊鎭�
      */
     @DS("#dataName")
-    private List<GenTableColumn> selectDbTableColumnsByName(String tableName, String dataName) {
-        Table<?> table = ServiceProxy.metadata().table(tableName);
-        if (Objects.isNull(table)) {
-            return new ArrayList<>();
-        }
-        LinkedHashMap<String, Column> columns = table.getColumns();
+    @Override
+    public List<GenTableColumn> selectDbTableColumnsByName(String tableName, String dataName) {
+        LinkedHashMap<String, Column> columns = ServiceProxy.metadata().columns(tableName);
         List<GenTableColumn> tableColumns = new ArrayList<>();
         columns.forEach((columnName, column) -> {
             GenTableColumn tableColumn = new GenTableColumn();
@@ -409,7 +415,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("鍚屾鏁版嵁澶辫触锛屽師琛ㄧ粨鏋勪笉瀛樺湪");
         }
@@ -552,7 +558,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