Explorar o código

添加菜单排序

李进 %!s(int64=2) %!d(string=hai) anos
pai
achega
4e174cdb26

+ 23 - 3
authorize-api-service/src/main/java/com/xy/redis/RedisCache.java

@@ -170,8 +170,18 @@ public class RedisCache extends AuthorizeUtils {
      * @return
      */
     public static List<SysMenuJoinSysRoleMenu> getMenu(Long systemId) {
+        return getMenu(systemId, getClientType(getToken()));
+    }
+
+    /**
+     * 获取菜单
+     *
+     * @param systemId   系统id
+     * @param clientType 菜单类型
+     * @return
+     */
+    public static List<SysMenuJoinSysRoleMenu> getMenu(Long systemId, String clientType) {
         String token = getToken();
-        String clientType = getClientType(token);
         JList<SysMenuJoinSysRoleMenu> sysMenuJoinSysRoleMenus = new JArrayList<>();
         //获取redis缓存
         List<AuthorizeUtils.CacheEntity> cacheEntities = getRedisService().getMap(getKey(getLoginId(token, Long.class)), systemId.toString());
@@ -202,8 +212,19 @@ public class RedisCache extends AuthorizeUtils {
      * @return
      */
     public static List<SysMenuJoinSysRoleMenu> getMenuTree(Long systemId) {
+        return getMenuTree(systemId, getClientType(getToken()));
+    }
+
+    /**
+     * 获取菜单树
+     *
+     * @param systemId   系统id
+     * @param clientType 菜单类型
+     * @return
+     */
+    public static List<SysMenuJoinSysRoleMenu> getMenuTree(Long systemId, String clientType) {
         //获取菜单
-        List<SysMenuJoinSysRoleMenu> menu = getMenu(systemId);
+        List<SysMenuJoinSysRoleMenu> menu = getMenu(systemId, clientType);
         JList<SysMenuJoinSysRoleMenu> sysMenuJoinSysRoleMenus = new JArrayList<>(menu);
         //生成树
         JList<SysMenuJoinSysRoleMenu> tops = sysMenuJoinSysRoleMenus.filter().isNull(SysMenuJoinSysRoleMenu::getPaterId).list();
@@ -213,5 +234,4 @@ public class RedisCache extends AuthorizeUtils {
         }
         return tops;
     }
-
 }

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

@@ -57,7 +57,9 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
     @ApiOperation("用户菜单树")
     public R<List<SysMenuDto.Vo>> workMenu(@RequestBody @Validated SysMenuDto.WorkMenu workMenu) {
         List<SysMenuDto.Vo> list = new ArrayList<>();
-        List<SysMenuJoinSysRoleMenu> menus = RedisCache.getMenuTree(workMenu.getSysId());
+        List<SysMenuJoinSysRoleMenu> menus = Emptys.check(workMenu.getClientType())
+                ? RedisCache.getMenuTree(workMenu.getSysId(), workMenu.getClientType())
+                : RedisCache.getMenuTree(workMenu.getSysId());
         menus.forEach(sysMenuJoinSysRoleMenu -> {
             SysMenuDto.Vo vo = copy(SysMenuDto.Vo.class, sysMenuJoinSysRoleMenu);
             List<SysMenuDto.Vo> sonVos = copy(SysMenuDto.Vo.class, sysMenuJoinSysRoleMenu.getSonSysMenu());
@@ -75,7 +77,9 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
         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);
+            List<SysMenuJoinSysRoleMenu> menus = Emptys.check(workMenu.getClientType())
+                    ? RedisCache.getMenu(sysId)
+                    : RedisCache.getMenu(sysId, workMenu.getClientType());
             menus.forEach(sysMenuJoinSysRoleMenu -> list.add(copy(SysMenuDto.Vo.class, sysMenuJoinSysRoleMenu)));
             SysSystem sysSystem = sysSystemJMap.get(sysId);
             if (sysSystem == null) {

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

@@ -22,6 +22,9 @@ public class SysMenuDto {
         @NotNull(message = "sysId不能为空")
         @ApiModelProperty(value = "系统id", required = true)
         private Long sysId;
+
+        @ApiModelProperty(value = "客户端类型")
+        private String clientType;
     }
 
     @Data
@@ -43,6 +46,9 @@ public class SysMenuDto {
         @NotNull(message = "sysId不能为空")
         @ApiModelProperty(value = "系统id", required = true)
         private List<Long> sysId;
+
+        @ApiModelProperty(value = "客户端类型")
+        private String clientType;
     }
 
     @Data