Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Eladmin
Commits
0c6ad747
Commit
0c6ad747
authored
Oct 11, 2020
by
ZhengJie
Browse files
[代码优化](v2.6):角色管理分配菜单,菜单节点选择优化
1、选中主菜单,默认选中所有子菜单 2、取消主菜单,默认取消所有子菜单 close
https://github.com/elunez/eladmin/issues/449
parent
718c1460
Changes
3
Hide whitespace changes
Inline
Side-by-side
eladmin-system/src/main/java/me/zhengjie/modules/system/rest/MenuController.java
View file @
0c6ad747
...
@@ -35,6 +35,7 @@ import org.springframework.validation.annotation.Validated;
...
@@ -35,6 +35,7 @@ import org.springframework.validation.annotation.Validated;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
/**
* @author Zheng Jie
* @author Zheng Jie
...
@@ -73,6 +74,18 @@ public class MenuController {
...
@@ -73,6 +74,18 @@ public class MenuController {
return
new
ResponseEntity
<>(
menuService
.
getMenus
(
pid
),
HttpStatus
.
OK
);
return
new
ResponseEntity
<>(
menuService
.
getMenus
(
pid
),
HttpStatus
.
OK
);
}
}
@ApiOperation
(
"根据菜单ID返回所有子节点ID,包含自身ID"
)
@GetMapping
(
value
=
"/child"
)
@PreAuthorize
(
"@el.check('menu:list','roles:list')"
)
public
ResponseEntity
<
Object
>
child
(
@RequestParam
Long
id
){
Set
<
Menu
>
menuSet
=
new
HashSet
<>();
List
<
MenuDto
>
menuList
=
menuService
.
getMenus
(
id
);
menuSet
.
add
(
menuService
.
findOne
(
id
));
menuSet
=
menuService
.
getChildMenus
(
menuMapper
.
toEntity
(
menuList
),
menuSet
);
Set
<
Long
>
ids
=
menuSet
.
stream
().
map
(
Menu:
:
getId
).
collect
(
Collectors
.
toSet
());
return
new
ResponseEntity
<>(
ids
,
HttpStatus
.
OK
);
}
@GetMapping
@GetMapping
@ApiOperation
(
"查询菜单"
)
@ApiOperation
(
"查询菜单"
)
@PreAuthorize
(
"@el.check('menu:list')"
)
@PreAuthorize
(
"@el.check('menu:list')"
)
...
@@ -126,7 +139,7 @@ public class MenuController {
...
@@ -126,7 +139,7 @@ public class MenuController {
for
(
Long
id
:
ids
)
{
for
(
Long
id
:
ids
)
{
List
<
MenuDto
>
menuList
=
menuService
.
getMenus
(
id
);
List
<
MenuDto
>
menuList
=
menuService
.
getMenus
(
id
);
menuSet
.
add
(
menuService
.
findOne
(
id
));
menuSet
.
add
(
menuService
.
findOne
(
id
));
menuSet
=
menuService
.
get
Delete
Menus
(
menuMapper
.
toEntity
(
menuList
),
menuSet
);
menuSet
=
menuService
.
get
Child
Menus
(
menuMapper
.
toEntity
(
menuList
),
menuSet
);
}
}
menuService
.
delete
(
menuSet
);
menuService
.
delete
(
menuSet
);
return
new
ResponseEntity
<>(
HttpStatus
.
OK
);
return
new
ResponseEntity
<>(
HttpStatus
.
OK
);
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/MenuService.java
View file @
0c6ad747
...
@@ -59,12 +59,12 @@ public interface MenuService {
...
@@ -59,12 +59,12 @@ public interface MenuService {
void
update
(
Menu
resources
);
void
update
(
Menu
resources
);
/**
/**
* 获取
待删除的菜单
* 获取
所有子节点,包含自身ID
* @param menuList /
* @param menuList /
* @param menuSet /
* @param menuSet /
* @return /
* @return /
*/
*/
Set
<
Menu
>
get
Delete
Menus
(
List
<
Menu
>
menuList
,
Set
<
Menu
>
menuSet
);
Set
<
Menu
>
get
Child
Menus
(
List
<
Menu
>
menuList
,
Set
<
Menu
>
menuSet
);
/**
/**
* 构建菜单树
* 构建菜单树
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java
View file @
0c6ad747
...
@@ -186,13 +186,12 @@ public class MenuServiceImpl implements MenuService {
...
@@ -186,13 +186,12 @@ public class MenuServiceImpl implements MenuService {
}
}
@Override
@Override
public
Set
<
Menu
>
getDeleteMenus
(
List
<
Menu
>
menuList
,
Set
<
Menu
>
menuSet
)
{
public
Set
<
Menu
>
getChildMenus
(
List
<
Menu
>
menuList
,
Set
<
Menu
>
menuSet
)
{
// 递归找出待删除的菜单
for
(
Menu
menu
:
menuList
)
{
for
(
Menu
menu1
:
menuList
)
{
menuSet
.
add
(
menu
);
menuSet
.
add
(
menu1
);
List
<
Menu
>
menus
=
menuRepository
.
findByPid
(
menu
.
getId
());
List
<
Menu
>
menus
=
menuRepository
.
findByPid
(
menu1
.
getId
());
if
(
menus
!=
null
&&
menus
.
size
()!=
0
){
if
(
menus
!=
null
&&
menus
.
size
()!=
0
){
get
Delete
Menus
(
menus
,
menuSet
);
get
Child
Menus
(
menus
,
menuSet
);
}
}
}
}
return
menuSet
;
return
menuSet
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment