【7.6.0】【sys】【user】更新删除用户逻辑

pull/55/MERGE
fengshuonan 2023-06-12 10:31:08 +08:00
parent 22114d6f9f
commit 634fe64b8a
2 changed files with 30 additions and 1 deletions

View File

@ -16,7 +16,12 @@ public enum SysUserExceptionEnum implements AbstractExceptionEnum {
/**
*
*/
SYS_USER_NOT_EXISTED(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10001", "查询结果不存在");
SYS_USER_NOT_EXISTED(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10001", "查询结果不存在"),
/**
*
*/
USER_CAN_NOT_DELETE_ADMIN(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10002", "不能删除超级管理员");
/**
*

View File

@ -1,15 +1,19 @@
package cn.stylefeng.roses.kernel.sys.modular.user.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.password.PasswordStoredEncryptApi;
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.file.api.constants.FileConstants;
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
import cn.stylefeng.roses.kernel.sys.api.SysUserServiceApi;
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveUserCallbackApi;
import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUser;
import cn.stylefeng.roses.kernel.sys.modular.user.enums.SysUserExceptionEnum;
import cn.stylefeng.roses.kernel.sys.modular.user.mapper.SysUserMapper;
@ -24,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
*
@ -62,9 +67,28 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
}
@Override
@Transactional(rollbackFor = Exception.class)
public void del(SysUserRequest sysUserRequest) {
SysUser sysUser = this.querySysUser(sysUserRequest);
// 不能删除超级管理员
if (YesOrNotEnum.Y.getCode().equals(sysUser.getSuperAdminFlag())) {
throw new ServiceException(SysUserExceptionEnum.USER_CAN_NOT_DELETE_ADMIN);
}
// 校验是否有其他业务绑定了用户信息
Map<String, RemoveUserCallbackApi> removeUserCallbackApiMap = SpringUtil.getBeansOfType(RemoveUserCallbackApi.class);
for (RemoveUserCallbackApi removeUserCallbackApi : removeUserCallbackApiMap.values()) {
removeUserCallbackApi.validateHaveUserBind(CollectionUtil.set(false, sysUser.getUserId()));
}
// 执行删除用户操作
this.removeById(sysUser.getUserId());
// 执行删除用户关联业务的操作
for (RemoveUserCallbackApi removeUserCallbackApi : removeUserCallbackApiMap.values()) {
removeUserCallbackApi.removeUserAction(CollectionUtil.set(false, sysUser.getUserId()));
}
}
@Override