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}
+
+
+