ソースを参照

#MOD 角色管理员权限菜单反显

谭斌 2 年 前
コミット
e9615cc973

+ 2 - 1
authorize-api-service/src/main/java/com/xy/service/SysRoleMenuService.java

@@ -26,9 +26,10 @@ public interface SysRoleMenuService extends IService<SysRoleMenu> {
      * 获取角色菜单ID
      *
      * @param roleId
+     * @param isAdmin 是否具有管理员权限
      * @return
      */
-    List<Long> getMenuIdsByRoleId(Long roleId);
+    List<Long> getMenuIdsByRoleId(Long roleId, Boolean isAdmin);
 
     /**
      * 更新菜单管理员查询权限

+ 13 - 0
authorize-api-service/src/main/java/com/xy/service/impl/SysMenuServiceImpl.java

@@ -15,6 +15,7 @@ import com.xy.mapper.SysRoleMapper;
 import com.xy.mapper.SysRoleMenuMapper;
 import com.xy.redis.RedisCache;
 import com.xy.service.SysMenuService;
+import com.xy.service.SysRoleMenuService;
 import com.xy.utils.R;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -47,6 +48,8 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
 
     private SysRoleMapper sysRoleMapper;
 
+    private SysRoleMenuService sysRoleMenuService;
+
     @PostMapping("workMenu")
     @ApiOperation("用户菜单树")
     public R<List<SysMenuDto.Vo>> workMenu(@RequestBody @Validated SysMenuDto.WorkMenu workMenu) {
@@ -125,4 +128,14 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
         removeBatchByIds(del.getId());
         return R.ok();
     }
+
+
+    @PostMapping("getMenuIdsForAdmin")
+    @ApiOperation("获取角色的管理员权限菜单")
+    public R<List<Long>> getMenuIdsForAdmin(@RequestBody @Validated SysMenuDto.RoleAdminMenuIdsDto roleAdminMenuIdsDto) {
+        List<Long> list = new ArrayList<>();
+        List<Long> menuIds = sysRoleMenuService.getMenuIdsByRoleId(roleAdminMenuIdsDto.getRoleId(), Boolean.TRUE);
+        return R.ok(menuIds);
+    }
+
 }

+ 5 - 2
authorize-api-service/src/main/java/com/xy/service/impl/SysRoleMenuServiceImpl.java

@@ -56,9 +56,12 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRo
     }
 
     @Override
-    public List<Long> getMenuIdsByRoleId(Long roleId) {
+    public List<Long> getMenuIdsByRoleId(Long roleId, Boolean isAdmin) {
         List<Long> menuIds = new ArrayList<>(16);
-        List<SysRoleMenu> sysRoleMenus = this.list(Wrappers.<SysRoleMenu>lambdaQuery().eq(SysRoleMenu::getRoleId, roleId));
+        List<SysRoleMenu> sysRoleMenus = this.list(Wrappers.<SysRoleMenu>lambdaQuery()
+                .eq(SysRoleMenu::getRoleId, roleId)
+                .eq(isAdmin != null, SysRoleMenu::getSelectAdmin, isAdmin)
+        );
         if (CollUtil.isEmpty(sysRoleMenus)) {
             return menuIds;
         }

+ 1 - 1
authorize-api-service/src/main/java/com/xy/service/impl/SysRoleServiceImpl.java

@@ -173,7 +173,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
             //拿到角色菜单信息返回
             records.forEach(sysRoleVo -> {
                 Long id = sysRoleVo.getId();
-                List<Long> menuIdsByRoleId = sysRoleMenuService.getMenuIdsByRoleId(id);
+                List<Long> menuIdsByRoleId = sysRoleMenuService.getMenuIdsByRoleId(id, null);
                 sysRoleVo.setMenuIds(menuIdsByRoleId);
             });
             sysRoleVoPageBean.setRecords(records);

+ 11 - 0
authorize-api/src/main/java/com/xy/dto/SysMenuDto.java

@@ -27,6 +27,17 @@ public class SysMenuDto {
         private Long sysId;
     }
 
+    @Data
+    @ApiModel("角色管理员权限菜单")
+    @Accessors(chain = true)
+    public static class RoleAdminMenuIdsDto {
+ 
+        @NotNull(message = "角色ID不能为空")
+        @ApiModelProperty(value = "角色ID", required = true)
+        private Long roleId;
+
+    }
+
     @Data
     @ApiModel("添加")
     @Accessors(chain = true)