From c8f8231ec8a9932e7936ceba38e79ce021076fa3 Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Sat, 4 Jan 2025 23:05:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=85=AC=E5=8F=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/system/controller/SysMenuController.java | 8 +++++++- .../com/bonus/system/domain/UserMenuParams.java | 4 +++- .../main/resources/mapper/system/SysMenuMapper.xml | 13 ++++++++++--- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysMenuController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysMenuController.java index 76eed77..db02683 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysMenuController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysMenuController.java @@ -6,8 +6,10 @@ import com.bonus.common.log.annotation.SysLog; import com.bonus.common.log.enums.OperaType; import com.bonus.common.security.annotation.InnerAuth; import com.bonus.common.security.annotation.RequiresPermissionsOrInnerAuth; +import com.bonus.system.api.domain.SysDept; import com.bonus.system.api.domain.SysMenu; import com.bonus.system.domain.UserMenuParams; +import com.bonus.system.service.ISysDeptService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -40,6 +42,9 @@ public class SysMenuController extends BaseController @Autowired private ISysMenuService menuService; + @Autowired + private ISysDeptService deptService; + /** * 获取当前用户的菜单列表 */ @@ -199,7 +204,8 @@ public class SysMenuController extends BaseController try{ Long userId = SecurityUtils.getUserId(); - UserMenuParams userMenuParams = new UserMenuParams(userId, systemType); + SysDept sysDept = deptService.selectDeptById(SecurityUtils.getLoginUser().getSysUser().getCompanyId()); + UserMenuParams userMenuParams = new UserMenuParams(userId, systemType, sysDept.getTemplateId()); List menus = menuService.selectMenuTreeByUserIdAndSystemType(userMenuParams); return success(menuService.buildMenus(menus)); }catch (Exception e){ diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/domain/UserMenuParams.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/domain/UserMenuParams.java index eaa6b39..8f7cc7c 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/domain/UserMenuParams.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/domain/UserMenuParams.java @@ -11,12 +11,14 @@ import lombok.Setter; public class UserMenuParams { private Long userId; private Long systemType; + private Long templateId; UserMenuParams(){} - public UserMenuParams(Long userId, Long systemType){ + public UserMenuParams(Long userId, Long systemType, Long templateId){ this.userId = userId; this.systemType = systemType; + this.templateId = templateId; } } 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 08bfa4b..6736ebf 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 @@ -93,9 +93,11 @@ 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 - ) + + 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 @@ -107,6 +109,11 @@ 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 FIND_IN_SET(#{systemType}, m.system_type) + + 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