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