From a425fabba73d31f9214e82030262591241395ab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 24 Sep 2024 11:18:53 +0800 Subject: [PATCH] 'commit' --- .../com/dsideal/base/UnitTest/TestMenu.java | 17 ++++- dsRes.iml | 8 ++ .../Menu/DatabaseToJsonConverter.java | 73 +++++++++++++++++++ .../java/com/dsideal/resource/Menu/Menu.java | 17 +++++ .../java/com/dsideal/resource/Menu/Meta.java | 16 ++++ 5 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 dsRes.iml create mode 100644 dsRes/src/main/java/com/dsideal/resource/Menu/DatabaseToJsonConverter.java create mode 100644 dsRes/src/main/java/com/dsideal/resource/Menu/Menu.java create mode 100644 dsRes/src/main/java/com/dsideal/resource/Menu/Meta.java 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 children=new ArrayList<>(); +} \ No newline at end of file diff --git a/dsRes/src/main/java/com/dsideal/resource/Menu/Meta.java b/dsRes/src/main/java/com/dsideal/resource/Menu/Meta.java new file mode 100644 index 00000000..0b51d302 --- /dev/null +++ b/dsRes/src/main/java/com/dsideal/resource/Menu/Meta.java @@ -0,0 +1,16 @@ +package com.dsideal.resource.Menu; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +class Meta { + private String icon; + private String title; + private String isLink; + private boolean isHide; + private boolean isFull; + private boolean isAffix; + private boolean isKeepAlive; +}