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