diff --git a/dsBase/src/main/java/com/dsideal/base/UnitTest/TestMenu.java b/dsBase/src/main/java/com/dsideal/base/UnitTest/TestMenu.java
index 46c7cf23..fe348b78 100644
--- a/dsBase/src/main/java/com/dsideal/base/UnitTest/TestMenu.java
+++ b/dsBase/src/main/java/com/dsideal/base/UnitTest/TestMenu.java
@@ -1,7 +1,22 @@
package com.dsideal.base.UnitTest;
+import com.alibaba.fastjson.JSONObject;
+import com.dsideal.base.Plugin.YamlProp;
+import com.jfinal.kit.Prop;
+import com.jfinal.kit.StrKit;
+import com.jfinal.plugin.hikaricp.HikariCpPlugin;
+
public class TestMenu {
public static void main(String[] args) {
-
+ String configFile = "application_dev.yaml";
+ Prop PropKit = new YamlProp(configFile);
+ HikariCpPlugin hp = new HikariCpPlugin(PropKit.get("mysql.jdbcUrl"), PropKit.get("mysql.user"),
+ PropKit.get("mysql.password").trim(), PropKit.get("mysql.driverClassName"));
+ hp.start();
+ JSONObject jo=new JSONObject();
+ jo.put("code",200);
+ jo.put("msg","成功");
+ jo.put("data",null);
+
}
}
diff --git a/dsRes.iml b/dsRes.iml
new file mode 100644
index 00000000..0c5c4d56
--- /dev/null
+++ b/dsRes.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dsRes/src/main/java/com/dsideal/resource/Menu/DatabaseToJsonConverter.java b/dsRes/src/main/java/com/dsideal/resource/Menu/DatabaseToJsonConverter.java
new file mode 100644
index 00000000..88a63580
--- /dev/null
+++ b/dsRes/src/main/java/com/dsideal/resource/Menu/DatabaseToJsonConverter.java
@@ -0,0 +1,73 @@
+package com.dsideal.resource.Menu;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.jfinal.kit.Prop;
+import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
+import com.jfinal.plugin.activerecord.Db;
+import com.jfinal.plugin.hikaricp.HikariCpPlugin;
+import com.dsideal.resource.Plugin.YamlProp;
+import com.jfinal.plugin.activerecord.Record;
+
+import java.util.List;
+
+public class DatabaseToJsonConverter {
+ public static void main(String[] args) throws JsonProcessingException {
+ String configFile = "application_dev.yaml";
+ Prop PropKit = new YamlProp(configFile);
+ HikariCpPlugin hp = new HikariCpPlugin(PropKit.get("mysql.jdbcUrl"), PropKit.get("mysql.user"),
+ PropKit.get("mysql.password").trim(), PropKit.get("mysql.driverClassName"));
+ hp.start();
+ // 配置ActiveRecord插件
+ ActiveRecordPlugin arp = new ActiveRecordPlugin(hp);
+ arp.start();
+
+
+ Menu rootMenu = fetchMenu(-1); // 从父ID为null开始递归
+ ObjectMapper mapper = new ObjectMapper();
+ String json = mapper.writeValueAsString(rootMenu.getChildren());
+ System.out.println(json);
+
+ }
+
+ private static Menu fetchMenu(Integer parentId) {
+ String sql = "select * from t_base_menu where parent_id = ?";
+ List list = Db.find(sql, parentId);
+ Menu bigMenu = new Menu();
+
+ for (Record rs : list) {
+ if (rs == null) return null;
+
+ Menu sMenu = new Menu();
+ String url = rs.getStr("url");
+ sMenu.setPath(url);
+ sMenu.setName(rs.getStr("menu_name"));
+ sMenu.setComponent(url);
+
+ Meta meta = new Meta();
+ meta.setIcon(rs.getStr("icon"));
+ meta.setTitle(rs.getStr("menu_name"));
+ meta.setIsLink("");
+ meta.setHide(false);
+
+ if (rs.get("is_full") == null || rs.getInt("is_full") == 0) {
+ meta.setFull(false);
+ } else {
+ meta.setFull(true);
+ }
+ meta.setAffix(true);
+ meta.setKeepAlive(true);
+ sMenu.setMeta(meta);
+
+ // 递归查找子菜单
+ Menu childMenu = fetchMenu(rs.getInt("menu_id"));
+ if (childMenu != null && bigMenu.getChildren() != null) {
+ sMenu.getChildren().add(childMenu);
+ }
+ if (sMenu != null) {
+ bigMenu.getChildren().add(sMenu);
+ }
+ }
+ return bigMenu;
+ }
+}
diff --git a/dsRes/src/main/java/com/dsideal/resource/Menu/Menu.java b/dsRes/src/main/java/com/dsideal/resource/Menu/Menu.java
new file mode 100644
index 00000000..835ec6c5
--- /dev/null
+++ b/dsRes/src/main/java/com/dsideal/resource/Menu/Menu.java
@@ -0,0 +1,17 @@
+package com.dsideal.resource.Menu;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Getter
+@Setter
+class Menu {
+ private String path;
+ private String name;
+ private String component;
+ private Meta meta;
+ private List