李进 2 years ago
parent
commit
90b3db116d

+ 94 - 4
authorize-api-service/src/main/java/com/xy/redis/RedisCache.java

@@ -11,10 +11,7 @@ import com.xy.mapper.SysDeptMapper;
 import com.xy.mapper.SysMenuMapper;
 import com.xy.mapper.SysRoleMapper;
 import com.xy.mapper.SysSystemMapper;
-import com.xy.utils.AuthorizeUtils;
-import com.xy.utils.Emptys;
-import com.xy.utils.RedisService;
-import com.xy.utils.SpringBeanUtils;
+import com.xy.utils.*;
 import icu.mhb.mybatisplus.plugln.core.JoinLambdaWrapper;
 import org.springframework.stereotype.Component;
 import org.springframework.web.context.request.RequestContextHolder;
@@ -23,6 +20,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
 import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 权限系统redis工具类
@@ -156,4 +154,96 @@ public class RedisCache extends AuthorizeUtils {
         HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
         return authByData(systemId, request.getRequestURI());
     }
+
+    /**
+     * 获取菜单
+     *
+     * @return
+     */
+    public static List<List<SysMenuJoinSysRoleMenu>> getMenu() {
+        List<List<SysMenuJoinSysRoleMenu>> lists = new ArrayList<>();
+        //获取redis缓存
+        Map<String, List<CacheEntity>> map = getRedisService().getMap(getKey(getLoginId(getToken(), Long.class)));
+        map.forEach((s, cacheEntities) -> {
+            //角色菜单累加
+            JList<SysMenuJoinSysRoleMenu> sysMenuJoinSysRoleMenus = new JArrayList<>();
+            cacheEntities.forEach(cacheEntity -> {
+                if (Emptys.check(cacheEntity.getList())) {
+                    sysMenuJoinSysRoleMenus.addAll(cacheEntity.getList());
+                }
+            });
+            //去重
+            sysMenuJoinSysRoleMenus.comparing(SysMenuJoinSysRoleMenu::getId);
+            if (Emptys.check(sysMenuJoinSysRoleMenus)) {
+                lists.add(sysMenuJoinSysRoleMenus);
+            }
+        });
+        return lists;
+    }
+
+    /**
+     * 获取菜单树
+     *
+     * @return
+     */
+    public static List<List<SysMenuJoinSysRoleMenu>> getMenuTree() {
+        List<List<SysMenuJoinSysRoleMenu>> list = new ArrayList<>();
+        //获取菜单
+        List<List<SysMenuJoinSysRoleMenu>> menu = getMenu();
+        menu.forEach(sysMenuJoinSysRoleMenus -> {
+            //生成树
+            JList<SysMenuJoinSysRoleMenu> sysMenuJoinSysRoleMenus1 = new JArrayList<>(sysMenuJoinSysRoleMenus);
+            JList<SysMenuJoinSysRoleMenu> tops = sysMenuJoinSysRoleMenus1.filter().isNull(SysMenuJoinSysRoleMenu::getPaterId).list();
+            for (SysMenuJoinSysRoleMenu top : tops) {
+                List<SysMenuJoinSysRoleMenu> tree = Beans.tree(top, sysMenuJoinSysRoleMenus1, SysMenuJoinSysRoleMenu::getId, SysMenuJoinSysRoleMenu::getPaterId, SysMenuJoinSysRoleMenu::getSonSysMenu);
+                top.setSonSysMenu(tree);
+            }
+            list.add(tops);
+        });
+        return list;
+    }
+
+    /**
+     * 获取菜单
+     *
+     * @param systemId 系统id
+     * @return
+     */
+    public static List<SysMenuJoinSysRoleMenu> getMenu(Long systemId) {
+        JList<SysMenuJoinSysRoleMenu> sysMenuJoinSysRoleMenus = new JArrayList<>();
+        //获取redis缓存
+        List<AuthorizeUtils.CacheEntity> cacheEntities = getRedisService().getMap(getKey(getLoginId(getToken(), Long.class)), systemId.toString());
+        if (!Emptys.check(cacheEntities)) {
+            return sysMenuJoinSysRoleMenus;
+        }
+        //角色菜单累加
+        cacheEntities.forEach(cacheEntity -> {
+            if (Emptys.check(cacheEntity.getList())) {
+                sysMenuJoinSysRoleMenus.addAll(cacheEntity.getList());
+            }
+        });
+        //去重
+        sysMenuJoinSysRoleMenus.comparing(SysMenuJoinSysRoleMenu::getId);
+        return sysMenuJoinSysRoleMenus;
+    }
+
+    /**
+     * 获取菜单树
+     *
+     * @param systemId 系统id
+     * @return
+     */
+    public static List<SysMenuJoinSysRoleMenu> getMenuTree(Long systemId) {
+        //获取菜单
+        List<SysMenuJoinSysRoleMenu> menu = getMenu(systemId);
+        JList<SysMenuJoinSysRoleMenu> sysMenuJoinSysRoleMenus = new JArrayList<>(menu);
+        //生成树
+        JList<SysMenuJoinSysRoleMenu> tops = sysMenuJoinSysRoleMenus.filter().isNull(SysMenuJoinSysRoleMenu::getPaterId).list();
+        for (SysMenuJoinSysRoleMenu top : tops) {
+            List<SysMenuJoinSysRoleMenu> tree = Beans.tree(top, sysMenuJoinSysRoleMenus, SysMenuJoinSysRoleMenu::getId, SysMenuJoinSysRoleMenu::getPaterId, SysMenuJoinSysRoleMenu::getSonSysMenu);
+            top.setSonSysMenu(tree);
+        }
+        return tops;
+    }
+
 }

+ 0 - 9
authorize-api-service/src/main/java/com/xy/service/impl/AuthorizeServiceImpl.java

@@ -3,7 +3,6 @@ package com.xy.service.impl;
 import cn.dev33.satoken.stp.StpUtil;
 import com.xy.consts.CommConsts;
 import com.xy.dto.AuthorizeDto;
-import com.xy.dto.SysMenuDto;
 import com.xy.redis.RedisCache;
 import com.xy.service.AuthorizeService;
 import com.xy.utils.R;
@@ -19,14 +18,6 @@ import java.util.List;
 @AllArgsConstructor
 public class AuthorizeServiceImpl implements AuthorizeService {
 
-    private SysMenuServiceImpl sysMenuService;
-
-    @Override
-    @ApiOperation("获取菜单")
-    public R<List<SysMenuDto.Vo>> workMenu(SysMenuDto.WorkMenu workMenu) {
-        return sysMenuService.workMenu(workMenu);
-    }
-
     @Override
     @ApiOperation("获取所有系统ID")
     public R<List<Long>> getSystemIds() {

+ 37 - 2
authorize-api-service/src/main/java/com/xy/service/impl/SysMenuServiceImpl.java

@@ -16,6 +16,7 @@ import com.xy.mapper.SysRoleMenuMapper;
 import com.xy.redis.RedisCache;
 import com.xy.service.SysMenuService;
 import com.xy.service.SysRoleMenuService;
+import com.xy.utils.Emptys;
 import com.xy.utils.R;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -72,9 +73,43 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
         return R.ok(list);
     }
 
+    @PostMapping("workMenuAll")
+    @ApiOperation("用户全部菜单树")
+    public R<List<List<SysMenuDto.Vo>>> workMenuAll() {
+        List<List<SysMenuDto.Vo>> result = new ArrayList<>();
+        List<List<SysMenuJoinSysRoleMenu>> menu = RedisCache.getMenuTree();
+        menu.forEach(menus -> {
+            List<SysMenuDto.Vo> list = new ArrayList<>();
+            menus.forEach(sysMenuJoinSysRoleMenu -> {
+                SysMenuDto.Vo vo = copy(SysMenuDto.Vo.class, sysMenuJoinSysRoleMenu);
+                List<SysMenuDto.Vo> sonVos = copy(SysMenuDto.Vo.class, sysMenuJoinSysRoleMenu.getSonSysMenu());
+                list.add(vo.setSonSysMenu(sonVos));
+            });
+            if (Emptys.check(list)) {
+                result.add(list);
+            }
+        });
+        return R.ok(result);
+    }
+
+    @PostMapping("workMenuAllList")
+    @ApiOperation("用户全部菜单集合")
+    public R<List<List<SysMenuDto.Vo>>> workMenuAllList() {
+        List<List<SysMenuDto.Vo>> result = new ArrayList<>();
+        List<List<SysMenuJoinSysRoleMenu>> menu = RedisCache.getMenu();
+        menu.forEach(menus -> {
+            List<SysMenuDto.Vo> list = new ArrayList<>();
+            menus.forEach(sysMenuJoinSysRoleMenu -> list.add(copy(SysMenuDto.Vo.class, sysMenuJoinSysRoleMenu)));
+            if (Emptys.check(list)) {
+                result.add(list);
+            }
+        });
+        return R.ok(result);
+    }
+
     @PostMapping("menu")
-    @ApiOperation("全部菜单树")
-    public R<List<SysMenuDto.Vo>> menu(@RequestBody @Validated SysMenuDto.WorkMenu workMenu) {
+    @ApiOperation("系统菜单树")
+    public R<List<SysMenuDto.Vo>> menu(@RequestBody SysMenuDto.WorkMenu workMenu) {
         List<SysMenuDto.Vo> vos = copy(SysMenuDto.Vo.class, list(new LambdaQueryWrapper<SysMenu>().eq(SysMenu::getSysId, workMenu.getSysId())));
         JList<SysMenuDto.Vo> list = new JArrayList<>(vos).filter().isNull(SysMenuDto.Vo::getPaterId).list();
         for (SysMenuDto.Vo vo : list) {

+ 2 - 10
authorize-api/src/main/java/com/xy/dto/SysMenuDto.java

@@ -1,7 +1,6 @@
 package com.xy.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
-import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
@@ -13,25 +12,22 @@ import java.time.LocalDateTime;
 import java.util.List;
 
 @Data
-@ApiModel("菜单交互类")
 @Accessors(chain = true)
 public class SysMenuDto {
 
     @Data
-    @ApiModel("业务用户菜单树")
     @Accessors(chain = true)
     public static class WorkMenu {
 
         @NotNull(message = "systemId不能为空")
-        @ApiModelProperty(value = "系统id", required = true)
+        @ApiModelProperty("系统id")
         private Long sysId;
     }
 
     @Data
-    @ApiModel("角色管理员权限菜单")
     @Accessors(chain = true)
     public static class RoleAdminMenuIdsDto {
- 
+
         @NotNull(message = "角色ID不能为空")
         @ApiModelProperty(value = "角色ID", required = true)
         private Long roleId;
@@ -39,7 +35,6 @@ public class SysMenuDto {
     }
 
     @Data
-    @ApiModel("添加")
     @Accessors(chain = true)
     public static class Save {
 
@@ -77,7 +72,6 @@ public class SysMenuDto {
     }
 
     @Data
-    @ApiModel("修改")
     @Accessors(chain = true)
     public static class Update {
 
@@ -111,7 +105,6 @@ public class SysMenuDto {
     }
 
     @Data
-    @ApiModel("删除")
     @Accessors(chain = true)
     public static class Del {
 
@@ -122,7 +115,6 @@ public class SysMenuDto {
     }
 
     @Data
-    @ApiModel("返参类")
     @Accessors(chain = true)
     public static class Vo {
 

+ 0 - 10
authorize-api/src/main/java/com/xy/service/AuthorizeService.java

@@ -2,9 +2,7 @@ package com.xy.service;
 
 import com.xy.annotate.RestMappingController;
 import com.xy.dto.AuthorizeDto;
-import com.xy.dto.SysMenuDto;
 import com.xy.utils.R;
-import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
@@ -17,14 +15,6 @@ import java.util.List;
 @RestMappingController("authorize")
 public interface AuthorizeService {
 
-    /**
-     * 获取登录人菜单
-     *
-     * @return
-     */
-    @PostMapping("workMenu")
-    R<List<SysMenuDto.Vo>> workMenu(@RequestBody @Validated SysMenuDto.WorkMenu workMenu);
-
     /**
      * 获取所有系统ID
      *

+ 0 - 74
authorize-sdk/src/main/java/com/xy/utils/AuthorizeUtils.java

@@ -187,80 +187,6 @@ public class AuthorizeUtils {
         return getClientType(getToken());
     }
 
-    /**
-     * 获取菜单
-     *
-     * @param token    token
-     * @param systemId 系统id
-     * @return
-     */
-    public static List<SysMenuJoinSysRoleMenu> getMenu(String token, Long systemId) {
-        {
-            //远程调用
-            AuthorizeConfig authorizeConfig = getAuthorizeConfig();
-            if (!authorizeConfig.getIsNative()) {
-                JSONObject jsonObject = new JSONObject().set("systemId", systemId);
-                Object obj = send("/authorize/workMenu", token, jsonObject);
-                if (obj == null) {
-                    return new ArrayList<>();
-                }
-                return JSONUtil.parseArray(obj).toList(SysMenuJoinSysRoleMenu.class);
-            }
-        }
-        JList<SysMenuJoinSysRoleMenu> sysMenuJoinSysRoleMenus = new JArrayList<>();
-        //获取redis缓存
-        List<AuthorizeUtils.CacheEntity> cacheEntities = getRedisService().getMap(getKey(getLoginId(token, Long.class)), systemId.toString());
-        if (!Emptys.check(cacheEntities)) {
-            return sysMenuJoinSysRoleMenus;
-        }
-        //角色菜单累加
-        cacheEntities.forEach(cacheEntity -> {
-            if (Emptys.check(cacheEntity.getList())) {
-                sysMenuJoinSysRoleMenus.addAll(cacheEntity.getList());
-            }
-        });
-        //去重
-        sysMenuJoinSysRoleMenus.comparing(SysMenuJoinSysRoleMenu::getId);
-        return sysMenuJoinSysRoleMenus;
-    }
-
-    /**
-     * 获取菜单
-     *
-     * @return
-     */
-    public static List<SysMenuJoinSysRoleMenu> getMenu(Long systemId) {
-        return getMenu(getToken(), systemId);
-    }
-
-    /**
-     * 获取菜单树
-     *
-     * @param token    token
-     * @param systemId 系统id
-     * @return
-     */
-    public static List<SysMenuJoinSysRoleMenu> getMenuTree(String token, Long systemId) {
-        //获取菜单
-        JList<SysMenuJoinSysRoleMenu> sysMenuJoinSysRoleMenus = new JArrayList<>(getMenu(token, systemId));
-        //生成树
-        JList<SysMenuJoinSysRoleMenu> tops = sysMenuJoinSysRoleMenus.filter().isNull(SysMenuJoinSysRoleMenu::getPaterId).list();
-        for (SysMenuJoinSysRoleMenu top : tops) {
-            List<SysMenuJoinSysRoleMenu> tree = Beans.tree(top, sysMenuJoinSysRoleMenus, SysMenuJoinSysRoleMenu::getId, SysMenuJoinSysRoleMenu::getPaterId, SysMenuJoinSysRoleMenu::getSonSysMenu);
-            top.setSonSysMenu(tree);
-        }
-        return tops;
-    }
-
-    /**
-     * 获取菜单树
-     *
-     * @return
-     */
-    public static List<SysMenuJoinSysRoleMenu> getMenuTree(Long systemId) {
-        return getMenuTree(getToken(), systemId);
-    }
-
     /**
      * 获取所有系统ID
      *