main
黄海 10 months ago
parent a425fabba7
commit 60e69815b0

@ -1,5 +1,6 @@
package com.dsideal.resource.Menu; package com.dsideal.resource.Menu;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.jfinal.kit.Prop; import com.jfinal.kit.Prop;
@ -9,6 +10,7 @@ import com.jfinal.plugin.hikaricp.HikariCpPlugin;
import com.dsideal.resource.Plugin.YamlProp; import com.dsideal.resource.Plugin.YamlProp;
import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.activerecord.Record;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class DatabaseToJsonConverter { public class DatabaseToJsonConverter {
@ -23,17 +25,17 @@ public class DatabaseToJsonConverter {
arp.start(); arp.start();
Menu rootMenu = fetchMenu(-1); // 从父ID为null开始递归 List<Menu> rootMenu = fetchMenu(-1); // 从父ID为null开始递归
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(rootMenu.getChildren()); String json = mapper.writeValueAsString(rootMenu.getFirst());
System.out.println(json); System.out.println(json);
} }
private static Menu fetchMenu(Integer parentId) { private static List<Menu> fetchMenu(Integer parentId) {
String sql = "select * from t_base_menu where parent_id = ?"; String sql = "select * from t_base_menu where parent_id = ?";
List<Record> list = Db.find(sql, parentId); List<Record> list = Db.find(sql, parentId);
Menu bigMenu = new Menu(); List<Menu> res = new ArrayList<>();
for (Record rs : list) { for (Record rs : list) {
if (rs == null) return null; if (rs == null) return null;
@ -58,16 +60,11 @@ public class DatabaseToJsonConverter {
meta.setAffix(true); meta.setAffix(true);
meta.setKeepAlive(true); meta.setKeepAlive(true);
sMenu.setMeta(meta); sMenu.setMeta(meta);
// 递归查找子菜单 // 递归查找子菜单
Menu childMenu = fetchMenu(rs.getInt("menu_id")); List<Menu> childMenu = fetchMenu(rs.getInt("menu_id"));
if (childMenu != null && bigMenu.getChildren() != null) { sMenu.setChildren(childMenu);
sMenu.getChildren().add(childMenu); res.add(sMenu);
}
if (sMenu != null) {
bigMenu.getChildren().add(sMenu);
}
} }
return bigMenu; return res;
} }
} }

Loading…
Cancel
Save