mirror of https://gitee.com/stylefeng/roses
【7.6.0】【sys】【user】更新批量删除操作
parent
832c3680b3
commit
fe2b70c884
|
@ -1,6 +1,7 @@
|
||||||
package cn.stylefeng.roses.kernel.sys.modular.user.controller;
|
package cn.stylefeng.roses.kernel.sys.modular.user.controller;
|
||||||
|
|
||||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||||
|
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||||
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
||||||
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||||
|
@ -52,6 +53,18 @@ public class SysUserController {
|
||||||
return new SuccessResponseData<>();
|
return new SuccessResponseData<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除用户
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2023/06/10 21:26
|
||||||
|
*/
|
||||||
|
@PostResource(name = "批量删除用户", path = "/sysUser/batchDelete")
|
||||||
|
public ResponseData<?> batchDelete(@RequestBody @Validated(BaseRequest.batchDelete.class) SysUserRequest sysUserRequest) {
|
||||||
|
sysUserService.batchDel(sysUserRequest);
|
||||||
|
return new SuccessResponseData<>();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编辑用户
|
* 编辑用户
|
||||||
*
|
*
|
||||||
|
|
|
@ -12,6 +12,7 @@ import javax.validation.constraints.NotEmpty;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 系统用户封装类
|
* 系统用户封装类
|
||||||
|
@ -138,4 +139,11 @@ public class SysUserRequest extends BaseRequest {
|
||||||
@NotEmpty(message = "用户和组织机构关系集合不能为空", groups = {add.class, edit.class})
|
@NotEmpty(message = "用户和组织机构关系集合不能为空", groups = {add.class, edit.class})
|
||||||
private List<SysUserOrg> userOrgList;
|
private List<SysUserOrg> userOrgList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户id集合,用在批量删除用户的参数
|
||||||
|
*/
|
||||||
|
@ChineseDescription("用户id集合,用在批量删除用户的参数")
|
||||||
|
@NotEmpty(message = "用户id集合不能为空", groups = batchDelete.class)
|
||||||
|
private Set<Long> userIdList;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public interface SysUserService extends IService<SysUser> {
|
public interface SysUserService extends IService<SysUser> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增
|
* 新增
|
||||||
*
|
*
|
||||||
* @param sysUserRequest 请求参数
|
* @param sysUserRequest 请求参数
|
||||||
|
@ -24,7 +24,7 @@ public interface SysUserService extends IService<SysUser> {
|
||||||
*/
|
*/
|
||||||
void add(SysUserRequest sysUserRequest);
|
void add(SysUserRequest sysUserRequest);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除
|
* 删除
|
||||||
*
|
*
|
||||||
* @param sysUserRequest 请求参数
|
* @param sysUserRequest 请求参数
|
||||||
|
@ -33,7 +33,15 @@ public interface SysUserService extends IService<SysUser> {
|
||||||
*/
|
*/
|
||||||
void del(SysUserRequest sysUserRequest);
|
void del(SysUserRequest sysUserRequest);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* 批量删除用户
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @since 2023/6/12 10:41
|
||||||
|
*/
|
||||||
|
void batchDel(SysUserRequest sysUserRequest);
|
||||||
|
|
||||||
|
/**
|
||||||
* 编辑
|
* 编辑
|
||||||
*
|
*
|
||||||
* @param sysUserRequest 请求参数
|
* @param sysUserRequest 请求参数
|
||||||
|
@ -42,7 +50,7 @@ public interface SysUserService extends IService<SysUser> {
|
||||||
*/
|
*/
|
||||||
void edit(SysUserRequest sysUserRequest);
|
void edit(SysUserRequest sysUserRequest);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询详情
|
* 查询详情
|
||||||
*
|
*
|
||||||
* @param sysUserRequest 请求参数
|
* @param sysUserRequest 请求参数
|
||||||
|
@ -51,24 +59,23 @@ public interface SysUserService extends IService<SysUser> {
|
||||||
*/
|
*/
|
||||||
SysUser detail(SysUserRequest sysUserRequest);
|
SysUser detail(SysUserRequest sysUserRequest);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取列表
|
* 获取列表
|
||||||
*
|
*
|
||||||
* @param sysUserRequest 请求参数
|
* @param sysUserRequest 请求参数
|
||||||
* @return List<SysUser> 返回结果
|
* @return List<SysUser> 返回结果
|
||||||
* @author fengshuonan
|
* @author fengshuonan
|
||||||
* @date 2023/06/10 21:26
|
* @date 2023/06/10 21:26
|
||||||
*/
|
*/
|
||||||
List<SysUser> findList(SysUserRequest sysUserRequest);
|
List<SysUser> findList(SysUserRequest sysUserRequest);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取列表(带分页)
|
* 获取列表(带分页)
|
||||||
*
|
*
|
||||||
* @param sysUserRequest 请求参数
|
* @param sysUserRequest 请求参数
|
||||||
* @return PageResult<SysUser> 返回结果
|
* @return PageResult<SysUser> 返回结果
|
||||||
* @author fengshuonan
|
* @author fengshuonan
|
||||||
* @date 2023/06/10 21:26
|
* @date 2023/06/10 21:26
|
||||||
*/
|
*/
|
||||||
PageResult<SysUser> findPage(SysUserRequest sysUserRequest);
|
PageResult<SysUser> findPage(SysUserRequest sysUserRequest);
|
||||||
|
|
||||||
}
|
}
|
|
@ -29,6 +29,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 系统用户业务实现层
|
* 系统用户业务实现层
|
||||||
|
@ -76,19 +77,26 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||||
throw new ServiceException(SysUserExceptionEnum.USER_CAN_NOT_DELETE_ADMIN);
|
throw new ServiceException(SysUserExceptionEnum.USER_CAN_NOT_DELETE_ADMIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 校验是否有其他业务绑定了用户信息
|
// 删除用户的业务操作
|
||||||
Map<String, RemoveUserCallbackApi> removeUserCallbackApiMap = SpringUtil.getBeansOfType(RemoveUserCallbackApi.class);
|
this.baseRemoveUser(CollectionUtil.set(false, sysUser.getUserId()));
|
||||||
for (RemoveUserCallbackApi removeUserCallbackApi : removeUserCallbackApiMap.values()) {
|
}
|
||||||
removeUserCallbackApi.validateHaveUserBind(CollectionUtil.set(false, sysUser.getUserId()));
|
|
||||||
|
@Override
|
||||||
|
public void batchDel(SysUserRequest sysUserRequest) {
|
||||||
|
|
||||||
|
// 判断被删除用户是否有管理员
|
||||||
|
Set<Long> userIdList = sysUserRequest.getUserIdList();
|
||||||
|
|
||||||
|
LambdaQueryWrapper<SysUser> sysUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
sysUserLambdaQueryWrapper.in(SysUser::getUserId, userIdList);
|
||||||
|
sysUserLambdaQueryWrapper.eq(SysUser::getSuperAdminFlag, YesOrNotEnum.Y.getCode());
|
||||||
|
long adminCount = this.count(sysUserLambdaQueryWrapper);
|
||||||
|
if (adminCount > 0) {
|
||||||
|
throw new ServiceException(SysUserExceptionEnum.USER_CAN_NOT_DELETE_ADMIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 执行删除用户操作
|
// 删除用户的业务操作
|
||||||
this.removeById(sysUser.getUserId());
|
this.baseRemoveUser(userIdList);
|
||||||
|
|
||||||
// 执行删除用户关联业务的操作
|
|
||||||
for (RemoveUserCallbackApi removeUserCallbackApi : removeUserCallbackApiMap.values()) {
|
|
||||||
removeUserCallbackApi.removeUserAction(CollectionUtil.set(false, sysUser.getUserId()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -183,4 +191,26 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除用户操作的基础业务
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @since 2023/6/12 10:44
|
||||||
|
*/
|
||||||
|
private void baseRemoveUser(Set<Long> userIdList) {
|
||||||
|
// 校验是否有其他业务绑定了用户信息
|
||||||
|
Map<String, RemoveUserCallbackApi> removeUserCallbackApiMap = SpringUtil.getBeansOfType(RemoveUserCallbackApi.class);
|
||||||
|
for (RemoveUserCallbackApi removeUserCallbackApi : removeUserCallbackApiMap.values()) {
|
||||||
|
removeUserCallbackApi.validateHaveUserBind(userIdList);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 执行删除用户操作
|
||||||
|
this.removeBatchByIds(userIdList);
|
||||||
|
|
||||||
|
// 执行删除用户关联业务的操作
|
||||||
|
for (RemoveUserCallbackApi removeUserCallbackApi : removeUserCallbackApiMap.values()) {
|
||||||
|
removeUserCallbackApi.removeUserAction(userIdList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue