【7.2.5】【role】更新角色管理相关业务

pull/37/head
fengshuonan 2022-09-30 17:52:36 +08:00
parent a2b283d379
commit 904b86a4df
2 changed files with 17 additions and 16 deletions

View File

@ -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.MenuServiceApi;
import cn.stylefeng.roses.kernel.system.api.ResourceServiceApi; import cn.stylefeng.roses.kernel.system.api.ResourceServiceApi;
import cn.stylefeng.roses.kernel.system.api.UserServiceApi; 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.enums.AntdvFrontTypeEnum;
import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException; import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException;
import cn.stylefeng.roses.kernel.system.api.exception.enums.role.SysRoleExceptionEnum; 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.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static cn.stylefeng.roses.kernel.system.api.constants.SystemConstants.SUPER_ADMIN_ROLE_CODE;
/** /**
* service * service
@ -143,18 +144,11 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
public void del(SysRoleRequest sysRoleRequest) { public void del(SysRoleRequest sysRoleRequest) {
SysRole sysRole = this.querySysRole(sysRoleRequest); SysRole sysRole = this.querySysRole(sysRoleRequest);
// 超级管理员不能删除,但是管理角色可以删除 // 超级管理员不能删除
if (!YesOrNotEnum.Y.getCode().equals(sysRole.getAdminFlag())) { if (SUPER_ADMIN_ROLE_CODE.equals(sysRole.getRoleCode())) {
if (YesOrNotEnum.Y.getCode().equals(sysRole.getRoleSystemFlag())) { throw new ServiceException(SysRoleExceptionEnum.SYSTEM_ROLE_CANT_DELETE);
throw new ServiceException(SysRoleExceptionEnum.SYSTEM_ROLE_CANT_DELETE);
}
} }
// 逻辑删除,设为删除标志
sysRole.setDelFlag(YesOrNotEnum.Y.getCode());
this.updateById(sysRole);
Long roleId = sysRole.getRoleId(); Long roleId = sysRole.getRoleId();
// 级联删除该角色对应的角色-数据范围关联信息 // 级联删除该角色对应的角色-数据范围关联信息
@ -171,6 +165,9 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
// 删除角色的数据范围缓存 // 删除角色的数据范围缓存
roleDataScopeCacheApi.remove(String.valueOf(sysRoleRequest.getRoleId())); roleDataScopeCacheApi.remove(String.valueOf(sysRoleRequest.getRoleId()));
// 删除角色
this.removeById(roleId);
} }
@Override @Override
@ -199,7 +196,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
SysRole sysRole = this.querySysRole(sysRoleRequest); 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())) { if (!sysRole.getRoleCode().equals(sysRoleRequest.getRoleCode())) {
throw new SystemModularException(SysRoleExceptionEnum.SUPER_ADMIN_ROLE_CODE_ERROR); 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::getStatusFlag, StatusEnum.ENABLE.getCode()).eq(SysRole::getDelFlag, YesOrNotEnum.N.getCode());
// 只查询非管理员的角色
queryWrapper.eq(SysRole::getAdminFlag, YesOrNotEnum.N.getCode());
this.list(queryWrapper).forEach(sysRole -> { this.list(queryWrapper).forEach(sysRole -> {
SimpleDict simpleDict = new SimpleDict(); SimpleDict simpleDict = new SimpleDict();
simpleDict.setId(sysRole.getRoleId()); simpleDict.setId(sysRole.getRoleId());

View File

@ -1,5 +1,6 @@
package cn.stylefeng.roses.kernel.system.modular.user.service.impl; package cn.stylefeng.roses.kernel.system.modular.user.service.impl;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.roses.kernel.rule.enums.ResBizTypeEnum; import cn.stylefeng.roses.kernel.rule.enums.ResBizTypeEnum;
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
@ -122,13 +123,13 @@ public class SysUserAdminServiceImpl implements SysUserAdminService {
@Override @Override
public void deleteAdminUser(SysAdminRequest sysAdminRequest) { 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 sysRoleRequest = new SysRoleRequest();
sysRoleRequest.setRoleId(roleId); sysRoleRequest.setRoleId(sysUserRole.getRoleId());
this.roleServiceApi.del(sysRoleRequest); this.roleServiceApi.del(sysRoleRequest);
} }