Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
有来开源组织
youlai-mall
提交
744b1b54
Y
youlai-mall
项目概览
有来开源组织
/
youlai-mall
通知
8
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 搜索 >>
提交
744b1b54
编写于
5月 31, 2022
作者:
郝
郝先瑞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: 菜单代码优化和添加菜单权限接口
上级
58406422
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
54 addition
and
34 deletion
+54
-34
youlai-admin/admin-boot/src/main/java/com/youlai/admin/controller/SysMenuController.java
...n/java/com/youlai/admin/controller/SysMenuController.java
+7
-7
youlai-admin/admin-boot/src/main/java/com/youlai/admin/service/SysMenuService.java
...rc/main/java/com/youlai/admin/service/SysMenuService.java
+1
-1
youlai-admin/admin-boot/src/main/java/com/youlai/admin/service/impl/SysMenuServiceImpl.java
...ava/com/youlai/admin/service/impl/SysMenuServiceImpl.java
+46
-26
未找到文件。
youlai-admin/admin-boot/src/main/java/com/youlai/admin/controller/SysMenuController.java
浏览文件 @
744b1b54
...
...
@@ -21,7 +21,7 @@ import java.util.List;
* 菜单路由控制器
*
* @author haoxr
* @date 2020
-11-
06
* @date 2020
/11/
06
*/
@Api
(
tags
=
"菜单接口"
)
@RestController
...
...
@@ -33,8 +33,8 @@ public class SysMenuController {
private
final
SysMenuService
menuService
;
private
final
SysPermissionService
permissionService
;
@ApiOperation
(
value
=
"菜单
表格(Table)
列表"
)
@GetMapping
(
"/list"
)
@ApiOperation
(
value
=
"菜单
权限
列表"
)
@GetMapping
(
"/
authorization-
list"
)
public
Result
list
(
@ApiParam
(
value
=
"菜单名称"
,
type
=
"query"
)
String
name
)
{
...
...
@@ -42,7 +42,7 @@ public class SysMenuController {
return
Result
.
success
(
menuList
);
}
@ApiOperation
(
value
=
"菜单表格
(Table)
列表"
)
@ApiOperation
(
value
=
"菜单表格
树形
列表"
)
@GetMapping
(
"/table"
)
public
Result
listTableMenus
(
@ApiParam
(
value
=
"菜单名称"
,
type
=
"query"
)
String
name
...
...
@@ -51,17 +51,17 @@ public class SysMenuController {
return
Result
.
success
(
menuList
);
}
@ApiOperation
(
value
=
"菜单下拉
(Select)
列表"
)
@ApiOperation
(
value
=
"菜单下拉
树
列表"
)
@GetMapping
(
"/select"
)
public
Result
listSelectMenus
()
{
List
<
OptionVO
>
menus
=
menuService
.
listMenus
();
return
Result
.
success
(
menus
);
}
@ApiOperation
(
value
=
"菜单路由
(Route)
列表"
)
@ApiOperation
(
value
=
"菜单路由列表"
)
@GetMapping
(
"/route"
)
public
Result
getRouteList
()
{
List
<
RouteVO
>
routeList
=
menuService
.
list
Next
Routes
();
List
<
RouteVO
>
routeList
=
menuService
.
listRoutes
();
return
Result
.
success
(
routeList
);
}
...
...
youlai-admin/admin-boot/src/main/java/com/youlai/admin/service/SysMenuService.java
浏览文件 @
744b1b54
...
...
@@ -49,7 +49,7 @@ public interface SysMenuService extends IService<SysMenu> {
*
* @return
*/
List
<
RouteVO
>
list
Next
Routes
();
List
<
RouteVO
>
listRoutes
();
/**
*
...
...
youlai-admin/admin-boot/src/main/java/com/youlai/admin/service/impl/SysMenuServiceImpl.java
浏览文件 @
744b1b54
...
...
@@ -9,6 +9,7 @@ import com.youlai.admin.common.constant.SystemConstants;
import
com.youlai.admin.common.enums.MenuTypeEnum
;
import
com.youlai.admin.mapper.SysMenuMapper
;
import
com.youlai.admin.pojo.entity.SysMenu
;
import
com.youlai.admin.pojo.entity.SysPermission
;
import
com.youlai.admin.pojo.vo.menu.TableMenuVO
;
import
com.youlai.admin.pojo.vo.menu.RouteVO
;
import
com.youlai.admin.service.SysMenuService
;
...
...
@@ -38,9 +39,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
/**
* 菜单表格树形列表
*
* @param name 菜单名称
* @return
*/
@Override
public
List
<
TableMenuVO
>
listTableMenus
(
String
name
)
{
...
...
@@ -64,17 +62,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
}
/**
* 菜单下拉列表
*/
@Override
public
List
<
OptionVO
>
listMenus
()
{
List
<
SysMenu
>
menuList
=
this
.
list
(
new
LambdaQueryWrapper
<
SysMenu
>().
orderByAsc
(
SysMenu:
:
getSort
));
List
<
OptionVO
>
menus
=
recursionMenus
(
SystemConstants
.
ROOT_MENU_ID
,
menuList
);
return
menus
;
}
/**
* 保存菜单路由
*/
...
...
@@ -100,17 +87,24 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
return
result
;
}
/**
* 菜单下拉数据
*/
@Override
public
List
<
OptionVO
>
listMenus
()
{
List
<
SysMenu
>
menuList
=
this
.
list
(
new
LambdaQueryWrapper
<
SysMenu
>().
orderByAsc
(
SysMenu:
:
getSort
));
List
<
OptionVO
>
menus
=
recursionMenus
(
SystemConstants
.
ROOT_MENU_ID
,
menuList
);
return
menus
;
}
/**
* 获取路由列表(适配Vue3的vue-next-router)
*
* @return
* 路由列表
*/
@Override
@Cacheable
(
cacheNames
=
"system"
,
key
=
"'routes'"
)
public
List
<
RouteVO
>
list
Next
Routes
()
{
public
List
<
RouteVO
>
listRoutes
()
{
List
<
SysMenu
>
menuList
=
this
.
baseMapper
.
listRoutes
();
List
<
RouteVO
>
list
=
recur
sionNextRoute
(
SystemConstants
.
ROOT_MENU_ID
,
menuList
);
List
<
RouteVO
>
list
=
recur
Routes
(
SystemConstants
.
ROOT_MENU_ID
,
menuList
);
return
list
;
}
...
...
@@ -121,7 +115,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* @param menuList 菜单列表
* @return
*/
private
List
<
RouteVO
>
recur
sionNextRoute
(
Long
parentId
,
List
<
SysMenu
>
menuList
)
{
private
List
<
RouteVO
>
recur
Routes
(
Long
parentId
,
List
<
SysMenu
>
menuList
)
{
List
<
RouteVO
>
list
=
new
ArrayList
<>();
Optional
.
ofNullable
(
menuList
).
ifPresent
(
menus
->
menus
.
stream
().
filter
(
menu
->
menu
.
getParentId
().
equals
(
parentId
))
.
forEach
(
menu
->
{
...
...
@@ -130,9 +124,9 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
MenuTypeEnum
menuTypeEnum
=
menu
.
getType
();
if
(
MenuTypeEnum
.
MENU
.
equals
(
menuTypeEnum
))
{
routeVO
.
setName
(
menu
.
getPath
());
// 根据name路由跳转 this.$router.push({
path
:xxx})
routeVO
.
setName
(
menu
.
getPath
());
// 根据name路由跳转 this.$router.push({
name
:xxx})
}
routeVO
.
setPath
(
menu
.
getPath
());
// 根据path路由跳转 this.$router.push({
name
:xxx})
routeVO
.
setPath
(
menu
.
getPath
());
// 根据path路由跳转 this.$router.push({
path
:xxx})
routeVO
.
setRedirect
(
menu
.
getRedirect
());
routeVO
.
setComponent
(
menu
.
getComponent
());
routeVO
.
setRedirect
(
menu
.
getRedirect
());
...
...
@@ -145,8 +139,9 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
meta
.
setKeepAlive
(
true
);
routeVO
.
setMeta
(
meta
);
List
<
RouteVO
>
children
=
recur
sionNextRoute
(
menu
.
getId
(),
menuList
);
List
<
RouteVO
>
children
=
recur
Routes
(
menu
.
getId
(),
menuList
);
routeVO
.
setChildren
(
children
);
list
.
add
(
routeVO
);
}));
return
list
;
...
...
@@ -161,8 +156,10 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
*/
@Override
public
List
<
OptionVO
>
listMenuPerms
(
String
name
)
{
List
<
OptionVO
>
menus
=
this
.
listMenus
();
return
null
;
List
<
SysMenu
>
menuList
=
this
.
list
(
new
LambdaQueryWrapper
<
SysMenu
>().
orderByAsc
(
SysMenu:
:
getSort
));
List
<
SysPermission
>
permList
=
permissionService
.
list
();
List
<
OptionVO
>
menus
=
recursionMenuPerms
(
SystemConstants
.
ROOT_MENU_ID
,
menuList
,
permList
);
return
menus
;
}
/**
...
...
@@ -201,6 +198,30 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
return
menus
;
}
/**
* 递归生成菜单下拉层级列表
*
* @param parentId 父级ID
* @param menuList 菜单列表
* @return
*/
private
static
List
<
OptionVO
>
recursionMenuPerms
(
Long
parentId
,
List
<
SysMenu
>
menuList
,
List
<
SysPermission
>
permList
)
{
List
<
OptionVO
>
menus
=
Optional
.
ofNullable
(
menuList
).
orElse
(
new
ArrayList
<>()).
stream
()
.
filter
(
menu
->
menu
.
getParentId
().
equals
(
parentId
))
.
map
(
menu
->
{
OptionVO
option
=
new
OptionVO
(
"m_"
+
menu
.
getId
(),
menu
.
getName
());
List
<
OptionVO
>
children
=
recursionMenuPerms
(
menu
.
getId
(),
menuList
,
permList
);
List
<
OptionVO
>
permChildren
=
permList
.
stream
().
filter
(
perm
->
perm
.
getMenuId
().
equals
(
menu
.
getId
()))
.
map
(
perm
->
new
OptionVO
(
"p_"
+
perm
.
getId
(),
perm
.
getName
()))
.
collect
(
Collectors
.
toList
());
children
.
addAll
(
permChildren
);
option
.
setChildren
(
children
);
return
option
;
}).
collect
(
Collectors
.
toList
());
return
menus
;
}
/**
* 清理路由缓存
...
...
@@ -210,5 +231,4 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
public
void
cleanCache
()
{
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录