brealinxx 1 vuosi sitten
vanhempi
commit
d4821a70bc

+ 9 - 10
src/main/java/com/xjrsoft/module/system/controller/MenuController.java

@@ -39,16 +39,7 @@ import com.xjrsoft.module.system.service.IMenuButtonService;
 import com.xjrsoft.module.system.service.IMenuColumnService;
 import com.xjrsoft.module.system.service.IMenuFormService;
 import com.xjrsoft.module.system.service.IMenuService;
-import com.xjrsoft.module.system.vo.AuthMenuVo;
-import com.xjrsoft.module.system.vo.MenuButtonVo;
-import com.xjrsoft.module.system.vo.MenuChildTreeVo;
-import com.xjrsoft.module.system.vo.MenuColumnVo;
-import com.xjrsoft.module.system.vo.MenuFormVo;
-import com.xjrsoft.module.system.vo.MenuListVo;
-import com.xjrsoft.module.system.vo.MenuServeVo;
-import com.xjrsoft.module.system.vo.MenuSimpleTreeVo;
-import com.xjrsoft.module.system.vo.MenuTreeVo;
-import com.xjrsoft.module.system.vo.MenuVo;
+import com.xjrsoft.module.system.vo.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -135,6 +126,14 @@ public class MenuController {
         return RT.ok(list);
     }
 
+    @GetMapping("/allserve")
+    @ApiOperation(value = "获取全部菜单服务")
+    public RT<List<MenuAllServeVo>> menuAllServe(@Valid MenuTreeDto dto) {
+        List<MenuAllServeVo> list = menuService.getAuthAllMenuServe(dto);
+
+        return RT.ok(list);
+    }
+
     @GetMapping("/all-tree")
     @ApiOperation(value = "获取所有菜单(树结构)")
     public R allMenuTree(@Valid MenuTreeDto dto) {

+ 3 - 0
src/main/java/com/xjrsoft/module/system/service/IMenuService.java

@@ -4,6 +4,7 @@ import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.system.dto.MenuTreeDto;
 import com.xjrsoft.module.system.dto.RoleMenuServeListDto;
 import com.xjrsoft.module.system.entity.Menu;
+import com.xjrsoft.module.system.vo.MenuAllServeVo;
 import com.xjrsoft.module.system.vo.MenuServeVo;
 import com.xjrsoft.module.system.vo.MenuVo;
 
@@ -23,6 +24,8 @@ public interface IMenuService extends MPJBaseService<Menu> {
 
     List<MenuServeVo> getAuthMenuServe(MenuTreeDto dto);
 
+    List<MenuAllServeVo> getAuthAllMenuServe(MenuTreeDto dto);
+
     List<MenuServeVo> getRoleMenuServe(RoleMenuServeListDto dto);
 
     List<Menu> getUserQuick(MenuTreeDto dto);

+ 32 - 8
src/main/java/com/xjrsoft/module/system/service/impl/MenuServiceImpl.java

@@ -23,17 +23,12 @@ import com.xjrsoft.module.system.mapper.AuthorizeMapper;
 import com.xjrsoft.module.system.mapper.MenuMapper;
 import com.xjrsoft.module.system.mapper.XjrMenuQuickMapper;
 import com.xjrsoft.module.system.service.IMenuService;
-import com.xjrsoft.module.system.vo.MenuListVo;
-import com.xjrsoft.module.system.vo.MenuServeVo;
-import com.xjrsoft.module.system.vo.MenuTreeVo;
-import com.xjrsoft.module.system.vo.MenuVo;
+import com.xjrsoft.module.system.vo.*;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -70,6 +65,35 @@ public class MenuServiceImpl extends MPJBaseServiceImpl<MenuMapper, Menu> implem
         return getSubMenu(menuVos);
     }
 
+    /*
+    获取所有菜单 标记 accessibility
+     */
+    @Override
+    public List<MenuAllServeVo> getAuthAllMenuServe(MenuTreeDto dto) {
+        List<Long> roleIdList = new ArrayList<>();
+        roleIdList.add(1L);
+        List<MenuServeVo> roleMenuList = getSubMenu(getAuthMenuByRoleIds(roleIdList, dto));
+
+        List<MenuServeVo> allMenuList = getSubMenu(getAuthMenuList(dto));
+        Map<Long, MenuServeVo> allMenuMap = allMenuList.stream()
+                .collect(Collectors.toMap(MenuServeVo::getId, Function.identity()));
+
+        List<MenuAllServeVo> result = roleMenuList.stream()
+                .map(menu -> convertToMenuAllServeVo(menu, allMenuMap))
+                .collect(Collectors.toList());
+
+        return result;
+    }
+
+    private MenuAllServeVo convertToMenuAllServeVo(MenuServeVo menu, Map<Long, MenuServeVo> allMenuMap) {
+        MenuAllServeVo menuAllServeVo = new MenuAllServeVo();
+        menuAllServeVo.setId(menu.getId());
+        menuAllServeVo.setName(menu.getName());
+        menuAllServeVo.setMenuVoList(menu.getMenuVoList());
+        menuAllServeVo.setAccessibility(allMenuMap.containsKey(menu.getId()) ? 1 : 0);
+        return menuAllServeVo;
+    }
+
     /**
      * 查询角色菜单服务
      */

+ 21 - 0
src/main/java/com/xjrsoft/module/system/vo/MenuAllServeVo.java

@@ -0,0 +1,21 @@
+package com.xjrsoft.module.system.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class MenuAllServeVo {
+    @ApiModelProperty("主键")
+    private Long id;
+
+    @ApiModelProperty("系统名")
+    private String name;
+
+    @ApiModelProperty("菜单")
+    private List<MenuVo> menuVoList;
+
+    @ApiModelProperty("是否具有权限访问 1:能够访问 0:不能访问")
+    private int accessibility;
+}