mirror of https://gitee.com/stylefeng/roses
【7.6.0】【sys】【role】更新删除角色的接口
parent
45eac5e7d4
commit
4a6bcd80b6
|
@ -6,6 +6,7 @@ import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
|
|||
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveRoleCallbackApi;
|
||||
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveUserCallbackApi;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUserRole;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.user.enums.SysUserRoleExceptionEnum;
|
||||
|
@ -29,7 +30,7 @@ import java.util.Set;
|
|||
* @date 2023/06/10 21:26
|
||||
*/
|
||||
@Service
|
||||
public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUserRole> implements SysUserRoleService, RemoveUserCallbackApi {
|
||||
public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUserRole> implements SysUserRoleService, RemoveUserCallbackApi, RemoveRoleCallbackApi {
|
||||
|
||||
@Override
|
||||
public void add(SysUserRoleRequest sysUserRoleRequest) {
|
||||
|
@ -101,6 +102,18 @@ public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUs
|
|||
this.remove(sysUserRoleLambdaQueryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validateHaveRoleBind(Set<Long> beRemovedRoleIdList) {
|
||||
// none
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeRoleAction(Set<Long> beRemovedRoleIdList) {
|
||||
LambdaQueryWrapper<SysUserRole> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.in(SysUserRole::getRoleId, beRemovedRoleIdList);
|
||||
this.remove(wrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取信息
|
||||
*
|
||||
|
|
|
@ -21,7 +21,12 @@ public enum SysRoleExceptionEnum implements AbstractExceptionEnum {
|
|||
/**
|
||||
* 角色编码不能被修改
|
||||
*/
|
||||
SUPER_ADMIN_ROLE_CODE_ERROR(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10002", "角色编码不能被修改");
|
||||
SUPER_ADMIN_ROLE_CODE_ERROR(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10002", "角色编码不能被修改"),
|
||||
|
||||
/**
|
||||
* 超级管理员不能被删除
|
||||
*/
|
||||
SYSTEM_ROLE_CANT_DELETE(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10003", "系统角色不能被删除");
|
||||
|
||||
/**
|
||||
* 错误编码
|
||||
|
|
|
@ -6,6 +6,7 @@ import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
|
|||
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveRoleCallbackApi;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleDataScope;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.enums.SysRoleDataScopeExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.mapper.SysRoleDataScopeMapper;
|
||||
|
@ -17,6 +18,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 角色数据范围业务实现层
|
||||
|
@ -25,9 +27,9 @@ import java.util.List;
|
|||
* @date 2023/06/10 21:29
|
||||
*/
|
||||
@Service
|
||||
public class SysRoleDataScopeServiceImpl extends ServiceImpl<SysRoleDataScopeMapper, SysRoleDataScope> implements SysRoleDataScopeService {
|
||||
public class SysRoleDataScopeServiceImpl extends ServiceImpl<SysRoleDataScopeMapper, SysRoleDataScope> implements SysRoleDataScopeService, RemoveRoleCallbackApi {
|
||||
|
||||
@Override
|
||||
@Override
|
||||
public void add(SysRoleDataScopeRequest sysRoleDataScopeRequest) {
|
||||
SysRoleDataScope sysRoleDataScope = new SysRoleDataScope();
|
||||
BeanUtil.copyProperties(sysRoleDataScopeRequest, sysRoleDataScope);
|
||||
|
@ -65,6 +67,18 @@ public class SysRoleDataScopeServiceImpl extends ServiceImpl<SysRoleDataScopeMap
|
|||
return this.list(wrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validateHaveRoleBind(Set<Long> beRemovedRoleIdList) {
|
||||
// none
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeRoleAction(Set<Long> beRemovedRoleIdList) {
|
||||
LambdaQueryWrapper<SysRoleDataScope> sysRoleDataScopeLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
sysRoleDataScopeLambdaQueryWrapper.in(SysRoleDataScope::getRoleId, beRemovedRoleIdList);
|
||||
this.remove(sysRoleDataScopeLambdaQueryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取信息
|
||||
*
|
||||
|
|
|
@ -6,6 +6,7 @@ import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
|
|||
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveRoleCallbackApi;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleMenuOptions;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.enums.SysRoleMenuOptionsExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.mapper.SysRoleMenuOptionsMapper;
|
||||
|
@ -17,6 +18,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 角色和菜单下的功能关联业务实现层
|
||||
|
@ -25,9 +27,9 @@ import java.util.List;
|
|||
* @date 2023/06/10 21:29
|
||||
*/
|
||||
@Service
|
||||
public class SysRoleMenuOptionsServiceImpl extends ServiceImpl<SysRoleMenuOptionsMapper, SysRoleMenuOptions> implements SysRoleMenuOptionsService {
|
||||
public class SysRoleMenuOptionsServiceImpl extends ServiceImpl<SysRoleMenuOptionsMapper, SysRoleMenuOptions> implements SysRoleMenuOptionsService, RemoveRoleCallbackApi {
|
||||
|
||||
@Override
|
||||
@Override
|
||||
public void add(SysRoleMenuOptionsRequest sysRoleMenuOptionsRequest) {
|
||||
SysRoleMenuOptions sysRoleMenuOptions = new SysRoleMenuOptions();
|
||||
BeanUtil.copyProperties(sysRoleMenuOptionsRequest, sysRoleMenuOptions);
|
||||
|
@ -65,6 +67,18 @@ public class SysRoleMenuOptionsServiceImpl extends ServiceImpl<SysRoleMenuOption
|
|||
return this.list(wrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validateHaveRoleBind(Set<Long> beRemovedRoleIdList) {
|
||||
// none
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeRoleAction(Set<Long> beRemovedRoleIdList) {
|
||||
LambdaQueryWrapper<SysRoleMenuOptions> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.in(SysRoleMenuOptions::getRoleId, beRemovedRoleIdList);
|
||||
this.remove(wrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取信息
|
||||
*
|
||||
|
|
|
@ -6,6 +6,7 @@ import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
|
|||
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveRoleCallbackApi;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleMenu;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.enums.SysRoleMenuExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.mapper.SysRoleMenuMapper;
|
||||
|
@ -17,6 +18,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 角色菜单关联业务实现层
|
||||
|
@ -25,9 +27,9 @@ import java.util.List;
|
|||
* @date 2023/06/10 21:29
|
||||
*/
|
||||
@Service
|
||||
public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRoleMenu> implements SysRoleMenuService {
|
||||
public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRoleMenu> implements SysRoleMenuService, RemoveRoleCallbackApi {
|
||||
|
||||
@Override
|
||||
@Override
|
||||
public void add(SysRoleMenuRequest sysRoleMenuRequest) {
|
||||
SysRoleMenu sysRoleMenu = new SysRoleMenu();
|
||||
BeanUtil.copyProperties(sysRoleMenuRequest, sysRoleMenu);
|
||||
|
@ -65,6 +67,18 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRo
|
|||
return this.list(wrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validateHaveRoleBind(Set<Long> beRemovedRoleIdList) {
|
||||
// none
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeRoleAction(Set<Long> beRemovedRoleIdList) {
|
||||
LambdaQueryWrapper<SysRoleMenu> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.in(SysRoleMenu::getRoleId, beRemovedRoleIdList);
|
||||
this.remove(wrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取信息
|
||||
*
|
||||
|
|
|
@ -6,6 +6,7 @@ import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
|
|||
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveRoleCallbackApi;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleResource;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.enums.SysRoleResourceExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.mapper.SysRoleResourceMapper;
|
||||
|
@ -17,6 +18,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 角色资源关联业务实现层
|
||||
|
@ -25,9 +27,9 @@ import java.util.List;
|
|||
* @date 2023/06/10 21:29
|
||||
*/
|
||||
@Service
|
||||
public class SysRoleResourceServiceImpl extends ServiceImpl<SysRoleResourceMapper, SysRoleResource> implements SysRoleResourceService {
|
||||
public class SysRoleResourceServiceImpl extends ServiceImpl<SysRoleResourceMapper, SysRoleResource> implements SysRoleResourceService, RemoveRoleCallbackApi {
|
||||
|
||||
@Override
|
||||
@Override
|
||||
public void add(SysRoleResourceRequest sysRoleResourceRequest) {
|
||||
SysRoleResource sysRoleResource = new SysRoleResource();
|
||||
BeanUtil.copyProperties(sysRoleResourceRequest, sysRoleResource);
|
||||
|
@ -65,6 +67,18 @@ public class SysRoleResourceServiceImpl extends ServiceImpl<SysRoleResourceMappe
|
|||
return this.list(wrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validateHaveRoleBind(Set<Long> beRemovedRoleIdList) {
|
||||
// none
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeRoleAction(Set<Long> beRemovedRoleIdList) {
|
||||
LambdaQueryWrapper<SysRoleResource> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.in(SysRoleResource::getRoleId, beRemovedRoleIdList);
|
||||
this.remove(wrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取信息
|
||||
*
|
||||
|
|
|
@ -1,13 +1,17 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.role.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
|
||||
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveRoleCallbackApi;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRole;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.enums.SysRoleExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.mapper.SysRoleMapper;
|
||||
|
@ -17,8 +21,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 系统角色业务实现层
|
||||
|
@ -41,8 +47,27 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void del(SysRoleRequest sysRoleRequest) {
|
||||
SysRole sysRole = this.querySysRole(sysRoleRequest);
|
||||
|
||||
// 系统角色不能被删除
|
||||
if (YesOrNotEnum.Y.getCode().equals(sysRole.getRoleSystemFlag())) {
|
||||
throw new ServiceException(SysRoleExceptionEnum.SYSTEM_ROLE_CANT_DELETE);
|
||||
}
|
||||
|
||||
// 执行角色相关的校验
|
||||
Map<String, RemoveRoleCallbackApi> callbackApiMap = SpringUtil.getBeansOfType(RemoveRoleCallbackApi.class);
|
||||
for (RemoveRoleCallbackApi removeRoleCallbackApi : callbackApiMap.values()) {
|
||||
removeRoleCallbackApi.validateHaveRoleBind(CollectionUtil.set(false, sysRole.getRoleId()));
|
||||
}
|
||||
|
||||
// 执行角色相关关联业务的删除操作
|
||||
for (RemoveRoleCallbackApi removeRoleCallbackApi : callbackApiMap.values()) {
|
||||
removeRoleCallbackApi.removeRoleAction(CollectionUtil.set(false, sysRole.getRoleId()));
|
||||
}
|
||||
|
||||
// 删除角色
|
||||
this.removeById(sysRole.getRoleId());
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue