From e1b6929f24ccf3638cad470917e92221d98aa1c4 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期一, 13 一月 2025 15:23:36 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/result/MenuVo.java | 54 ++++++++++++++++++
zy-acs-manager/src/main/resources/mapper/system/RoleMenuMapper.xml | 26 +++-----
zy-acs-common/src/main/java/com/zy/acs/common/utils/Utils.java | 4 -
zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/AuthController.java | 40 ++++++++++++-
zy-acs-manager/src/main/java/com/zy/acs/manager/system/entity/Menu.java | 20 ------
5 files changed, 105 insertions(+), 39 deletions(-)
diff --git a/zy-acs-common/src/main/java/com/zy/acs/common/utils/Utils.java b/zy-acs-common/src/main/java/com/zy/acs/common/utils/Utils.java
index 2c250f3..c50cb92 100644
--- a/zy-acs-common/src/main/java/com/zy/acs/common/utils/Utils.java
+++ b/zy-acs-common/src/main/java/com/zy/acs/common/utils/Utils.java
@@ -37,7 +37,7 @@
if (parentId.equals(dParentId)) {
R dId = idMapper.apply(d);
List<T> children = toTreeData(data, dId, parentIdMapper, idMapper, consumer);
- if(children.size() > 0) {
+ if(!children.isEmpty()) {
consumer.accept(d, children);
}
result.add(d);
@@ -63,8 +63,6 @@
/**
* 鏁扮粍鍊掑簭
- * @param bytes
- * @param <T>
*/
public static <T> byte[] reverse(byte[] bytes) {
if (bytes == null) return null;
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/AuthController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/AuthController.java
index 2f4bc83..6f2ce54 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/AuthController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/AuthController.java
@@ -1,6 +1,8 @@
package com.zy.acs.manager.system.controller;
import com.zy.acs.common.utils.Utils;
+import com.zy.acs.framework.common.Cools;
+import com.zy.acs.framework.common.R;
import com.zy.acs.manager.common.annotation.OperationLog;
import com.zy.acs.manager.common.config.ConfigProperties;
import com.zy.acs.manager.common.security.JwtSubject;
@@ -8,6 +10,7 @@
import com.zy.acs.manager.system.controller.param.LoginParam;
import com.zy.acs.manager.system.controller.param.UpdatePasswordParam;
import com.zy.acs.manager.system.controller.result.LoginResult;
+import com.zy.acs.manager.system.controller.result.MenuVo;
import com.zy.acs.manager.system.entity.Menu;
import com.zy.acs.manager.system.entity.User;
import com.zy.acs.manager.system.entity.UserLogin;
@@ -15,14 +18,13 @@
import com.zy.acs.manager.system.service.TenantService;
import com.zy.acs.manager.system.service.UserLoginService;
import com.zy.acs.manager.system.service.UserService;
-import com.zy.acs.framework.common.Cools;
-import com.zy.acs.framework.common.R;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
+import java.util.stream.Collectors;
/**
* 璁よ瘉鎺у埗鍣�
@@ -73,8 +75,12 @@
@GetMapping("/auth/menu")
public R userMenu() {
List<Menu> menus = roleMenuService.listMenuByUserId(getLoginUserId(), Menu.TYPE_MENU);
- return R.ok().add(Utils.toTreeData(menus, 0L, Menu::getParentId, Menu::getId, Menu::setChildren));
+// return R.ok().add(Utils.toTreeData(menus, 0L, Menu::getParentId, Menu::getId, Menu::setChildren));
+ List<MenuVo> voList = menus.stream().map(this::convertToVo).collect(Collectors.toList());
+ return R.ok().add(Utils.toTreeData(voList, 0L, MenuVo::getParentId, MenuVo::getId, MenuVo::setChildren));
}
+
+
@GetMapping("/auth/tenant")
public R authHost() {
@@ -121,4 +127,32 @@
return R.error("Update Fail");
}
+
+ // ----------------------------------------------------
+
+ private MenuVo convertToVo(Menu menu) {
+ if (menu == null) {
+ return null;
+ }
+ MenuVo vo = new MenuVo();
+ vo.setId(menu.getId());
+ vo.setName(menu.getName());
+ vo.setParentId(menu.getParentId());
+// vo.setParentName(menu.getParentName());
+ vo.setPath(menu.getPath());
+// vo.setPathName(menu.getPathName());
+ vo.setRoute(menu.getRoute());
+ vo.setComponent(menu.getComponent());
+ vo.setType(menu.getType());
+ vo.setIcon(menu.getIcon());
+ vo.setSort(menu.getSort());
+ if (menu.getChildren() != null && !menu.getChildren().isEmpty()) {
+ List<MenuVo> childDTOs = menu.getChildren().stream()
+ .map(this::convertToVo)
+ .collect(Collectors.toList());
+ vo.setChildren(childDTOs);
+ }
+ return vo;
+ }
+
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/result/MenuVo.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/result/MenuVo.java
new file mode 100644
index 0000000..b48b15b
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/result/MenuVo.java
@@ -0,0 +1,54 @@
+package com.zy.acs.manager.system.controller.result;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class MenuVo implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value= "ID")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty(value= "鍚嶇О")
+ private String name;
+
+ @ApiModelProperty(value= "涓婄骇鑿滃崟")
+ private Long parentId;
+
+// @ApiModelProperty(value= "涓婄骇鑿滃崟鍚�")
+// private String parentName;
+
+ @ApiModelProperty(value= "鍏宠仈璺緞")
+ private String path;
+
+// @ApiModelProperty(value= "鍏宠仈璺緞鍚�")
+// private String pathName;
+
+ @ApiModelProperty(value= "璺敱鍦板潃")
+ private String route;
+
+ @ApiModelProperty(value= "椤甸潰缁勪欢")
+ private String component;
+
+ @ApiModelProperty(value= "绫诲瀷 0: 鑿滃崟 1: 鎸夐挳 ")
+ private Integer type;
+
+ @ApiModelProperty(value= "鑿滃崟鍥炬爣")
+ private String icon;
+
+ private Integer sort;
+
+ @TableField(exist = false)
+ private List<MenuVo> children;
+
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/system/entity/Menu.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/system/entity/Menu.java
index f2f13cd..0263f0a 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/system/entity/Menu.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/system/entity/Menu.java
@@ -1,10 +1,10 @@
package com.zy.acs.manager.system.entity;
import com.baomidou.mybatisplus.annotation.*;
-import com.zy.acs.manager.system.service.TenantService;
-import com.zy.acs.manager.system.service.UserService;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.framework.common.SpringUtils;
+import com.zy.acs.manager.system.service.TenantService;
+import com.zy.acs.manager.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@@ -193,20 +193,6 @@
return null;
}
- public String getStatus$(){
- if (null == this.status){ return null; }
- switch (this.status){
- case 1:
- return "姝e父";
- case 0:
- return "绂佺敤";
- default:
- return String.valueOf(this.status);
- }
- }
-
-
-
public String getCreateTime$(){
if (Cools.isEmpty(this.createTime)){
return "";
@@ -250,7 +236,5 @@
return null;
}
}
-
-
}
diff --git a/zy-acs-manager/src/main/resources/mapper/system/RoleMenuMapper.xml b/zy-acs-manager/src/main/resources/mapper/system/RoleMenuMapper.xml
index 2e9e637..bde61c5 100644
--- a/zy-acs-manager/src/main/resources/mapper/system/RoleMenuMapper.xml
+++ b/zy-acs-manager/src/main/resources/mapper/system/RoleMenuMapper.xml
@@ -3,23 +3,19 @@
<mapper namespace="com.zy.acs.manager.system.mapper.RoleMenuMapper">
<select id="listMenuByUserId" resultType="com.zy.acs.manager.system.entity.Menu">
- select * from sys_menu
- where 1=1
+ SELECT DISTINCT sm.*
+ FROM sys_menu sm
+ JOIN sys_role_menu srm ON sm.id = srm.menu_id
+ JOIN sys_user_role sur ON srm.role_id = sur.role_id
+ JOIN sys_role sr ON sur.role_id = sr.id
+ WHERE 1=1
<if test="type != null">
- AND type = #{type}
+ AND sm.type = #{type}
</if>
- and deleted = 0
- and id in (
- select menu_id from sys_role_menu
- where role_id in (
- select sur.role_id from sys_user_role sur
- left join sys_role sr on sur.role_id = sr.id
- where 1=1
- and sur.user_id = #{userId}
- and sr.deleted = 0
- )
- )
- order by sort
+ AND sur.user_id = #{userId}
+ AND sr.deleted = 0
+ AND sm.deleted = 0
+ ORDER BY sm.sort
</select>
<select id="listStrictlyMenuByRoleId" resultType="java.lang.Long">
--
Gitblit v1.9.1