Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-cr20g
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
Administrator
dsk-cr20g
Commits
d0baa54b
Commit
d0baa54b
authored
Nov 14, 2023
by
施翔轲
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
保证每个用户至少有一个角色
parent
08652550
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
10 deletions
+24
-10
SysRoleServiceImpl.java
.../java/com/dsk/system/service/impl/SysRoleServiceImpl.java
+24
-10
No files found.
dsk-system/src/main/java/com/dsk/system/service/impl/SysRoleServiceImpl.java
View file @
d0baa54b
...
@@ -7,26 +7,21 @@ import cn.hutool.core.util.ObjectUtil;
...
@@ -7,26 +7,21 @@ import cn.hutool.core.util.ObjectUtil;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Assert
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.dsk.common.constant.TenantConstants
;
import
com.dsk.common.constant.TenantConstants
;
import
com.dsk.system.mapper.SysRoleDeptMapper
;
import
com.dsk.system.domain.*
;
import
com.dsk.system.mapper.SysRoleMapper
;
import
com.dsk.system.mapper.*
;
import
com.dsk.system.mapper.SysRoleMenuMapper
;
import
com.dsk.system.mapper.SysUserRoleMapper
;
import
com.dsk.system.service.ISysRoleService
;
import
com.dsk.system.service.ISysRoleService
;
import
com.dsk.common.constant.UserConstants
;
import
com.dsk.common.constant.UserConstants
;
import
com.dsk.common.core.domain.PageQuery
;
import
com.dsk.common.core.domain.PageQuery
;
import
com.dsk.system.domain.SysRole
;
import
com.dsk.common.core.domain.model.LoginUser
;
import
com.dsk.common.core.domain.model.LoginUser
;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.common.exception.ServiceException
;
import
com.dsk.common.exception.ServiceException
;
import
com.dsk.common.helper.LoginHelper
;
import
com.dsk.common.helper.LoginHelper
;
import
com.dsk.common.utils.StreamUtils
;
import
com.dsk.common.utils.StreamUtils
;
import
com.dsk.common.utils.StringUtils
;
import
com.dsk.common.utils.StringUtils
;
import
com.dsk.system.domain.SysRoleDept
;
import
com.dsk.system.domain.SysRoleMenu
;
import
com.dsk.system.domain.SysUserRole
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
...
@@ -46,6 +41,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
...
@@ -46,6 +41,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
private
final
SysRoleMenuMapper
roleMenuMapper
;
private
final
SysRoleMenuMapper
roleMenuMapper
;
private
final
SysUserRoleMapper
userRoleMapper
;
private
final
SysUserRoleMapper
userRoleMapper
;
private
final
SysRoleDeptMapper
roleDeptMapper
;
private
final
SysRoleDeptMapper
roleDeptMapper
;
private
final
SysUserMapper
userMapper
;
@Override
@Override
public
TableDataInfo
<
SysRole
>
selectPageRoleList
(
SysRole
role
,
PageQuery
pageQuery
)
{
public
TableDataInfo
<
SysRole
>
selectPageRoleList
(
SysRole
role
,
PageQuery
pageQuery
)
{
...
@@ -410,6 +406,12 @@ public class SysRoleServiceImpl implements ISysRoleService {
...
@@ -410,6 +406,12 @@ public class SysRoleServiceImpl implements ISysRoleService {
*/
*/
@Override
@Override
public
int
deleteAuthUser
(
SysUserRole
userRole
)
{
public
int
deleteAuthUser
(
SysUserRole
userRole
)
{
//若该账号仅有一个角色,则不允许取消授权
SysUser
sysUser
=
userMapper
.
selectUserById
(
userRole
.
getUserId
());
if
(
sysUser
.
getRoles
().
size
()
==
1
)
{
throw
new
ServiceException
(
"至少保留一个角色在该账号下"
);
}
//校验企业管理员角色下是否至少有一个账号
//校验企业管理员角色下是否至少有一个账号
checkAdminHasUsers
(
userRole
.
getRoleId
());
checkAdminHasUsers
(
userRole
.
getRoleId
());
...
@@ -431,11 +433,23 @@ public class SysRoleServiceImpl implements ISysRoleService {
...
@@ -431,11 +433,23 @@ public class SysRoleServiceImpl implements ISysRoleService {
*/
*/
@Override
@Override
public
int
deleteAuthUsers
(
Long
roleId
,
Long
[]
userIds
)
{
public
int
deleteAuthUsers
(
Long
roleId
,
Long
[]
userIds
)
{
//若该账号仅有一个角色,则不允许取消授权
StringBuilder
lackRoleAccount
=
new
StringBuilder
();
for
(
Long
userId
:
userIds
)
{
SysUser
sysUser
=
userMapper
.
selectUserById
(
userId
);
if
(
sysUser
.
getRoles
().
size
()
==
1
)
{
lackRoleAccount
.
append
(
sysUser
.
getUserName
()).
append
(
","
);
}
}
//将缺少角色的账号返回给前端
if
(
lackRoleAccount
.
toString
().
contains
(
","
))
{
throw
new
ServiceException
(
lackRoleAccount
.
substring
(
0
,
lackRoleAccount
.
length
()-
1
));
}
//校验企业管理员角色下是否至少有一个账号
//校验企业管理员角色下是否至少有一个账号
Integer
users
=
checkAdminHasUsers
(
roleId
);
Integer
users
=
checkAdminHasUsers
(
roleId
);
//如果取消授权企业管理员角色下所有账号,则抛异常
//如果取消授权企业管理员角色下所有账号,则抛异常
if
(
userIds
.
length
==
users
)
{
if
(
user
s
!=
null
&&
user
Ids
.
length
==
users
)
{
throw
new
ServiceException
(
"至少要保留一个账号在企业管理员角色下!"
);
throw
new
ServiceException
(
"至少要保留一个账号在企业管理员角色下!"
);
}
}
...
...
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