diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/mapper/SysMenuMapper.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/mapper/SysMenuMapper.java index e4ca81e..8d3972e 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/mapper/SysMenuMapper.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/mapper/SysMenuMapper.java @@ -63,9 +63,10 @@ public interface SysMenuMapper * 根据用户ID查询菜单 * * @param userId 用户ID + * @param templateId 权限模板ID * @return 菜单列表 */ - public List selectMenuTreeByUserId(Long userId); + public List selectMenuTreeByUserId(@Param("userId") Long userId, @Param("templateId")Long templateId); /** * 根据用户ID查询菜单 diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysMenuServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysMenuServiceImpl.java index bb88d7d..9871567 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysMenuServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysMenuServiceImpl.java @@ -139,7 +139,8 @@ public class SysMenuServiceImpl implements ISysMenuService } else { - menus = menuMapper.selectMenuTreeByUserId(userId); + SysDept sysDept = deptMapper.selectDeptById(SecurityUtils.getLoginUser().getSysUser().getCompanyId()); + menus = menuMapper.selectMenuTreeByUserId(userId, sysDept.getTemplateId()); } return getChildPerms(menus, 0); } diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/system/SysMenuMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/system/SysMenuMapper.xml index 18d95b3..08bfa4b 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -77,10 +77,15 @@ AND m.status = #{status} + + and exists ( + select 0 from sys_template_menu stm where stm.temp_id = #{templateId} and stm.menu_id = m.menu_id + ) + order by m.parent_id, m.order_num - select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time from sys_menu m left join sys_role_menu rm on m.menu_id = rm.menu_id @@ -88,6 +93,9 @@ left join sys_role ro on ur.role_id = ro.role_id left join sys_user u on ur.user_id = u.user_id where u.user_id = #{userId} and m.menu_type in ('M', 'C') and m.status = 0 AND ro.status = 0 + AND exists ( + select 0 from sys_template_menu stm where stm.temp_id = #{templateId} and stm.menu_id = m.menu_id + ) order by m.parent_id, m.order_num