fanxp 2 роки тому
батько
коміт
1bbf9c5a01

+ 48 - 11
src/main/java/com/xjrsoft/module/system/service/impl/MenuServiceImpl.java

@@ -50,13 +50,36 @@ public class MenuServiceImpl extends MPJBaseServiceImpl<MenuMapper, Menu> implem
 
     @Override
     public List<MenuVo> getAuthMenuList(MenuTreeDto dto) {
-        List<UserRoleRelation> relations = userRoleRelationMapper.selectList(Wrappers.lambdaQuery(UserRoleRelation.class)
-                .select(UserRoleRelation::getRoleId)
-                .eq(UserRoleRelation::getUserId, StpUtil.getLoginIdAsLong()));
-        if (CollectionUtils.isEmpty(relations)) {
-            return new ArrayList<>();
-        }
-        List<Long> roleIds = relations.stream().map(UserRoleRelation::getRoleId).collect(Collectors.toList());
+        List<Long> roleIds = getUserRoleIds();
+        return getAuthMenuByRoleIds(roleIds,dto);
+    }
+
+
+    /**
+     * 查询用户菜单服务
+     */
+    @Override
+    public List<MenuServeVo> getAuthMenuServe() {
+        List<MenuVo> menuVos = getAuthMenuList(new MenuTreeDto());
+        return getSubMenu(menuVos);
+    }
+
+    /**
+     * 根据角色获取菜单
+     * @param roleIds
+     * @return
+     */
+    private List<MenuVo> getAuthMenuByRoleIds(List<Long> roleIds){
+        return getAuthMenuByRoleIds(roleIds,new MenuTreeDto());
+    }
+
+    /**
+     * 根据角色获取菜单
+     * @param roleIds
+     * @param dto
+     * @return
+     */
+    private List<MenuVo> getAuthMenuByRoleIds(List<Long> roleIds,MenuTreeDto dto){
         List<Long> authMenuIdList = null;
         // 非超级管理员权限过滤
         if (!roleIds.contains(GlobalConstant.SUPER_ADMIN_ROLE_ID)) {
@@ -85,11 +108,25 @@ public class MenuServiceImpl extends MPJBaseServiceImpl<MenuMapper, Menu> implem
     }
 
     /**
-     * 查询用户菜单服务
+     * 获取用户角色
+     * @return
      */
-    @Override
-    public List<MenuServeVo> getAuthMenuServe() {
-        List<MenuVo> menuVos = getAuthMenuList(new MenuTreeDto());
+    private List<Long> getUserRoleIds(){
+        List<UserRoleRelation> relations = userRoleRelationMapper.selectList(Wrappers.lambdaQuery(UserRoleRelation.class)
+                .select(UserRoleRelation::getRoleId)
+                .eq(UserRoleRelation::getUserId, StpUtil.getLoginIdAsLong()));
+        if (CollectionUtils.isEmpty(relations)) {
+            return new ArrayList<>();
+        }
+        return relations.stream().map(UserRoleRelation::getRoleId).collect(Collectors.toList());
+    }
+
+    /**
+     * 获取子系统菜单
+     * @param menuVos
+     * @return
+     */
+    private List<MenuServeVo> getSubMenu(List<MenuVo> menuVos){
         Map<Long, MenuServeVo> menuVoMap = new HashMap<>();
 
         List<MenuVo> childMenus = new ArrayList<>();