diff --git a/service/src/main/java/cn/bunny/services/mapper/RolePowerMapper.java b/service/src/main/java/cn/bunny/services/mapper/RolePowerMapper.java index 14eb1c6..1915734 100644 --- a/service/src/main/java/cn/bunny/services/mapper/RolePowerMapper.java +++ b/service/src/main/java/cn/bunny/services/mapper/RolePowerMapper.java @@ -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; + /** *

* Mapper 接口 @@ -15,4 +17,17 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface RolePowerMapper extends BaseMapper { + /** + * * 根据权限id列表删除角色权限相关 + * + * @param powerIds 权限id列表 + */ + void deleteBatchPowerIdsWithPhysics(List powerIds); + + /** + * * 根据角色id删除角色权限 + * + * @param roleIds 角色 + */ + void deleteBatchRoleIdsWithPhysics(List roleIds); } diff --git a/service/src/main/java/cn/bunny/services/mapper/RouterRoleMapper.java b/service/src/main/java/cn/bunny/services/mapper/RouterRoleMapper.java index 1739e71..a7a22d3 100644 --- a/service/src/main/java/cn/bunny/services/mapper/RouterRoleMapper.java +++ b/service/src/main/java/cn/bunny/services/mapper/RouterRoleMapper.java @@ -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; + /** *

* Mapper 接口 @@ -18,7 +20,14 @@ public interface RouterRoleMapper extends BaseMapper { /** * 根据路由id删除所有角色和路由信息 * - * @param routerId 路由id + * @param routerIds 路由id */ - void deleteBatchIdsWithPhysicsByRouterId(Long routerId); + void deleteBatchIdsByRouterIdsWithPhysics(List routerIds); + + /** + * * 根据角色id列表删除角色和路由相关 + * + * @param roleIds 角色id列表 + */ + void deleteBatchIdsByRoleIdsWithPhysics(List roleIds); } diff --git a/service/src/main/java/cn/bunny/services/mapper/UserDeptMapper.java b/service/src/main/java/cn/bunny/services/mapper/UserDeptMapper.java index beffebe..5c84afb 100644 --- a/service/src/main/java/cn/bunny/services/mapper/UserDeptMapper.java +++ b/service/src/main/java/cn/bunny/services/mapper/UserDeptMapper.java @@ -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; + /** *

* 部门用户关系表 Mapper 接口 @@ -15,4 +17,17 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface UserDeptMapper extends BaseMapper { + /** + * * 根据部门id删除部门用户 + * + * @param deptIds 部门id列表 + */ + void deleteBatchIdsByDeptIdWithPhysics(List deptIds); + + /** + * * 根据用户id删除用户部门 + * + * @param userIds 用户id列表 + */ + void deleteBatchIdsByUserIdWithPhysics(List userIds); } diff --git a/service/src/main/java/cn/bunny/services/mapper/UserRoleMapper.java b/service/src/main/java/cn/bunny/services/mapper/UserRoleMapper.java index abbccd8..341873b 100644 --- a/service/src/main/java/cn/bunny/services/mapper/UserRoleMapper.java +++ b/service/src/main/java/cn/bunny/services/mapper/UserRoleMapper.java @@ -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; + /** *

* Mapper 接口 @@ -20,5 +22,12 @@ public interface UserRoleMapper extends BaseMapper { * * @param userId 用户id */ - void deleteBatchIdsWithPhysicsByUserId(Long userId); + void deleteBatchIdsByUserIdsWithPhysics(List userId); + + /** + * * 根据角色id删除用户和角色 + * + * @param roleIds 角色id列表 + */ + void deleteBatchIdsByRoleIdsWithPhysics(List roleIds); } diff --git a/service/src/main/java/cn/bunny/services/service/impl/DeptServiceImpl.java b/service/src/main/java/cn/bunny/services/service/impl/DeptServiceImpl.java index 1f513fa..1c06a82 100644 --- a/service/src/main/java/cn/bunny/services/service/impl/DeptServiceImpl.java +++ b/service/src/main/java/cn/bunny/services/service/impl/DeptServiceImpl.java @@ -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 implements DeptService { + @Autowired + private UserDeptMapper userDeptMapper; + /** * * 部门 服务实现类 * @@ -87,6 +94,9 @@ public class DeptServiceImpl extends ServiceImpl implements De */ @Override public void deleteDept(List ids) { + // 删除当前部门 baseMapper.deleteBatchIdsWithPhysics(ids); + // 删除用户部门关联 + userDeptMapper.deleteBatchIdsByDeptIdWithPhysics(ids); } } diff --git a/service/src/main/java/cn/bunny/services/service/impl/PowerServiceImpl.java b/service/src/main/java/cn/bunny/services/service/impl/PowerServiceImpl.java index 3daeec6..0680b09 100644 --- a/service/src/main/java/cn/bunny/services/service/impl/PowerServiceImpl.java +++ b/service/src/main/java/cn/bunny/services/service/impl/PowerServiceImpl.java @@ -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 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 implements */ @Override public void deletePower(List ids) { + // 删除权限 baseMapper.deleteBatchIdsWithPhysics(ids); + + // 删除角色部门相关 + rolePowerMapper.deleteBatchPowerIdsWithPhysics(ids); } /** diff --git a/service/src/main/java/cn/bunny/services/service/impl/RoleServiceImpl.java b/service/src/main/java/cn/bunny/services/service/impl/RoleServiceImpl.java index 7c11262..4cffe9c 100644 --- a/service/src/main/java/cn/bunny/services/service/impl/RoleServiceImpl.java +++ b/service/src/main/java/cn/bunny/services/service/impl/RoleServiceImpl.java @@ -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 implements RoleService { + @Autowired + private UserRoleMapper userRoleMapper; + + @Autowired + private RolePowerMapper rolePowerMapper; + + @Autowired + private RouterRoleMapper routerRoleMapper; + + /** * * 角色 服务实现类 * @@ -87,7 +101,18 @@ public class RoleServiceImpl extends ServiceImpl implements Ro */ @Override public void deleteRole(List ids) { + // 删除角色 baseMapper.deleteBatchIdsWithPhysics(ids); + + // 删除角色权限相关 + rolePowerMapper.deleteBatchRoleIdsWithPhysics(ids); + + // 删除角色和用户相关 + userRoleMapper.deleteBatchIdsByRoleIdsWithPhysics(ids); + + // 删除角色和路由相关 + routerRoleMapper.deleteBatchIdsByRoleIdsWithPhysics(ids); + } /** diff --git a/service/src/main/java/cn/bunny/services/service/impl/RouterRoleServiceImpl.java b/service/src/main/java/cn/bunny/services/service/impl/RouterRoleServiceImpl.java index 80699ff..caa1e4a 100644 --- a/service/src/main/java/cn/bunny/services/service/impl/RouterRoleServiceImpl.java +++ b/service/src/main/java/cn/bunny/services/service/impl/RouterRoleServiceImpl.java @@ -46,7 +46,7 @@ public class RouterRoleServiceImpl extends ServiceImpl roleIds = dto.getRoleIds(); // 删除这个用户下所有已经分配好的角色内容 - baseMapper.deleteBatchIdsWithPhysicsByRouterId(routerId); + baseMapper.deleteBatchIdsByRouterIdsWithPhysics(List.of(routerId)); // 保存分配好的角色信息 List roleList = roleIds.stream().map(roleId -> { diff --git a/service/src/main/java/cn/bunny/services/service/impl/UserRoleServiceImpl.java b/service/src/main/java/cn/bunny/services/service/impl/UserRoleServiceImpl.java index aafe351..84225d6 100644 --- a/service/src/main/java/cn/bunny/services/service/impl/UserRoleServiceImpl.java +++ b/service/src/main/java/cn/bunny/services/service/impl/UserRoleServiceImpl.java @@ -54,7 +54,7 @@ public class UserRoleServiceImpl extends ServiceImpl i List roleIds = dto.getRoleIds(); // 删除这个用户下所有已经分配好的角色内容 - baseMapper.deleteBatchIdsWithPhysicsByUserId(userId); + baseMapper.deleteBatchIdsByUserIdsWithPhysics(List.of(userId)); // 保存分配好的角色信息 List roleList = roleIds.stream().map(roleId -> { diff --git a/service/src/main/java/cn/bunny/services/service/impl/UserServiceImpl.java b/service/src/main/java/cn/bunny/services/service/impl/UserServiceImpl.java index 779eaf8..c85fd15 100644 --- a/service/src/main/java/cn/bunny/services/service/impl/UserServiceImpl.java +++ b/service/src/main/java/cn/bunny/services/service/impl/UserServiceImpl.java @@ -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 implemen @Autowired private FilesService filesService; + @Autowired + private UserDeptMapper userDeptMapper; + + @Autowired + private UserRoleMapper userRoleMapper; + /** * 登录发送邮件验证码 * @@ -292,6 +300,13 @@ public class UserServiceImpl extends ServiceImpl implemen */ @Override public void deleteAdminUser(List ids) { + // 删除用户 baseMapper.deleteBatchIdsWithPhysics(ids); + + // 删除部门相关 + userDeptMapper.deleteBatchIdsByUserIdWithPhysics(ids); + + // 删除用户角色相关 + userRoleMapper.deleteBatchIdsByUserIdsWithPhysics(ids); } } diff --git a/service/src/main/resources/mapper/RolePowerMapper.xml b/service/src/main/resources/mapper/RolePowerMapper.xml index 512adc9..4d47c12 100644 --- a/service/src/main/resources/mapper/RolePowerMapper.xml +++ b/service/src/main/resources/mapper/RolePowerMapper.xml @@ -19,4 +19,24 @@ id, role_id, power_id, create_time, update_time, create_user, update_user, is_deleted + + + delete + from sys_role_power + where power_id in + + #{id} + + + + + + delete + from sys_role_power + where role_id in + + #{id} + + + diff --git a/service/src/main/resources/mapper/RouterRoleMapper.xml b/service/src/main/resources/mapper/RouterRoleMapper.xml index cb20929..90631ca 100644 --- a/service/src/main/resources/mapper/RouterRoleMapper.xml +++ b/service/src/main/resources/mapper/RouterRoleMapper.xml @@ -20,10 +20,23 @@ - + delete from sys_router_role - where router_id = #{routerId} + where router_id in + + #{id} + + + + + + delete + from sys_router_role + where role_id in + + #{id} + diff --git a/service/src/main/resources/mapper/UserDeptMapper.xml b/service/src/main/resources/mapper/UserDeptMapper.xml index f649c0f..04edd87 100644 --- a/service/src/main/resources/mapper/UserDeptMapper.xml +++ b/service/src/main/resources/mapper/UserDeptMapper.xml @@ -19,4 +19,24 @@ id, user_id, dept_id, create_time, update_time, create_user, update_user, is_deleted + + + delete + from sys_user_dept + where dept_id in + + #{id} + + + + + + delete + from sys_user_dept + where user_id in + + #{id} + + + diff --git a/service/src/main/resources/mapper/UserRoleMapper.xml b/service/src/main/resources/mapper/UserRoleMapper.xml index 77ec687..5aa0f49 100644 --- a/service/src/main/resources/mapper/UserRoleMapper.xml +++ b/service/src/main/resources/mapper/UserRoleMapper.xml @@ -20,10 +20,20 @@ - + delete from sys_user_role where user_id = #{userId} + + + delete + from sys_user_role + where role_id in + + #{id} + + +