Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
有来技术
youlai-mall
提交
1e55f082
Y
youlai-mall
项目概览
有来技术
/
youlai-mall
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
youlai-mall
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
1e55f082
编写于
11月 03, 2021
作者:
Z
zhangjiwei
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: 修复菜单和部门管理模糊查询的 bug
上级
97b0c914
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
76 addition
and
13 deletion
+76
-13
youlai-admin/admin-boot/src/main/java/com/youlai/admin/service/impl/SysDeptServiceImpl.java
...ava/com/youlai/admin/service/impl/SysDeptServiceImpl.java
+41
-8
youlai-admin/admin-boot/src/main/java/com/youlai/admin/service/impl/SysMenuServiceImpl.java
...ava/com/youlai/admin/service/impl/SysMenuServiceImpl.java
+35
-5
未找到文件。
youlai-admin/admin-boot/src/main/java/com/youlai/admin/service/impl/SysDeptServiceImpl.java
浏览文件 @
1e55f082
...
...
@@ -2,6 +2,7 @@ package com.youlai.admin.service.impl;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.youlai.admin.common.constant.SystemConstants
;
...
...
@@ -13,12 +14,9 @@ import com.youlai.admin.service.ISysDeptService;
import
com.youlai.common.constant.GlobalConstants
;
import
org.apache.logging.log4j.util.Strings
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.*
;
import
java.util.concurrent.atomic.AtomicBoolean
;
import
java.util.stream.Collectors
;
/**
* 部门业务类
...
...
@@ -38,9 +36,44 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
*/
@Override
public
List
<
DeptVO
>
listTable
(
Integer
status
,
String
name
)
{
List
<
SysDept
>
deptList
=
this
.
list
(
new
LambdaQueryWrapper
<
SysDept
>()
.
orderByAsc
(
SysDept:
:
getSort
));
List
<
DeptVO
>
deptTableList
=
recursionTableList
(
SystemConstants
.
ROOT_DEPT_ID
,
deptList
);
List
<
SysDept
>
deptList
=
this
.
list
(
new
LambdaQueryWrapper
<
SysDept
>()
.
like
(
StrUtil
.
isNotBlank
(
name
),
SysDept:
:
getName
,
name
)
.
orderByAsc
(
SysDept:
:
getSort
)
);
return
recursion
(
deptList
);
}
/**
* 递归生成部门表格层级列表
*
* @param deptList 部门列表
* @return 部门列表
*/
private
static
List
<
DeptVO
>
recursion
(
List
<
SysDept
>
deptList
)
{
List
<
DeptVO
>
deptTableList
=
new
ArrayList
<>();
// 保存所有节点的 id
Set
<
Long
>
nodeIdSet
=
deptList
.
stream
()
.
map
(
SysDept:
:
getId
)
.
collect
(
Collectors
.
toSet
());
for
(
SysDept
sysDept
:
deptList
)
{
// 不在节点 id 集合中存在的 id 即为顶级节点 id, 递归生成列表
Long
parentId
=
sysDept
.
getParentId
();
if
(!
nodeIdSet
.
contains
(
parentId
))
{
deptTableList
.
addAll
(
recursionTableList
(
parentId
,
deptList
));
nodeIdSet
.
add
(
parentId
);
}
}
// 如果结果列表为空说明所有的节点都是独立分散的, 直接转换后返回
if
(
deptTableList
.
isEmpty
())
{
return
deptList
.
stream
()
.
map
(
item
->
{
DeptVO
deptVO
=
new
DeptVO
();
BeanUtil
.
copyProperties
(
item
,
deptVO
);
return
deptVO
;
})
.
collect
(
Collectors
.
toList
());
}
return
deptTableList
;
}
...
...
youlai-admin/admin-boot/src/main/java/com/youlai/admin/service/impl/SysMenuServiceImpl.java
浏览文件 @
1e55f082
...
...
@@ -20,9 +20,8 @@ import lombok.RequiredArgsConstructor;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -50,10 +49,41 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
.
like
(
StrUtil
.
isNotBlank
(
name
),
SysMenu:
:
getName
,
name
)
.
orderByAsc
(
SysMenu:
:
getSort
)
);
List
<
MenuVO
>
tableList
=
recursionTableList
(
SystemConstants
.
ROOT_MENU_ID
,
menuList
);
return
tableList
;
return
recursion
(
menuList
);
}
/**
* 递归生成菜单表格层级列表
*
* @param menuList 菜单列表
* @return 菜单列表
*/
private
static
List
<
MenuVO
>
recursion
(
List
<
SysMenu
>
menuList
)
{
List
<
MenuVO
>
menuTableList
=
new
ArrayList
<>();
// 保存所有节点的 id
Set
<
Long
>
nodeIdSet
=
menuList
.
stream
()
.
map
(
SysMenu:
:
getId
)
.
collect
(
Collectors
.
toSet
());
for
(
SysMenu
sysMenu
:
menuList
)
{
// 不在节点 id 集合中存在的 id 即为顶级节点 id, 递归生成列表
Long
parentId
=
sysMenu
.
getParentId
();
if
(!
nodeIdSet
.
contains
(
parentId
))
{
menuTableList
.
addAll
(
recursionTableList
(
parentId
,
menuList
));
nodeIdSet
.
add
(
parentId
);
}
}
// 如果结果列表为空说明所有的节点都是独立分散的, 直接转换后返回
if
(
menuTableList
.
isEmpty
())
{
return
menuList
.
stream
()
.
map
(
item
->
{
MenuVO
menuVO
=
new
MenuVO
();
BeanUtil
.
copyProperties
(
item
,
menuVO
);
return
menuVO
;
})
.
collect
(
Collectors
.
toList
());
}
return
menuTableList
;
}
/**
* 递归生成菜单表格层级列表
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录