feat(新增): 完善角色,权限,用户,路由,部门删除功能

This commit is contained in:
Bunny 2024-10-05 23:42:53 +08:00
parent 6e58502586
commit dc772bd747
14 changed files with 179 additions and 12 deletions

View File

@ -4,6 +4,8 @@ import cn.bunny.dao.entity.system.RolePower;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* <p>
* Mapper 接口
@ -15,4 +17,17 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface RolePowerMapper extends BaseMapper<RolePower> {
/**
* * 根据权限id列表删除角色权限相关
*
* @param powerIds 权限id列表
*/
void deleteBatchPowerIdsWithPhysics(List<Long> powerIds);
/**
* * 根据角色id删除角色权限
*
* @param roleIds 角色
*/
void deleteBatchRoleIdsWithPhysics(List<Long> roleIds);
}

View File

@ -4,6 +4,8 @@ import cn.bunny.dao.entity.system.RouterRole;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* <p>
* Mapper 接口
@ -18,7 +20,14 @@ public interface RouterRoleMapper extends BaseMapper<RouterRole> {
/**
* 根据路由id删除所有角色和路由信息
*
* @param routerId 路由id
* @param routerIds 路由id
*/
void deleteBatchIdsWithPhysicsByRouterId(Long routerId);
void deleteBatchIdsByRouterIdsWithPhysics(List<Long> routerIds);
/**
* * 根据角色id列表删除角色和路由相关
*
* @param roleIds 角色id列表
*/
void deleteBatchIdsByRoleIdsWithPhysics(List<Long> roleIds);
}

View File

@ -4,6 +4,8 @@ import cn.bunny.dao.entity.system.UserDept;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* <p>
* 部门用户关系表 Mapper 接口
@ -15,4 +17,17 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserDeptMapper extends BaseMapper<UserDept> {
/**
* * 根据部门id删除部门用户
*
* @param deptIds 部门id列表
*/
void deleteBatchIdsByDeptIdWithPhysics(List<Long> deptIds);
/**
* * 根据用户id删除用户部门
*
* @param userIds 用户id列表
*/
void deleteBatchIdsByUserIdWithPhysics(List<Long> userIds);
}

View File

@ -4,6 +4,8 @@ import cn.bunny.dao.entity.system.UserRole;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* <p>
* Mapper 接口
@ -20,5 +22,12 @@ public interface UserRoleMapper extends BaseMapper<UserRole> {
*
* @param userId 用户id
*/
void deleteBatchIdsWithPhysicsByUserId(Long userId);
void deleteBatchIdsByUserIdsWithPhysics(List<Long> userId);
/**
* * 根据角色id删除用户和角色
*
* @param roleIds 角色id列表
*/
void deleteBatchIdsByRoleIdsWithPhysics(List<Long> roleIds);
}

View File

@ -7,13 +7,16 @@ import cn.bunny.dao.entity.system.Dept;
import cn.bunny.dao.pojo.result.PageResult;
import cn.bunny.dao.vo.system.dept.DeptVo;
import cn.bunny.services.mapper.DeptMapper;
import cn.bunny.services.mapper.UserDeptMapper;
import cn.bunny.services.service.DeptService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jakarta.validation.Valid;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@ -26,8 +29,12 @@ import java.util.List;
* @since 2024-10-04 10:39:08
*/
@Service
@Transactional
public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements DeptService {
@Autowired
private UserDeptMapper userDeptMapper;
/**
* * 部门 服务实现类
*
@ -87,6 +94,9 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements De
*/
@Override
public void deleteDept(List<Long> ids) {
// 删除当前部门
baseMapper.deleteBatchIdsWithPhysics(ids);
// 删除用户部门关联
userDeptMapper.deleteBatchIdsByDeptIdWithPhysics(ids);
}
}

View File

@ -8,12 +8,14 @@ import cn.bunny.dao.pojo.result.PageResult;
import cn.bunny.dao.vo.system.rolePower.PowerVo;
import cn.bunny.services.factory.PowerFactory;
import cn.bunny.services.mapper.PowerMapper;
import cn.bunny.services.mapper.RolePowerMapper;
import cn.bunny.services.service.PowerService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jakarta.validation.Valid;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@ -30,11 +32,11 @@ import java.util.List;
@Service
public class PowerServiceImpl extends ServiceImpl<PowerMapper, Power> implements PowerService {
private final PowerFactory powerFactory;
@Autowired
private PowerFactory powerFactory;
public PowerServiceImpl(PowerFactory powerFactory) {
this.powerFactory = powerFactory;
}
@Autowired
private RolePowerMapper rolePowerMapper;
/**
* * 权限 服务实现类
@ -95,7 +97,11 @@ public class PowerServiceImpl extends ServiceImpl<PowerMapper, Power> implements
*/
@Override
public void deletePower(List<Long> ids) {
// 删除权限
baseMapper.deleteBatchIdsWithPhysics(ids);
// 删除角色部门相关
rolePowerMapper.deleteBatchPowerIdsWithPhysics(ids);
}
/**

View File

@ -7,12 +7,16 @@ import cn.bunny.dao.entity.system.Role;
import cn.bunny.dao.pojo.result.PageResult;
import cn.bunny.dao.vo.system.rolePower.RoleVo;
import cn.bunny.services.mapper.RoleMapper;
import cn.bunny.services.mapper.RolePowerMapper;
import cn.bunny.services.mapper.RouterRoleMapper;
import cn.bunny.services.mapper.UserRoleMapper;
import cn.bunny.services.service.RoleService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jakarta.validation.Valid;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@ -28,6 +32,16 @@ import java.util.List;
@Service
public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements RoleService {
@Autowired
private UserRoleMapper userRoleMapper;
@Autowired
private RolePowerMapper rolePowerMapper;
@Autowired
private RouterRoleMapper routerRoleMapper;
/**
* * 角色 服务实现类
*
@ -87,7 +101,18 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
*/
@Override
public void deleteRole(List<Long> ids) {
// 删除角色
baseMapper.deleteBatchIdsWithPhysics(ids);
// 删除角色权限相关
rolePowerMapper.deleteBatchRoleIdsWithPhysics(ids);
// 删除角色和用户相关
userRoleMapper.deleteBatchIdsByRoleIdsWithPhysics(ids);
// 删除角色和路由相关
routerRoleMapper.deleteBatchIdsByRoleIdsWithPhysics(ids);
}
/**

View File

@ -46,7 +46,7 @@ public class RouterRoleServiceImpl extends ServiceImpl<RouterRoleMapper, RouterR
List<Long> roleIds = dto.getRoleIds();
// 删除这个用户下所有已经分配好的角色内容
baseMapper.deleteBatchIdsWithPhysicsByRouterId(routerId);
baseMapper.deleteBatchIdsByRouterIdsWithPhysics(List.of(routerId));
// 保存分配好的角色信息
List<RouterRole> roleList = roleIds.stream().map(roleId -> {

View File

@ -54,7 +54,7 @@ public class UserRoleServiceImpl extends ServiceImpl<UserRoleMapper, UserRole> i
List<Long> roleIds = dto.getRoleIds();
// 删除这个用户下所有已经分配好的角色内容
baseMapper.deleteBatchIdsWithPhysicsByUserId(userId);
baseMapper.deleteBatchIdsByUserIdsWithPhysics(List.of(userId));
// 保存分配好的角色信息
List<UserRole> roleList = roleIds.stream().map(roleId -> {

View File

@ -21,7 +21,9 @@ import cn.bunny.dao.vo.system.user.UserVo;
import cn.bunny.services.factory.EmailFactory;
import cn.bunny.services.factory.UserFactory;
import cn.bunny.services.mapper.EmailUsersMapper;
import cn.bunny.services.mapper.UserDeptMapper;
import cn.bunny.services.mapper.UserMapper;
import cn.bunny.services.mapper.UserRoleMapper;
import cn.bunny.services.service.FilesService;
import cn.bunny.services.service.UserService;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -71,6 +73,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, AdminUser> implemen
@Autowired
private FilesService filesService;
@Autowired
private UserDeptMapper userDeptMapper;
@Autowired
private UserRoleMapper userRoleMapper;
/**
* 登录发送邮件验证码
*
@ -292,6 +300,13 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, AdminUser> implemen
*/
@Override
public void deleteAdminUser(List<Long> ids) {
// 删除用户
baseMapper.deleteBatchIdsWithPhysics(ids);
// 删除部门相关
userDeptMapper.deleteBatchIdsByUserIdWithPhysics(ids);
// 删除用户角色相关
userRoleMapper.deleteBatchIdsByUserIdsWithPhysics(ids);
}
}

View File

@ -19,4 +19,24 @@
id, role_id, power_id, create_time, update_time, create_user, update_user, is_deleted
</sql>
<!-- 根据权限id列表删除角色权限相关 -->
<delete id="deleteBatchPowerIdsWithPhysics">
delete
from sys_role_power
where power_id in
<foreach collection="deptIds" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
<!-- 根据角色id删除角色权限 -->
<delete id="deleteBatchRoleIdsWithPhysics">
delete
from sys_role_power
where role_id in
<foreach collection="roleIds" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -20,10 +20,23 @@
</sql>
<!-- 根据路由id删除所有角色和路由信息 -->
<delete id="deleteBatchIdsWithPhysicsByRouterId">
<delete id="deleteBatchIdsByRouterIdsWithPhysics">
delete
from sys_router_role
where router_id = #{routerId}
where router_id in
<foreach collection="routerIds" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
<!-- 根据角色id列表删除角色和路由相关 -->
<delete id="deleteBatchIdsByRoleIdsWithPhysics">
delete
from sys_router_role
where role_id in
<foreach collection="roleIds" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -19,4 +19,24 @@
id, user_id, dept_id, create_time, update_time, create_user, update_user, is_deleted
</sql>
<!-- 根据部门id删除部门用户 -->
<delete id="deleteBatchIdsByDeptIdWithPhysics">
delete
from sys_user_dept
where dept_id in
<foreach collection="deptIds" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
<!-- 根据用户id删除用户部门 -->
<delete id="deleteBatchIdsByUserIdWithPhysics">
delete
from sys_user_dept
where user_id in
<foreach collection="userIds" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -20,10 +20,20 @@
</sql>
<!-- 删除这个用户id下所有的角色信息 -->
<delete id="deleteBatchIdsWithPhysicsByUserId">
<delete id="deleteBatchIdsByUserIdsWithPhysics">
delete
from sys_user_role
where user_id = #{userId}
</delete>
<!-- 根据角色id删除用户和角色 -->
<delete id="deleteBatchIdsByRoleIdsWithPhysics">
delete
from sys_user_role
where role_id in
<foreach collection="roleIds" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
</mapper>