Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
S
sts网站
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liyang
sts网站
Commits
6fe9a358
Commit
6fe9a358
authored
Apr 06, 2021
by
yvan7123
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java.
parent
30f330f4
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
465 additions
and
465 deletions
+465
-465
SysMenuServiceImpl.java
...ava/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
+465
-465
No files found.
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
View file @
6fe9a358
package
com
.
ruoyi
.
system
.
service
.
impl
;
package
com
.
ruoyi
.
system
.
service
.
impl
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.HashSet
;
import
java.util.HashSet
;
import
java.util.Iterator
;
import
java.util.Iterator
;
import
java.util.LinkedList
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
com.ruoyi.common.constant.UserConstants
;
import
com.ruoyi.common.constant.UserConstants
;
import
com.ruoyi.common.core.domain.TreeSelect
;
import
com.ruoyi.common.core.domain.TreeSelect
;
import
com.ruoyi.common.core.domain.entity.SysMenu
;
import
com.ruoyi.common.core.domain.entity.SysMenu
;
import
com.ruoyi.common.core.domain.entity.SysRole
;
import
com.ruoyi.common.core.domain.entity.SysRole
;
import
com.ruoyi.common.core.domain.entity.SysUser
;
import
com.ruoyi.common.core.domain.entity.SysUser
;
import
com.ruoyi.common.utils.SecurityUtils
;
import
com.ruoyi.common.utils.SecurityUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.system.domain.vo.MetaVo
;
import
com.ruoyi.system.domain.vo.MetaVo
;
import
com.ruoyi.system.domain.vo.RouterVo
;
import
com.ruoyi.system.domain.vo.RouterVo
;
import
com.ruoyi.system.mapper.SysMenuMapper
;
import
com.ruoyi.system.mapper.SysMenuMapper
;
import
com.ruoyi.system.mapper.SysRoleMapper
;
import
com.ruoyi.system.mapper.SysRoleMapper
;
import
com.ruoyi.system.mapper.SysRoleMenuMapper
;
import
com.ruoyi.system.mapper.SysRoleMenuMapper
;
import
com.ruoyi.system.service.ISysMenuService
;
import
com.ruoyi.system.service.ISysMenuService
;
/**
/**
* 菜单 业务层处理
* 菜单 业务层处理
*
*
* @author ruoyi
* @author ruoyi
*/
*/
@Service
@Service
public
class
SysMenuServiceImpl
implements
ISysMenuService
public
class
SysMenuServiceImpl
implements
ISysMenuService
{
{
public
static
final
String
PREMISSION_STRING
=
"perms[\"{0}\"]"
;
public
static
final
String
PREMISSION_STRING
=
"perms[\"{0}\"]"
;
@Autowired
@Autowired
private
SysMenuMapper
menuMapper
;
private
SysMenuMapper
menuMapper
;
@Autowired
@Autowired
private
SysRoleMapper
roleMapper
;
private
SysRoleMapper
roleMapper
;
@Autowired
@Autowired
private
SysRoleMenuMapper
roleMenuMapper
;
private
SysRoleMenuMapper
roleMenuMapper
;
/**
/**
* 根据用户查询系统菜单列表
* 根据用户查询系统菜单列表
*
*
* @param userId 用户ID
* @param userId 用户ID
* @return 菜单列表
* @return 菜单列表
*/
*/
@Override
@Override
public
List
<
SysMenu
>
selectMenuList
(
Long
userId
)
public
List
<
SysMenu
>
selectMenuList
(
Long
userId
)
{
{
return
selectMenuList
(
new
SysMenu
(),
userId
);
return
selectMenuList
(
new
SysMenu
(),
userId
);
}
}
/**
/**
* 查询系统菜单列表
* 查询系统菜单列表
*
*
* @param menu 菜单信息
* @param menu 菜单信息
* @return 菜单列表
* @return 菜单列表
*/
*/
@Override
@Override
public
List
<
SysMenu
>
selectMenuList
(
SysMenu
menu
,
Long
userId
)
public
List
<
SysMenu
>
selectMenuList
(
SysMenu
menu
,
Long
userId
)
{
{
List
<
SysMenu
>
menuList
=
null
;
List
<
SysMenu
>
menuList
=
null
;
// 管理员显示所有菜单信息
// 管理员显示所有菜单信息
if
(
SysUser
.
isAdmin
(
userId
))
if
(
SysUser
.
isAdmin
(
userId
))
{
{
menuList
=
menuMapper
.
selectMenuList
(
menu
);
menuList
=
menuMapper
.
selectMenuList
(
menu
);
}
}
else
else
{
{
menu
.
getParams
().
put
(
"userId"
,
userId
);
menu
.
getParams
().
put
(
"userId"
,
userId
);
menuList
=
menuMapper
.
selectMenuListByUserId
(
menu
);
menuList
=
menuMapper
.
selectMenuListByUserId
(
menu
);
}
}
return
menuList
;
return
menuList
;
}
}
/**
/**
* 根据用户ID查询权限
* 根据用户ID查询权限
*
*
* @param userId 用户ID
* @param userId 用户ID
* @return 权限列表
* @return 权限列表
*/
*/
@Override
@Override
public
Set
<
String
>
selectMenuPermsByUserId
(
Long
userId
)
public
Set
<
String
>
selectMenuPermsByUserId
(
Long
userId
)
{
{
List
<
String
>
perms
=
menuMapper
.
selectMenuPermsByUserId
(
userId
);
List
<
String
>
perms
=
menuMapper
.
selectMenuPermsByUserId
(
userId
);
Set
<
String
>
permsSet
=
new
HashSet
<>();
Set
<
String
>
permsSet
=
new
HashSet
<>();
for
(
String
perm
:
perms
)
for
(
String
perm
:
perms
)
{
{
if
(
StringUtils
.
isNotEmpty
(
perm
))
if
(
StringUtils
.
isNotEmpty
(
perm
))
{
{
permsSet
.
addAll
(
Arrays
.
asList
(
perm
.
trim
().
split
(
","
)));
permsSet
.
addAll
(
Arrays
.
asList
(
perm
.
trim
().
split
(
","
)));
}
}
}
}
return
permsSet
;
return
permsSet
;
}
}
/**
/**
* 根据用户ID查询菜单
* 根据用户ID查询菜单
*
*
* @param userId 用户名称
* @param userId 用户名称
* @return 菜单列表
* @return 菜单列表
*/
*/
@Override
@Override
public
List
<
SysMenu
>
selectMenuTreeByUserId
(
Long
userId
)
public
List
<
SysMenu
>
selectMenuTreeByUserId
(
Long
userId
)
{
{
List
<
SysMenu
>
menus
=
null
;
List
<
SysMenu
>
menus
=
null
;
if
(
SecurityUtils
.
isAdmin
(
userId
))
if
(
SecurityUtils
.
isAdmin
(
userId
))
{
{
menus
=
menuMapper
.
selectMenuTreeAll
();
menus
=
menuMapper
.
selectMenuTreeAll
();
}
}
else
else
{
{
menus
=
menuMapper
.
selectMenuTreeByUserId
(
userId
);
menus
=
menuMapper
.
selectMenuTreeByUserId
(
userId
);
}
}
return
getChildPerms
(
menus
,
0
);
return
getChildPerms
(
menus
,
0
);
}
}
/**
/**
* 根据角色ID查询菜单树信息
* 根据角色ID查询菜单树信息
*
*
* @param roleId 角色ID
* @param roleId 角色ID
* @return 选中菜单列表
* @return 选中菜单列表
*/
*/
@Override
@Override
public
List
<
Integer
>
selectMenuListByRoleId
(
Long
roleId
)
public
List
<
Integer
>
selectMenuListByRoleId
(
Long
roleId
)
{
{
SysRole
role
=
roleMapper
.
selectRoleById
(
roleId
);
SysRole
role
=
roleMapper
.
selectRoleById
(
roleId
);
return
menuMapper
.
selectMenuListByRoleId
(
roleId
,
role
.
isMenuCheckStrictly
());
return
menuMapper
.
selectMenuListByRoleId
(
roleId
,
role
.
isMenuCheckStrictly
());
}
}
/**
/**
* 构建前端路由所需要的菜单
* 构建前端路由所需要的菜单
*
*
* @param menus 菜单列表
* @param menus 菜单列表
* @return 路由列表
* @return 路由列表
*/
*/
@Override
@Override
public
List
<
RouterVo
>
buildMenus
(
List
<
SysMenu
>
menus
)
public
List
<
RouterVo
>
buildMenus
(
List
<
SysMenu
>
menus
)
{
{
List
<
RouterVo
>
routers
=
new
LinkedList
<
RouterVo
>();
List
<
RouterVo
>
routers
=
new
LinkedList
<
RouterVo
>();
for
(
SysMenu
menu
:
menus
)
for
(
SysMenu
menu
:
menus
)
{
{
RouterVo
router
=
new
RouterVo
();
RouterVo
router
=
new
RouterVo
();
router
.
setHidden
(
"1"
.
equals
(
menu
.
getVisible
()));
router
.
setHidden
(
"1"
.
equals
(
menu
.
getVisible
()));
router
.
setName
(
getRouteName
(
menu
));
router
.
setName
(
getRouteName
(
menu
));
router
.
setPath
(
getRouterPath
(
menu
));
router
.
setPath
(
getRouterPath
(
menu
));
router
.
setComponent
(
getComponent
(
menu
));
router
.
setComponent
(
getComponent
(
menu
));
router
.
setMeta
(
new
MetaVo
(
menu
.
getMenuName
(),
menu
.
getIcon
(),
StringUtils
.
equals
(
"1"
,
menu
.
getIsCache
())));
router
.
setMeta
(
new
MetaVo
(
menu
.
getMenuName
(),
menu
.
getIcon
(),
StringUtils
.
equals
(
"1"
,
menu
.
getIsCache
())));
List
<
SysMenu
>
cMenus
=
menu
.
getChildren
();
List
<
SysMenu
>
cMenus
=
menu
.
getChildren
();
if
(!
cMenus
.
isEmpty
()
&&
cMenus
.
size
()
>
0
&&
UserConstants
.
TYPE_DIR
.
equals
(
menu
.
getMenuType
()))
if
(!
cMenus
.
isEmpty
()
&&
cMenus
.
size
()
>
0
&&
UserConstants
.
TYPE_DIR
.
equals
(
menu
.
getMenuType
()))
{
{
router
.
setAlwaysShow
(
true
);
router
.
setAlwaysShow
(
true
);
router
.
setRedirect
(
"noRedirect"
);
router
.
setRedirect
(
"noRedirect"
);
router
.
setChildren
(
buildMenus
(
cMenus
));
router
.
setChildren
(
buildMenus
(
cMenus
));
}
}
else
if
(
isMe
unFrame
(
menu
))
else
if
(
isMe
nuFrame
(
menu
))
{
{
List
<
RouterVo
>
childrenList
=
new
ArrayList
<
RouterVo
>();
List
<
RouterVo
>
childrenList
=
new
ArrayList
<
RouterVo
>();
RouterVo
children
=
new
RouterVo
();
RouterVo
children
=
new
RouterVo
();
children
.
setPath
(
menu
.
getPath
());
children
.
setPath
(
menu
.
getPath
());
children
.
setComponent
(
menu
.
getComponent
());
children
.
setComponent
(
menu
.
getComponent
());
children
.
setName
(
StringUtils
.
capitalize
(
menu
.
getPath
()));
children
.
setName
(
StringUtils
.
capitalize
(
menu
.
getPath
()));
children
.
setMeta
(
new
MetaVo
(
menu
.
getMenuName
(),
menu
.
getIcon
(),
StringUtils
.
equals
(
"1"
,
menu
.
getIsCache
())));
children
.
setMeta
(
new
MetaVo
(
menu
.
getMenuName
(),
menu
.
getIcon
(),
StringUtils
.
equals
(
"1"
,
menu
.
getIsCache
())));
childrenList
.
add
(
children
);
childrenList
.
add
(
children
);
router
.
setChildren
(
childrenList
);
router
.
setChildren
(
childrenList
);
}
}
routers
.
add
(
router
);
routers
.
add
(
router
);
}
}
return
routers
;
return
routers
;
}
}
/**
/**
* 构建前端所需要树结构
* 构建前端所需要树结构
*
*
* @param menus 菜单列表
* @param menus 菜单列表
* @return 树结构列表
* @return 树结构列表
*/
*/
@Override
@Override
public
List
<
SysMenu
>
buildMenuTree
(
List
<
SysMenu
>
menus
)
public
List
<
SysMenu
>
buildMenuTree
(
List
<
SysMenu
>
menus
)
{
{
List
<
SysMenu
>
returnList
=
new
ArrayList
<
SysMenu
>();
List
<
SysMenu
>
returnList
=
new
ArrayList
<
SysMenu
>();
List
<
Long
>
tempList
=
new
ArrayList
<
Long
>();
List
<
Long
>
tempList
=
new
ArrayList
<
Long
>();
for
(
SysMenu
dept
:
menus
)
for
(
SysMenu
dept
:
menus
)
{
{
tempList
.
add
(
dept
.
getMenuId
());
tempList
.
add
(
dept
.
getMenuId
());
}
}
for
(
Iterator
<
SysMenu
>
iterator
=
menus
.
iterator
();
iterator
.
hasNext
();)
for
(
Iterator
<
SysMenu
>
iterator
=
menus
.
iterator
();
iterator
.
hasNext
();)
{
{
SysMenu
menu
=
(
SysMenu
)
iterator
.
next
();
SysMenu
menu
=
(
SysMenu
)
iterator
.
next
();
// 如果是顶级节点, 遍历该父节点的所有子节点
// 如果是顶级节点, 遍历该父节点的所有子节点
if
(!
tempList
.
contains
(
menu
.
getParentId
()))
if
(!
tempList
.
contains
(
menu
.
getParentId
()))
{
{
recursionFn
(
menus
,
menu
);
recursionFn
(
menus
,
menu
);
returnList
.
add
(
menu
);
returnList
.
add
(
menu
);
}
}
}
}
if
(
returnList
.
isEmpty
())
if
(
returnList
.
isEmpty
())
{
{
returnList
=
menus
;
returnList
=
menus
;
}
}
return
returnList
;
return
returnList
;
}
}
/**
/**
* 构建前端所需要下拉树结构
* 构建前端所需要下拉树结构
*
*
* @param menus 菜单列表
* @param menus 菜单列表
* @return 下拉树结构列表
* @return 下拉树结构列表
*/
*/
@Override
@Override
public
List
<
TreeSelect
>
buildMenuTreeSelect
(
List
<
SysMenu
>
menus
)
public
List
<
TreeSelect
>
buildMenuTreeSelect
(
List
<
SysMenu
>
menus
)
{
{
List
<
SysMenu
>
menuTrees
=
buildMenuTree
(
menus
);
List
<
SysMenu
>
menuTrees
=
buildMenuTree
(
menus
);
return
menuTrees
.
stream
().
map
(
TreeSelect:
:
new
).
collect
(
Collectors
.
toList
());
return
menuTrees
.
stream
().
map
(
TreeSelect:
:
new
).
collect
(
Collectors
.
toList
());
}
}
/**
/**
* 根据菜单ID查询信息
* 根据菜单ID查询信息
*
*
* @param menuId 菜单ID
* @param menuId 菜单ID
* @return 菜单信息
* @return 菜单信息
*/
*/
@Override
@Override
public
SysMenu
selectMenuById
(
Long
menuId
)
public
SysMenu
selectMenuById
(
Long
menuId
)
{
{
return
menuMapper
.
selectMenuById
(
menuId
);
return
menuMapper
.
selectMenuById
(
menuId
);
}
}
/**
/**
* 是否存在菜单子节点
* 是否存在菜单子节点
*
*
* @param menuId 菜单ID
* @param menuId 菜单ID
* @return 结果
* @return 结果
*/
*/
@Override
@Override
public
boolean
hasChildByMenuId
(
Long
menuId
)
public
boolean
hasChildByMenuId
(
Long
menuId
)
{
{
int
result
=
menuMapper
.
hasChildByMenuId
(
menuId
);
int
result
=
menuMapper
.
hasChildByMenuId
(
menuId
);
return
result
>
0
?
true
:
false
;
return
result
>
0
?
true
:
false
;
}
}
/**
/**
* 查询菜单使用数量
* 查询菜单使用数量
*
*
* @param menuId 菜单ID
* @param menuId 菜单ID
* @return 结果
* @return 结果
*/
*/
@Override
@Override
public
boolean
checkMenuExistRole
(
Long
menuId
)
public
boolean
checkMenuExistRole
(
Long
menuId
)
{
{
int
result
=
roleMenuMapper
.
checkMenuExistRole
(
menuId
);
int
result
=
roleMenuMapper
.
checkMenuExistRole
(
menuId
);
return
result
>
0
?
true
:
false
;
return
result
>
0
?
true
:
false
;
}
}
/**
/**
* 新增保存菜单信息
* 新增保存菜单信息
*
*
* @param menu 菜单信息
* @param menu 菜单信息
* @return 结果
* @return 结果
*/
*/
@Override
@Override
public
int
insertMenu
(
SysMenu
menu
)
public
int
insertMenu
(
SysMenu
menu
)
{
{
return
menuMapper
.
insertMenu
(
menu
);
return
menuMapper
.
insertMenu
(
menu
);
}
}
/**
/**
* 修改保存菜单信息
* 修改保存菜单信息
*
*
* @param menu 菜单信息
* @param menu 菜单信息
* @return 结果
* @return 结果
*/
*/
@Override
@Override
public
int
updateMenu
(
SysMenu
menu
)
public
int
updateMenu
(
SysMenu
menu
)
{
{
return
menuMapper
.
updateMenu
(
menu
);
return
menuMapper
.
updateMenu
(
menu
);
}
}
/**
/**
* 删除菜单管理信息
* 删除菜单管理信息
*
*
* @param menuId 菜单ID
* @param menuId 菜单ID
* @return 结果
* @return 结果
*/
*/
@Override
@Override
public
int
deleteMenuById
(
Long
menuId
)
public
int
deleteMenuById
(
Long
menuId
)
{
{
return
menuMapper
.
deleteMenuById
(
menuId
);
return
menuMapper
.
deleteMenuById
(
menuId
);
}
}
/**
/**
* 校验菜单名称是否唯一
* 校验菜单名称是否唯一
*
*
* @param menu 菜单信息
* @param menu 菜单信息
* @return 结果
* @return 结果
*/
*/
@Override
@Override
public
String
checkMenuNameUnique
(
SysMenu
menu
)
public
String
checkMenuNameUnique
(
SysMenu
menu
)
{
{
Long
menuId
=
StringUtils
.
isNull
(
menu
.
getMenuId
())
?
-
1L
:
menu
.
getMenuId
();
Long
menuId
=
StringUtils
.
isNull
(
menu
.
getMenuId
())
?
-
1L
:
menu
.
getMenuId
();
SysMenu
info
=
menuMapper
.
checkMenuNameUnique
(
menu
.
getMenuName
(),
menu
.
getParentId
());
SysMenu
info
=
menuMapper
.
checkMenuNameUnique
(
menu
.
getMenuName
(),
menu
.
getParentId
());
if
(
StringUtils
.
isNotNull
(
info
)
&&
info
.
getMenuId
().
longValue
()
!=
menuId
.
longValue
())
if
(
StringUtils
.
isNotNull
(
info
)
&&
info
.
getMenuId
().
longValue
()
!=
menuId
.
longValue
())
{
{
return
UserConstants
.
NOT_UNIQUE
;
return
UserConstants
.
NOT_UNIQUE
;
}
}
return
UserConstants
.
UNIQUE
;
return
UserConstants
.
UNIQUE
;
}
}
/**
/**
* 获取路由名称
* 获取路由名称
*
*
* @param menu 菜单信息
* @param menu 菜单信息
* @return 路由名称
* @return 路由名称
*/
*/
public
String
getRouteName
(
SysMenu
menu
)
public
String
getRouteName
(
SysMenu
menu
)
{
{
String
routerName
=
StringUtils
.
capitalize
(
menu
.
getPath
());
String
routerName
=
StringUtils
.
capitalize
(
menu
.
getPath
());
// 非外链并且是一级目录(类型为目录)
// 非外链并且是一级目录(类型为目录)
if
(
isMe
unFrame
(
menu
))
if
(
isMe
nuFrame
(
menu
))
{
{
routerName
=
StringUtils
.
EMPTY
;
routerName
=
StringUtils
.
EMPTY
;
}
}
return
routerName
;
return
routerName
;
}
}
/**
/**
* 获取路由地址
* 获取路由地址
*
*
* @param menu 菜单信息
* @param menu 菜单信息
* @return 路由地址
* @return 路由地址
*/
*/
public
String
getRouterPath
(
SysMenu
menu
)
public
String
getRouterPath
(
SysMenu
menu
)
{
{
String
routerPath
=
menu
.
getPath
();
String
routerPath
=
menu
.
getPath
();
// 非外链并且是一级目录(类型为目录)
// 非外链并且是一级目录(类型为目录)
if
(
0
==
menu
.
getParentId
().
intValue
()
&&
UserConstants
.
TYPE_DIR
.
equals
(
menu
.
getMenuType
())
if
(
0
==
menu
.
getParentId
().
intValue
()
&&
UserConstants
.
TYPE_DIR
.
equals
(
menu
.
getMenuType
())
&&
UserConstants
.
NO_FRAME
.
equals
(
menu
.
getIsFrame
()))
&&
UserConstants
.
NO_FRAME
.
equals
(
menu
.
getIsFrame
()))
{
{
routerPath
=
"/"
+
menu
.
getPath
();
routerPath
=
"/"
+
menu
.
getPath
();
}
}
// 非外链并且是一级目录(类型为菜单)
// 非外链并且是一级目录(类型为菜单)
else
if
(
isMe
unFrame
(
menu
))
else
if
(
isMe
nuFrame
(
menu
))
{
{
routerPath
=
"/"
;
routerPath
=
"/"
;
}
}
return
routerPath
;
return
routerPath
;
}
}
/**
/**
* 获取组件信息
* 获取组件信息
*
*
* @param menu 菜单信息
* @param menu 菜单信息
* @return 组件信息
* @return 组件信息
*/
*/
public
String
getComponent
(
SysMenu
menu
)
public
String
getComponent
(
SysMenu
menu
)
{
{
String
component
=
UserConstants
.
LAYOUT
;
String
component
=
UserConstants
.
LAYOUT
;
if
(
StringUtils
.
isNotEmpty
(
menu
.
getComponent
())
&&
!
isMe
unFrame
(
menu
))
if
(
StringUtils
.
isNotEmpty
(
menu
.
getComponent
())
&&
!
isMe
nuFrame
(
menu
))
{
{
component
=
menu
.
getComponent
();
component
=
menu
.
getComponent
();
}
}
else
if
(
StringUtils
.
isEmpty
(
menu
.
getComponent
())
&&
isParentView
(
menu
))
else
if
(
StringUtils
.
isEmpty
(
menu
.
getComponent
())
&&
isParentView
(
menu
))
{
{
component
=
UserConstants
.
PARENT_VIEW
;
component
=
UserConstants
.
PARENT_VIEW
;
}
}
return
component
;
return
component
;
}
}
/**
/**
* 是否为菜单内部跳转
* 是否为菜单内部跳转
*
*
* @param menu 菜单信息
* @param menu 菜单信息
* @return 结果
* @return 结果
*/
*/
public
boolean
isMe
unFrame
(
SysMenu
menu
)
public
boolean
isMe
nuFrame
(
SysMenu
menu
)
{
{
return
menu
.
getParentId
().
intValue
()
==
0
&&
UserConstants
.
TYPE_MENU
.
equals
(
menu
.
getMenuType
())
return
menu
.
getParentId
().
intValue
()
==
0
&&
UserConstants
.
TYPE_MENU
.
equals
(
menu
.
getMenuType
())
&&
menu
.
getIsFrame
().
equals
(
UserConstants
.
NO_FRAME
);
&&
menu
.
getIsFrame
().
equals
(
UserConstants
.
NO_FRAME
);
}
}
/**
/**
* 是否为parent_view组件
* 是否为parent_view组件
*
*
* @param menu 菜单信息
* @param menu 菜单信息
* @return 结果
* @return 结果
*/
*/
public
boolean
isParentView
(
SysMenu
menu
)
public
boolean
isParentView
(
SysMenu
menu
)
{
{
return
menu
.
getParentId
().
intValue
()
!=
0
&&
UserConstants
.
TYPE_DIR
.
equals
(
menu
.
getMenuType
());
return
menu
.
getParentId
().
intValue
()
!=
0
&&
UserConstants
.
TYPE_DIR
.
equals
(
menu
.
getMenuType
());
}
}
/**
/**
* 根据父节点的ID获取所有子节点
* 根据父节点的ID获取所有子节点
*
*
* @param list 分类表
* @param list 分类表
* @param parentId 传入的父节点ID
* @param parentId 传入的父节点ID
* @return String
* @return String
*/
*/
public
List
<
SysMenu
>
getChildPerms
(
List
<
SysMenu
>
list
,
int
parentId
)
public
List
<
SysMenu
>
getChildPerms
(
List
<
SysMenu
>
list
,
int
parentId
)
{
{
List
<
SysMenu
>
returnList
=
new
ArrayList
<
SysMenu
>();
List
<
SysMenu
>
returnList
=
new
ArrayList
<
SysMenu
>();
for
(
Iterator
<
SysMenu
>
iterator
=
list
.
iterator
();
iterator
.
hasNext
();)
for
(
Iterator
<
SysMenu
>
iterator
=
list
.
iterator
();
iterator
.
hasNext
();)
{
{
SysMenu
t
=
(
SysMenu
)
iterator
.
next
();
SysMenu
t
=
(
SysMenu
)
iterator
.
next
();
// 一、根据传入的某个父节点ID,遍历该父节点的所有子节点
// 一、根据传入的某个父节点ID,遍历该父节点的所有子节点
if
(
t
.
getParentId
()
==
parentId
)
if
(
t
.
getParentId
()
==
parentId
)
{
{
recursionFn
(
list
,
t
);
recursionFn
(
list
,
t
);
returnList
.
add
(
t
);
returnList
.
add
(
t
);
}
}
}
}
return
returnList
;
return
returnList
;
}
}
/**
/**
* 递归列表
* 递归列表
*
*
* @param list
* @param list
* @param t
* @param t
*/
*/
private
void
recursionFn
(
List
<
SysMenu
>
list
,
SysMenu
t
)
private
void
recursionFn
(
List
<
SysMenu
>
list
,
SysMenu
t
)
{
{
// 得到子节点列表
// 得到子节点列表
List
<
SysMenu
>
childList
=
getChildList
(
list
,
t
);
List
<
SysMenu
>
childList
=
getChildList
(
list
,
t
);
t
.
setChildren
(
childList
);
t
.
setChildren
(
childList
);
for
(
SysMenu
tChild
:
childList
)
for
(
SysMenu
tChild
:
childList
)
{
{
if
(
hasChild
(
list
,
tChild
))
if
(
hasChild
(
list
,
tChild
))
{
{
recursionFn
(
list
,
tChild
);
recursionFn
(
list
,
tChild
);
}
}
}
}
}
}
/**
/**
* 得到子节点列表
* 得到子节点列表
*/
*/
private
List
<
SysMenu
>
getChildList
(
List
<
SysMenu
>
list
,
SysMenu
t
)
private
List
<
SysMenu
>
getChildList
(
List
<
SysMenu
>
list
,
SysMenu
t
)
{
{
List
<
SysMenu
>
tlist
=
new
ArrayList
<
SysMenu
>();
List
<
SysMenu
>
tlist
=
new
ArrayList
<
SysMenu
>();
Iterator
<
SysMenu
>
it
=
list
.
iterator
();
Iterator
<
SysMenu
>
it
=
list
.
iterator
();
while
(
it
.
hasNext
())
while
(
it
.
hasNext
())
{
{
SysMenu
n
=
(
SysMenu
)
it
.
next
();
SysMenu
n
=
(
SysMenu
)
it
.
next
();
if
(
n
.
getParentId
().
longValue
()
==
t
.
getMenuId
().
longValue
())
if
(
n
.
getParentId
().
longValue
()
==
t
.
getMenuId
().
longValue
())
{
{
tlist
.
add
(
n
);
tlist
.
add
(
n
);
}
}
}
}
return
tlist
;
return
tlist
;
}
}
/**
/**
* 判断是否有子节点
* 判断是否有子节点
*/
*/
private
boolean
hasChild
(
List
<
SysMenu
>
list
,
SysMenu
t
)
private
boolean
hasChild
(
List
<
SysMenu
>
list
,
SysMenu
t
)
{
{
return
getChildList
(
list
,
t
).
size
()
>
0
?
true
:
false
;
return
getChildList
(
list
,
t
).
size
()
>
0
?
true
:
false
;
}
}
}
}
Write
Preview
Markdown
is supported
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