mirror of https://gitee.com/stylefeng/roses
【7.2.5】【role】更新角色管理相关业务
parent
a2b283d379
commit
904b86a4df
|
@ -45,7 +45,6 @@ import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict;
|
|||
import cn.stylefeng.roses.kernel.system.api.MenuServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.api.ResourceServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.api.UserServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.api.constants.SystemConstants;
|
||||
import cn.stylefeng.roses.kernel.system.api.enums.AntdvFrontTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException;
|
||||
import cn.stylefeng.roses.kernel.system.api.exception.enums.role.SysRoleExceptionEnum;
|
||||
|
@ -77,6 +76,8 @@ import java.util.List;
|
|||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.stylefeng.roses.kernel.system.api.constants.SystemConstants.SUPER_ADMIN_ROLE_CODE;
|
||||
|
||||
|
||||
/**
|
||||
* 系统角色service接口实现类
|
||||
|
@ -143,18 +144,11 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
public void del(SysRoleRequest sysRoleRequest) {
|
||||
SysRole sysRole = this.querySysRole(sysRoleRequest);
|
||||
|
||||
// 超级管理员不能删除,但是管理角色可以删除
|
||||
if (!YesOrNotEnum.Y.getCode().equals(sysRole.getAdminFlag())) {
|
||||
if (YesOrNotEnum.Y.getCode().equals(sysRole.getRoleSystemFlag())) {
|
||||
throw new ServiceException(SysRoleExceptionEnum.SYSTEM_ROLE_CANT_DELETE);
|
||||
}
|
||||
// 超级管理员不能删除
|
||||
if (SUPER_ADMIN_ROLE_CODE.equals(sysRole.getRoleCode())) {
|
||||
throw new ServiceException(SysRoleExceptionEnum.SYSTEM_ROLE_CANT_DELETE);
|
||||
}
|
||||
|
||||
// 逻辑删除,设为删除标志
|
||||
sysRole.setDelFlag(YesOrNotEnum.Y.getCode());
|
||||
|
||||
this.updateById(sysRole);
|
||||
|
||||
Long roleId = sysRole.getRoleId();
|
||||
|
||||
// 级联删除该角色对应的角色-数据范围关联信息
|
||||
|
@ -171,6 +165,9 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
|
||||
// 删除角色的数据范围缓存
|
||||
roleDataScopeCacheApi.remove(String.valueOf(sysRoleRequest.getRoleId()));
|
||||
|
||||
// 删除角色
|
||||
this.removeById(roleId);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -199,7 +196,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
SysRole sysRole = this.querySysRole(sysRoleRequest);
|
||||
|
||||
// 不能修改超级管理员编码
|
||||
if (SystemConstants.SUPER_ADMIN_ROLE_CODE.equals(sysRole.getRoleCode())) {
|
||||
if (SUPER_ADMIN_ROLE_CODE.equals(sysRole.getRoleCode())) {
|
||||
if (!sysRole.getRoleCode().equals(sysRoleRequest.getRoleCode())) {
|
||||
throw new SystemModularException(SysRoleExceptionEnum.SUPER_ADMIN_ROLE_CODE_ERROR);
|
||||
}
|
||||
|
@ -441,6 +438,9 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
// 只查询正常状态
|
||||
queryWrapper.eq(SysRole::getStatusFlag, StatusEnum.ENABLE.getCode()).eq(SysRole::getDelFlag, YesOrNotEnum.N.getCode());
|
||||
|
||||
// 只查询非管理员的角色
|
||||
queryWrapper.eq(SysRole::getAdminFlag, YesOrNotEnum.N.getCode());
|
||||
|
||||
this.list(queryWrapper).forEach(sysRole -> {
|
||||
SimpleDict simpleDict = new SimpleDict();
|
||||
simpleDict.setId(sysRole.getRoleId());
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.user.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.ResBizTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
|
@ -122,13 +123,13 @@ public class SysUserAdminServiceImpl implements SysUserAdminService {
|
|||
@Override
|
||||
public void deleteAdminUser(SysAdminRequest sysAdminRequest) {
|
||||
|
||||
// 获取用户绑定的角色
|
||||
List<Long> roleIdList = this.sysUserRoleService.findRoleIdsByUserId(sysAdminRequest.getUserId());
|
||||
// 获取用户绑定的超级管理员角色
|
||||
List<SysUserRole> userRoleList = this.sysUserRoleMapper.getAdminUserRoleList(ListUtil.toList(sysAdminRequest.getUserId()));
|
||||
|
||||
// 删除角色
|
||||
for (Long roleId : roleIdList) {
|
||||
for (SysUserRole sysUserRole : userRoleList) {
|
||||
SysRoleRequest sysRoleRequest = new SysRoleRequest();
|
||||
sysRoleRequest.setRoleId(roleId);
|
||||
sysRoleRequest.setRoleId(sysUserRole.getRoleId());
|
||||
this.roleServiceApi.del(sysRoleRequest);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue