李进 hace 2 años
padre
commit
21936cc401

+ 5 - 0
authorize-api-service/src/main/java/com/xy/entity/SysSystem.java

@@ -35,4 +35,9 @@ public class SysSystem extends BaseEntity2<SysSystem> {
      */
     private Boolean status;
 
+    /**
+     * 类型
+     */
+    private Integer type;
+
 }

+ 1 - 49
authorize-api-service/src/main/java/com/xy/redis/RedisCache.java

@@ -20,7 +20,6 @@ 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工具类
@@ -95,6 +94,7 @@ public class RedisCache extends AuthorizeUtils {
                 .end();
         List<SysMenuJoinSysRoleMenu> sysMenus = sysMenuMapper.joinSelectList(sysMenuJoinLambdaWrapper, SysMenuJoinSysRoleMenu.class);
         JMap<Long, List<SysMenuJoinSysRoleMenu>> sysMenuMaps = new JArrayList<>(sysMenus).toMap(SysMenuJoinSysRoleMenu::getRoleId).group();
+        roleMenuRedisService.removeMap(getKey(loginId));
         for (SysSystem sysSystem : sysSystems) {
             List<AuthorizeUtils.CacheEntity> cacheEntitys = new ArrayList<>();
             JList<SysRole> list = new JArrayList<>(sysRoles).filter().eq(SysRole::getSysId, sysSystem.getId()).list();
@@ -155,54 +155,6 @@ public class RedisCache extends AuthorizeUtils {
         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;
-    }
-
     /**
      * 获取菜单
      *

+ 23 - 41
authorize-api-service/src/main/java/com/xy/service/impl/SysMenuServiceImpl.java

@@ -4,19 +4,17 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xy.collections.list.JArrayList;
 import com.xy.collections.list.JList;
+import com.xy.collections.map.JMap;
 import com.xy.consts.CommConsts;
 import com.xy.dto.SysMenuDto;
-import com.xy.entity.SysMenu;
-import com.xy.entity.SysMenuJoinSysRoleMenu;
-import com.xy.entity.SysRole;
-import com.xy.entity.SysRoleMenu;
+import com.xy.entity.*;
 import com.xy.mapper.SysMenuMapper;
 import com.xy.mapper.SysRoleMapper;
 import com.xy.mapper.SysRoleMenuMapper;
+import com.xy.mapper.SysSystemMapper;
 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;
@@ -26,6 +24,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import javax.validation.constraints.NotNull;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -51,6 +50,8 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
 
     private SysRoleMenuService sysRoleMenuService;
 
+    private SysSystemMapper sysSystemMapper;
+
     @PostMapping("workMenu")
     @ApiOperation("用户菜单树")
     public R<List<SysMenuDto.Vo>> workMenu(@RequestBody @Validated SysMenuDto.WorkMenu workMenu) {
@@ -66,45 +67,26 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
 
     @PostMapping("workMenuList")
     @ApiOperation("用户菜单集合")
-    public R<List<SysMenuDto.Vo>> workMenuList(@RequestBody @Validated SysMenuDto.WorkMenu workMenu) {
-        List<SysMenuDto.Vo> list = new ArrayList<>();
-        List<SysMenuJoinSysRoleMenu> menus = RedisCache.getMenu(workMenu.getSysId());
-        menus.forEach(sysMenuJoinSysRoleMenu -> list.add(copy(SysMenuDto.Vo.class, sysMenuJoinSysRoleMenu)));
-        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 -> {
+    public R<List<SysMenuDto.MenuVo>> workMenuList(@RequestBody @Validated SysMenuDto.WorkMenuList workMenu) {
+        List<SysMenuDto.MenuVo> menuVos = new ArrayList<>();
+        List<Long> sysIds = workMenu.getSysId();
+        List<SysSystem> sysSystems = sysSystemMapper.selectList(new LambdaQueryWrapper<SysSystem>().in(SysSystem::getId, sysIds));
+        JMap<Long, SysSystem> sysSystemJMap = new JArrayList<>(sysSystems).toMap(SysSystem::getId).cover();
+        for (Long sysId : sysIds) {
             List<SysMenuDto.Vo> list = new ArrayList<>();
+            List<SysMenuJoinSysRoleMenu> menus = RedisCache.getMenu(sysId);
             menus.forEach(sysMenuJoinSysRoleMenu -> list.add(copy(SysMenuDto.Vo.class, sysMenuJoinSysRoleMenu)));
-            if (Emptys.check(list)) {
-                result.add(list);
+            SysSystem sysSystem = sysSystemJMap.get(sysId);
+            if (sysSystem == null) {
+                continue;
             }
-        });
-        return R.ok(result);
+            SysMenuDto.MenuVo menuVo = new SysMenuDto.MenuVo()
+                    .setId(sysId)
+                    .setName(sysSystem.getName())
+                    .setMenu(list);
+            menuVos.add(menuVo);
+        }
+        return R.ok(menuVos);
     }
 
     @PostMapping("menu")

+ 24 - 1
authorize-api/src/main/java/com/xy/dto/SysMenuDto.java

@@ -19,11 +19,20 @@ public class SysMenuDto {
     @Accessors(chain = true)
     public static class WorkMenu {
 
-        @NotNull(message = "systemId不能为空")
+        @NotNull(message = "sysId不能为空")
         @ApiModelProperty("系统id")
         private Long sysId;
     }
 
+    @Data
+    @Accessors(chain = true)
+    public static class WorkMenuList {
+
+        @NotNull(message = "sysId不能为空")
+        @ApiModelProperty("系统id")
+        private List<Long> sysId;
+    }
+
     @Data
     @Accessors(chain = true)
     public static class RoleAdminMenuIdsDto {
@@ -114,6 +123,20 @@ public class SysMenuDto {
 
     }
 
+    @Data
+    @Accessors(chain = true)
+    public static class MenuVo {
+
+        @ApiModelProperty("系统id")
+        private Long id;
+
+        @ApiModelProperty("系统名称")
+        private String name;
+
+        @ApiModelProperty("菜单")
+        private List<Vo> menu;
+    }
+
     @Data
     @Accessors(chain = true)
     public static class Vo {

+ 10 - 0
authorize-api/src/main/java/com/xy/dto/SysSystemDto.java

@@ -31,6 +31,10 @@ public class SysSystemDto {
         @NotBlank(message = "name不能为空")
         @ApiModelProperty("名称")
         private String name;
+
+        @NotNull(message = "type不能为空")
+        @ApiModelProperty("类型")
+        private Integer type;
     }
 
     @Data
@@ -47,6 +51,9 @@ public class SysSystemDto {
 
         @ApiModelProperty("状态 true=启用 false=封禁")
         private Boolean status;
+
+        @ApiModelProperty("类型")
+        private Integer type;
     }
 
     @Data
@@ -96,6 +103,9 @@ public class SysSystemDto {
         @ApiModelProperty("唯一标识")
         private Long id;
 
+        @ApiModelProperty("类型")
+        private Integer type;
+
         @ApiModelProperty("创建时间")
         @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
         private LocalDateTime createTime;