diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 0ec8e8a6..c181c729 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -5,14 +5,29 @@
+
+
-
+
+
+
+
+
+
+
+
+
+
@@ -43,6 +58,7 @@
"RunOnceActivity.ShowReadmeOnStart": "true",
"git-widget-placeholder": "main",
"kotlin-language-version-configured": "true",
+ "last_opened_file_path": "D:/dsWork/dsProject/dsRes/src/main/resource/Sql",
"node.js.detected.package.eslint": "true",
"node.js.detected.package.tslint": "true",
"node.js.selected.package.eslint": "(autodetect)",
@@ -56,10 +72,16 @@
"应用程序.BaseApplication.executor": "Debug",
"应用程序.GwApplication.executor": "Debug",
"应用程序.Publish.executor": "Run",
- "应用程序.ResApplication.executor": "Debug"
+ "应用程序.ResApplication.executor": "Debug",
+ "应用程序.TestMenu.executor": "Run"
}
}]]>
-
+
+
+
+
+
+
@@ -106,10 +128,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
diff --git a/dsBase/src/main/java/com/dsideal/base/Menu/Controller/MenuController.java b/dsBase/src/main/java/com/dsideal/base/Menu/Controller/MenuController.java
index 0e675c82..90d07486 100644
--- a/dsBase/src/main/java/com/dsideal/base/Menu/Controller/MenuController.java
+++ b/dsBase/src/main/java/com/dsideal/base/Menu/Controller/MenuController.java
@@ -1,10 +1,13 @@
package com.dsideal.base.Menu.Controller;
+import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.dsideal.base.Base.Model.BaseModel;
import com.dsideal.base.Interceptor.*;
import com.dsideal.base.Util.CommonUtil;
import com.dsideal.base.Menu.Model.MenuModel;
+import com.dsideal.base.Util.JwtUtil;
+import com.dsideal.base.Util.RetKit;
import com.dsideal.base.fay.tree.domain.MenuBean;
import com.dsideal.base.fay.tree.service.IFayTreeNode;
import com.dsideal.base.fay.tree.util.FayTreeUtil;
@@ -15,10 +18,9 @@ import com.jfinal.ext.interceptor.POST;
import com.jfinal.kit.Kv;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.Record;
+import io.jsonwebtoken.Claims;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
@SuppressWarnings("unchecked")
public class MenuController extends Controller {
@@ -153,8 +155,8 @@ public class MenuController extends Controller {
@EmptyInterface({"menu_name", "url", "memo", "identity_ids"})
@IsNumericInterface({"parent_id", "sort_id", "for_school", "for_bureau"})
@LengthInterface({"menu_name,1,32", "memo,1,255"})
- public void AddMenu(int parent_id, int sort_id, String identity_ids, String menu_name, String url, String memo, int for_school, int for_bureau,String icon,int isFull) {
- int menu_id = model.AddMenu(parent_id, sort_id, menu_name, url, memo, identity_ids, for_school, for_bureau,icon,isFull);
+ public void AddMenu(int parent_id, int sort_id, String identity_ids, String menu_name, String url, String memo, int for_school, int for_bureau, String icon, int isFull) {
+ int menu_id = model.AddMenu(parent_id, sort_id, menu_name, url, memo, identity_ids, for_school, for_bureau, icon, isFull);
JSONObject map = new JSONObject();
map.put("menu_id", menu_id);
if (menu_id > 0) {
@@ -191,8 +193,8 @@ public class MenuController extends Controller {
@IsNumericInterface({"menu_id", "sort_id", "for_school", "for_bureau"})
@LengthInterface({"menu_name,1,32", "memo,1,255"})
public void UpdateMenu(int menu_id, int sort_id, String menu_name, String identity_ids, String url, String memo,
- int for_school, int for_bureau,String icon,int isFull) {
- model.UpdateMenu(menu_id, menu_name, sort_id, url, memo, identity_ids, for_school, for_bureau,icon,isFull);
+ int for_school, int for_bureau, String icon, int isFull) {
+ model.UpdateMenu(menu_id, menu_name, sort_id, url, memo, identity_ids, for_school, for_bureau, icon, isFull);
renderJson(CommonUtil.returnMessageJson(true, "修改成功!"));
}
@@ -229,4 +231,30 @@ public class MenuController extends Controller {
Kv kv = Kv.by("success", true).set("list", list);
renderJson(kv);
}
+
+ /**
+ * 功能:获取人员可以看到的菜单
+ */
+ @Before({GET.class})
+ public void getPersonMenu() {
+ //当前登录的人员是谁?
+ String token = getRequest().getHeader("Authorization");
+ if (token == null) {
+ renderJson(RetKit.renderFail("请先登录!"));
+ return;
+ }
+ Claims claims = JwtUtil.getClaims(token);
+ String person_id = claims.get("person_id").toString();
+
+ //可见菜单
+ List recordList = model.selectMenuByPersonId(person_id);
+ Set menuIdSet = new HashSet<>();
+ for (Record record : recordList) {
+ menuIdSet.add(record.getInt("menu_id"));
+ }
+
+ //需要根据所有可见菜单,递归处理,生成树形菜单
+ List menuList = model.fetchMenu(1, menuIdSet);
+ renderJson(RetKit.renderSuccess(JSONUtil.parseArray(menuList)));
+ }
}
\ No newline at end of file
diff --git a/dsBase/src/main/java/com/dsideal/base/Menu/Model/MenuModel.java b/dsBase/src/main/java/com/dsideal/base/Menu/Model/MenuModel.java
index f4bbed0e..bd1e4601 100644
--- a/dsBase/src/main/java/com/dsideal/base/Menu/Model/MenuModel.java
+++ b/dsBase/src/main/java/com/dsideal/base/Menu/Model/MenuModel.java
@@ -7,11 +7,10 @@ import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.plugin.activerecord.SqlPara;
+import lombok.Getter;
+import lombok.Setter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
@SuppressWarnings("unchecked")
public class MenuModel {
@@ -319,4 +318,80 @@ public class MenuModel {
list = Db.find(sqlPara);
return list;
}
+
+ //子类1:菜单
+ @Getter
+ @Setter
+ public static class Menu {
+ private String path;
+ private String component;
+ private Meta meta;
+ private List