From c7072bed109c8f658433a4727230a5c0aff346e6 Mon Sep 17 00:00:00 2001 From: pengjie <17373303529@163.com> Date: Thu, 23 Nov 2023 10:23:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basicdata/entity/SystemRoleMenu.java | 6 +++++ .../service/impl/BaseMenuServiceImpl.java | 25 ++++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/SystemRoleMenu.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/SystemRoleMenu.java index 737ef16..5eb5122 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/SystemRoleMenu.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/SystemRoleMenu.java @@ -1,6 +1,7 @@ package com.zhgd.xmgl.modules.basicdata.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; @@ -46,4 +47,9 @@ public class SystemRoleMenu implements Serializable { @Excel(name = "菜单类型,0:模块 1:菜单;2:按钮", width = 15) @ApiModelProperty(value = "菜单类型,0:模块 1:菜单;2:按钮") private Integer type; + + @TableField(exist = false) + @ApiModelProperty(value = "子集数量") + private Integer children = 0; + } diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/BaseMenuServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/BaseMenuServiceImpl.java index 12dfe93..0f976c0 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/BaseMenuServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/BaseMenuServiceImpl.java @@ -135,8 +135,31 @@ public class BaseMenuServiceImpl extends ServiceImpl i @Override public List roleMenu(String roleId) { // 查询角色下的菜单 - return systemRoleMenuService.list(Wrappers.lambdaQuery() + List systemRoleMenus = systemRoleMenuService.list(Wrappers.lambdaQuery() .eq(SystemRoleMenu::getRoleId, roleId)); + List menuIds = systemRoleMenus.stream().filter(s -> s.getType() == 1).map(s -> s.getAuthorityId()).collect(Collectors.toList()); + if (menuIds.size() == 0) { + menuIds.add(0L); + } + List baseMenuList = baseMenuMapper.selectList(Wrappers.lambdaQuery().in(BaseMenu::getMenuId, menuIds)); + List actionIds = systemRoleMenus.stream().filter(s -> s.getType() == 2).map(s -> s.getAuthorityId()).collect(Collectors.toList()); + if (actionIds.size() == 0) { + actionIds.add(0L); + } + List baseActionList = baseActionMapper.selectList(Wrappers.lambdaQuery().in(BaseAction::getActionId, actionIds)); + systemRoleMenus.stream().forEach(s -> { + if (s.getType() == 0) { + s.setChildren(baseMenuList.stream().filter(b -> b.getModuleId().equals(s.getAuthorityId())).collect(Collectors.toList()).size()); + } else if (s.getType() == 1) { + int number = baseMenuList.stream().filter(b -> b.getParentId().equals(s.getAuthorityId())).collect(Collectors.toList()).size(); + if (number == 0) { + number = baseActionList.stream().filter(a -> a.getMenuId().equals(s.getAuthorityId())).collect(Collectors.toList()).size(); + } + s.setChildren(number); + } + }); + return systemRoleMenus; + } @Override