diff --git a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysMenu.java b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysMenu.java index a0000d1..e916afb 100644 --- a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysMenu.java +++ b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysMenu.java @@ -69,8 +69,8 @@ public class SysMenu extends BaseEntity /** 子菜单 */ private List children = new ArrayList(); -// /** 系统类型 */ -// private String systemType; + /** 系统类型 */ + private String systemType; public Long getMenuId() { @@ -239,13 +239,13 @@ public class SysMenu extends BaseEntity this.children = children; } -// public String getSystemType() { -// return systemType; -// } -// -// public void setSystemType(String systemType) { -// this.systemType = systemType; -// } + public String getSystemType() { + return systemType; + } + + public void setSystemType(String systemType) { + this.systemType = systemType; + } @Override public String toString() { @@ -268,7 +268,7 @@ public class SysMenu extends BaseEntity .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("remark", getRemark()) -// .append("systemType", getSystemType()) + .append("systemType", getSystemType()) .toString(); } } 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 6e52247..9e7bad4 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 @@ -7,6 +7,7 @@ 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.SysMenu; +import com.bonus.system.domain.UserMenuParams; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -188,4 +189,22 @@ public class SysMenuController extends BaseController } return error("系统异常"); } + + /** + * 查询当前登录用户 指定系统类型(大屏,后台或APP)的 菜单树信息 + * @return 路由信息 + */ + @GetMapping("getRouters/{systemType}") + public AjaxResult getRoutersBySystemType(@PathVariable("systemType")Long systemType) { + try{ + + Long userId = SecurityUtils.getUserId(); + UserMenuParams userMenuParams = new UserMenuParams(userId, systemType); + List menus = menuService.selectMenuTreeByUserIdAndSystemType(userMenuParams); + return success(menuService.buildMenus(menus)); + }catch (Exception e){ + log.error(e.toString(),e); + } + return error("系统异常"); + } } \ No newline at end of file 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 new file mode 100644 index 0000000..eaa6b39 --- /dev/null +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/domain/UserMenuParams.java @@ -0,0 +1,22 @@ +package com.bonus.system.domain; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author wangvivi + */ +@Setter +@Getter +public class UserMenuParams { + private Long userId; + private Long systemType; + + UserMenuParams(){} + + public UserMenuParams(Long userId, Long systemType){ + this.userId = userId; + this.systemType = systemType; + } + +} 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 c06539e..e4ca81e 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 @@ -3,6 +3,7 @@ package com.bonus.system.mapper; import java.util.List; import com.bonus.system.api.domain.SysMenu; +import com.bonus.system.domain.UserMenuParams; import org.apache.ibatis.annotations.Param; /** @@ -66,6 +67,15 @@ public interface SysMenuMapper */ public List selectMenuTreeByUserId(Long userId); + /** + * 根据用户ID查询菜单 + * + * @param userId 用户ID + * @param systemType 系统类型 + * @return 菜单列表 + */ + public List selectMenuTreeByUserIdAndSystemType(UserMenuParams userMenuParamse); + /** * 根据角色ID查询菜单树信息 * diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/ISysMenuService.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/ISysMenuService.java index 829f13d..3f266fc 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/ISysMenuService.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/ISysMenuService.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.Set; import com.bonus.system.api.domain.SysMenu; +import com.bonus.system.domain.UserMenuParams; import com.bonus.system.domain.vo.RouterVo; import com.bonus.system.domain.vo.TreeSelect; @@ -55,6 +56,13 @@ public interface ISysMenuService */ public List selectMenuTreeByUserId(Long userId); + /** + * 根据用户ID和系统类型查询菜单树信息 + * @param userMenuParams 用户ID和系统类型 + * @return 菜单列表 + */ + public List selectMenuTreeByUserIdAndSystemType(UserMenuParams userMenuParams); + /** * 根据角色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 32591c9..6d63a4b 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 @@ -10,6 +10,7 @@ import java.util.Set; import java.util.stream.Collectors; import com.bonus.system.api.domain.SysMenu; +import com.bonus.system.domain.UserMenuParams; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.bonus.common.core.constant.Constants; @@ -132,6 +133,22 @@ public class SysMenuServiceImpl implements ISysMenuService return getChildPerms(menus, 0); } + @Override + public List selectMenuTreeByUserIdAndSystemType(UserMenuParams userMenuParams){ + + List menus = null; + if (SecurityUtils.isAdmin(userMenuParams.getUserId())) + { + menus = menuMapper.selectMenuTreeAll(); + } + else + { + menus = menuMapper.selectMenuTreeByUserIdAndSystemType(userMenuParams); + } + return getChildPerms(menus, 0); + } + + /** * 根据角色ID查询菜单树信息 * 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 41604cc..4a6b8ea 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 @@ -25,11 +25,11 @@ - + - select menu_id, menu_name, parent_id, order_num, path, component, `query`, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time + select menu_id, menu_name, parent_id, order_num, path, component, `query`, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time, system_type from sys_menu @@ -84,7 +84,18 @@ where u.user_id = #{userId} and m.menu_type in ('M', 'C') and m.status = 0 AND ro.status = 0 order by m.parent_id, m.order_num - + + + - + update sys_menu @@ -151,7 +162,7 @@ icon = #{icon}, remark = #{remark}, update_by = #{updateBy}, - + system_type = #{systemType}, update_time = sysdate() where menu_id = #{menuId} @@ -175,7 +186,7 @@ icon, remark, create_by, - + system_type, create_time )values( #{menuId}, @@ -194,7 +205,7 @@ #{icon}, #{remark}, #{createBy}, - + #{systemType}, sysdate() )