update 优化系统状态类型的使用,使不同表的停/启用状态类型趋于统一 纠正部分删除标记使用了错误的状态

This commit is contained in:
秋辞未寒 2024-11-08 16:35:20 +08:00
parent 70a5077291
commit fd77c19059
13 changed files with 97 additions and 121 deletions

View File

@ -12,7 +12,7 @@ import me.zhyd.oauth.model.AuthResponse;
import me.zhyd.oauth.model.AuthUser;
import me.zhyd.oauth.request.AuthRequest;
import me.zhyd.oauth.utils.AuthStateUtils;
import org.dromara.common.core.constant.UserConstants;
import org.dromara.common.core.constant.StatusConstants;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.domain.model.LoginBody;
import org.dromara.common.core.domain.model.RegisterBody;
@ -92,7 +92,7 @@ public class AuthController {
if (ObjectUtil.isNull(client) || !StringUtils.contains(client.getGrantType(), grantType)) {
log.info("客户端id: {} 认证类型:{} 异常!.", clientId, grantType);
return R.fail(MessageUtils.message("auth.grant.type.error"));
} else if (!UserConstants.NORMAL.equals(client.getStatus())) {
} else if (!StatusConstants.ENABLED_STATUS.equals(client.getStatus())) {
return R.fail(MessageUtils.message("auth.grant.type.blocked"));
}
// 校验租户

View File

@ -0,0 +1,50 @@
package org.dromara.common.core.constant;
/**
* 全局状态常量
*
* @author 秋辞未寒
*/
public interface StatusConstants {
/**
* 启用/正常状态
*/
String ENABLED_STATUS = "0";
/**
* 禁用/停用状态
*/
String DISABLED_STATUS = "1";
/**
* (代码Y)
*/
String YES_CODE = "Y";
/**
* (代码N)
*/
String NO_CODE = "N";
/**
* (数字0)
*/
String YES_NUMBER = "0";
/**
* (数字1)
*/
String NO_NUMBER = "1";
/**
* 未删除
*/
String DELETED_FALSE = "0";
/**
* 已删除
*/
String DELETED_TRUE = "2";
}

View File

@ -12,95 +12,15 @@ public interface UserConstants {
*/
String SYS_USER = "SYS_USER";
/**
* 正常状态
*/
String NORMAL = "0";
/**
* 异常状态
*/
String EXCEPTION = "1";
/**
* 用户正常状态
*/
String USER_NORMAL = "0";
/**
* 用户封禁状态
*/
String USER_DISABLE = "1";
/**
* 角色正常状态
*/
String ROLE_NORMAL = "0";
/**
* 角色封禁状态
*/
String ROLE_DISABLE = "1";
/**
* 部门正常状态
*/
String DEPT_NORMAL = "0";
/**
* 部门停用状态
*/
String DEPT_DISABLE = "1";
/**
* 岗位正常状态
*/
String POST_NORMAL = "0";
/**
* 岗位停用状态
*/
String POST_DISABLE = "1";
/**
* 字典正常状态
*/
String DICT_NORMAL = "0";
/**
* 通用存在标志
*/
String DEL_FLAG_NORMAL = "0";
/**
* 通用删除标志
*/
String DEL_FLAG_REMOVED = "2";
/**
* 是否为系统默认
*/
String YES = "Y";
/**
* 是否菜单外链
*/
String YES_FRAME = "0";
String YES_FRAME = StatusConstants.YES_NUMBER;
/**
* 是否菜单外链
*/
String NO_FRAME = "1";
/**
* 菜单正常状态
*/
String MENU_NORMAL = "0";
/**
* 菜单停用状态
*/
String MENU_DISABLE = "1";
String NO_FRAME = StatusConstants.NO_NUMBER;
/**
* 菜单类型目录
@ -149,4 +69,9 @@ public interface UserConstants {
*/
Long SUPER_ADMIN_ID = 1L;
/**
* 部门祖级根ID
*/
String DEPT_ANCESTORS_ROOT_ID = "0";
}

View File

@ -3,7 +3,7 @@ package org.dromara.system.controller.system;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.convert.Convert;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.UserConstants;
import org.dromara.common.core.constant.StatusConstants;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.log.annotation.Log;
@ -94,7 +94,7 @@ public class SysDeptController extends BaseController {
return R.fail("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在");
} else if (dept.getParentId().equals(deptId)) {
return R.fail("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己");
} else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus())) {
} else if (StringUtils.equals(StatusConstants.DISABLED_STATUS, dept.getStatus())) {
if (deptService.selectNormalChildrenDeptById(deptId) > 0) {
return R.fail("该部门包含未停用的子部门!");
} else if (deptService.checkDeptExistUser(deptId)) {

View File

@ -4,7 +4,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.util.ObjectUtil;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.UserConstants;
import org.dromara.common.core.constant.StatusConstants;
import org.dromara.common.core.domain.R;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.common.log.annotation.Log;
@ -91,7 +91,7 @@ public class SysPostController extends BaseController {
return R.fail("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在");
} else if (!postService.checkPostCodeUnique(post)) {
return R.fail("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在");
} else if (UserConstants.POST_DISABLE.equals(post.getStatus())
} else if (StatusConstants.DISABLED_STATUS.equals(post.getStatus())
&& postService.countUserPostById(post.getPostId()) > 0) {
return R.fail("该岗位下存在已分配用户,不能禁用!");
}

View File

@ -8,7 +8,7 @@ import cn.hutool.core.util.ObjectUtil;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.UserConstants;
import org.dromara.common.core.constant.StatusConstants;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.utils.StreamUtils;
@ -143,7 +143,7 @@ public class SysUserController extends BaseController {
}
}
SysRoleBo roleBo = new SysRoleBo();
roleBo.setStatus(UserConstants.ROLE_NORMAL);
roleBo.setStatus(StatusConstants.ENABLED_STATUS);
List<SysRoleVo> roles = roleService.selectRoleList(roleBo);
userInfoVo.setRoles(LoginHelper.isSuperAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isSuperAdmin()));
return R.ok(userInfoVo);

View File

@ -2,10 +2,10 @@ package org.dromara.system.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import org.dromara.common.core.constant.UserConstants;
import org.dromara.common.tenant.core.TenantEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.constant.StatusConstants;
import org.dromara.common.tenant.core.TenantEntity;
/**
* 字典数据表 sys_dict_data
@ -65,7 +65,7 @@ public class SysDictData extends TenantEntity {
private String remark;
public boolean getDefault() {
return UserConstants.YES.equals(this.isDefault);
return StatusConstants.YES_CODE.equals(this.isDefault);
}
}

View File

@ -3,6 +3,7 @@ package org.dromara.system.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.dromara.common.core.constant.StatusConstants;
import org.dromara.common.core.constant.UserConstants;
import org.dromara.system.domain.SysMenu;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
@ -50,7 +51,7 @@ public interface SysMenuMapper extends BaseMapperPlus<SysMenu, SysMenuVo> {
default List<SysMenu> selectMenuTreeAll() {
LambdaQueryWrapper<SysMenu> lqw = new LambdaQueryWrapper<SysMenu>()
.in(SysMenu::getMenuType, UserConstants.TYPE_DIR, UserConstants.TYPE_MENU)
.eq(SysMenu::getStatus, UserConstants.MENU_NORMAL)
.eq(SysMenu::getStatus, StatusConstants.ENABLED_STATUS)
.orderByAsc(SysMenu::getParentId)
.orderByAsc(SysMenu::getOrderNum);
return this.selectList(lqw);

View File

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.dromara.common.core.constant.CacheNames;
import org.dromara.common.core.constant.StatusConstants;
import org.dromara.common.core.constant.UserConstants;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.service.ConfigService;
@ -173,7 +174,7 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService {
public void deleteConfigByIds(Long[] configIds) {
for (Long configId : configIds) {
SysConfig config = baseMapper.selectById(configId);
if (StringUtils.equals(UserConstants.YES, config.getConfigType())) {
if (StringUtils.equals(StatusConstants.YES_CODE, config.getConfigType())) {
throw new ServiceException(String.format("内置参数【%1$s】不能删除 ", config.getConfigKey()));
}
CacheUtils.evict(CacheNames.SYS_CONFIG, config.getConfigKey());

View File

@ -9,14 +9,11 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.CacheNames;
import org.dromara.common.core.constant.StatusConstants;
import org.dromara.common.core.constant.UserConstants;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.service.DeptService;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.TreeBuildUtils;
import org.dromara.common.core.utils.*;
import org.dromara.common.mybatis.helper.DataBaseHelper;
import org.dromara.common.redis.utils.CacheUtils;
import org.dromara.common.satoken.utils.LoginHelper;
@ -71,7 +68,7 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
@Override
public List<Tree<Long>> selectDeptTreeList(SysDeptBo bo) {
// 只查询未禁用部门
bo.setStatus(UserConstants.DEPT_NORMAL);
bo.setStatus(StatusConstants.ENABLED_STATUS);
LambdaQueryWrapper<SysDept> lqw = buildQueryWrapper(bo);
List<SysDeptVo> depts = baseMapper.selectDeptList(lqw);
return buildDeptTreeSelect(depts);
@ -79,7 +76,7 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
private LambdaQueryWrapper<SysDept> buildQueryWrapper(SysDeptBo bo) {
LambdaQueryWrapper<SysDept> lqw = Wrappers.lambdaQuery();
lqw.eq(SysDept::getDelFlag, UserConstants.DEL_FLAG_NORMAL);
lqw.eq(SysDept::getDelFlag, StatusConstants.DELETED_FALSE);
lqw.eq(ObjectUtil.isNotNull(bo.getDeptId()), SysDept::getDeptId, bo.getDeptId());
lqw.eq(ObjectUtil.isNotNull(bo.getParentId()), SysDept::getParentId, bo.getParentId());
lqw.like(StringUtils.isNotBlank(bo.getDeptName()), SysDept::getDeptName, bo.getDeptName());
@ -156,7 +153,7 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
public List<SysDeptVo> selectDeptByIds(List<Long> deptIds) {
return baseMapper.selectDeptList(new LambdaQueryWrapper<SysDept>()
.select(SysDept::getDeptId, SysDept::getDeptName, SysDept::getLeader)
.eq(SysDept::getStatus, UserConstants.DEPT_NORMAL)
.eq(SysDept::getStatus, StatusConstants.ENABLED_STATUS)
.in(CollUtil.isNotEmpty(deptIds), SysDept::getDeptId, deptIds));
}
@ -187,7 +184,7 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
@Override
public long selectNormalChildrenDeptById(Long deptId) {
return baseMapper.selectCount(new LambdaQueryWrapper<SysDept>()
.eq(SysDept::getStatus, UserConstants.DEPT_NORMAL)
.eq(SysDept::getStatus, StatusConstants.ENABLED_STATUS)
.apply(DataBaseHelper.findInSet(deptId, "ancestors")));
}
@ -258,7 +255,7 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
public int insertDept(SysDeptBo bo) {
SysDept info = baseMapper.selectById(bo.getParentId());
// 如果父节点不为正常状态,则不允许新增子节点
if (!UserConstants.DEPT_NORMAL.equals(info.getStatus())) {
if (!StatusConstants.ENABLED_STATUS.equals(info.getStatus())) {
throw new ServiceException("部门停用,不允许新增");
}
SysDept dept = MapstructUtils.convert(bo, SysDept.class);
@ -294,8 +291,9 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
dept.setAncestors(oldDept.getAncestors());
}
int result = baseMapper.updateById(dept);
if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors())
&& !StringUtils.equals(UserConstants.DEPT_NORMAL, dept.getAncestors())) {
if (StatusConstants.ENABLED_STATUS.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors())
// 部门祖级id为0则不再处理
&& !StringUtils.equals(UserConstants.DEPT_ANCESTORS_ROOT_ID, dept.getAncestors())) {
// 如果该部门是启用状态则启用该部门的所有上级部门
updateParentDeptStatusNormal(dept);
}
@ -311,7 +309,7 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
String ancestors = dept.getAncestors();
Long[] deptIds = Convert.toLongArray(ancestors);
baseMapper.update(null, new LambdaUpdateWrapper<SysDept>()
.set(SysDept::getStatus, UserConstants.DEPT_NORMAL)
.set(SysDept::getStatus, StatusConstants.ENABLED_STATUS)
.in(SysDept::getDeptId, Arrays.asList(deptIds)));
}

View File

@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.UserConstants;
import org.dromara.common.core.constant.StatusConstants;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StreamUtils;
@ -128,7 +128,7 @@ public class SysPostServiceImpl implements ISysPostService {
public List<SysPostVo> selectPostByIds(List<Long> postIds) {
return baseMapper.selectVoList(new LambdaQueryWrapper<SysPost>()
.select(SysPost::getPostId, SysPost::getPostName, SysPost::getPostCode)
.eq(SysPost::getStatus, UserConstants.POST_NORMAL)
.eq(SysPost::getStatus, StatusConstants.ENABLED_STATUS)
.in(CollUtil.isNotEmpty(postIds), SysPost::getPostId, postIds));
}

View File

@ -12,8 +12,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.StatusConstants;
import org.dromara.common.core.constant.TenantConstants;
import org.dromara.common.core.constant.UserConstants;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils;
@ -72,7 +72,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
private Wrapper<SysRole> buildQueryWrapper(SysRoleBo bo) {
Map<String, Object> params = bo.getParams();
QueryWrapper<SysRole> wrapper = Wrappers.query();
wrapper.eq("r.del_flag", UserConstants.ROLE_NORMAL)
wrapper.eq("r.del_flag", StatusConstants.DELETED_FALSE)
.eq(ObjectUtil.isNotNull(bo.getRoleId()), "r.role_id", bo.getRoleId())
.like(StringUtils.isNotBlank(bo.getRoleName()), "r.role_name", bo.getRoleName())
.eq(StringUtils.isNotBlank(bo.getStatus()), "r.status", bo.getStatus())
@ -174,7 +174,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
@Override
public List<SysRoleVo> selectRoleByIds(List<Long> roleIds) {
return baseMapper.selectRoleList(new QueryWrapper<SysRole>()
.eq("r.status", UserConstants.ROLE_NORMAL)
.eq("r.status", StatusConstants.ENABLED_STATUS)
.in(CollUtil.isNotEmpty(roleIds), "r.role_id", roleIds));
}
@ -294,7 +294,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
public int updateRole(SysRoleBo bo) {
SysRole role = MapstructUtils.convert(bo, SysRole.class);
if (UserConstants.ROLE_DISABLE.equals(role.getStatus()) && this.countUserRoleByRoleId(role.getRoleId()) > 0) {
if (StatusConstants.DISABLED_STATUS.equals(role.getStatus()) && this.countUserRoleByRoleId(role.getRoleId()) > 0) {
throw new ServiceException("角色已分配,不能禁用!");
}
// 修改角色信息
@ -313,7 +313,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
*/
@Override
public int updateRoleStatus(Long roleId, String status) {
if (UserConstants.ROLE_DISABLE.equals(status) && this.countUserRoleByRoleId(roleId) > 0) {
if (StatusConstants.DISABLED_STATUS.equals(status) && this.countUserRoleByRoleId(roleId) > 0) {
throw new ServiceException("角色已分配,不能禁用!");
}
return baseMapper.update(null,

View File

@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.constant.CacheNames;
import org.dromara.common.core.constant.StatusConstants;
import org.dromara.common.core.constant.UserConstants;
import org.dromara.common.core.domain.dto.UserDTO;
import org.dromara.common.core.exception.ServiceException;
@ -80,7 +81,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
private Wrapper<SysUser> buildQueryWrapper(SysUserBo user) {
Map<String, Object> params = user.getParams();
QueryWrapper<SysUser> wrapper = Wrappers.query();
wrapper.eq("u.del_flag", UserConstants.USER_NORMAL)
wrapper.eq("u.del_flag", StatusConstants.DELETED_FALSE)
.eq(ObjectUtil.isNotNull(user.getUserId()), "u.user_id", user.getUserId())
.like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName())
.eq(StringUtils.isNotBlank(user.getStatus()), "u.status", user.getStatus())
@ -108,7 +109,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
@Override
public TableDataInfo<SysUserVo> selectAllocatedList(SysUserBo user, PageQuery pageQuery) {
QueryWrapper<SysUser> wrapper = Wrappers.query();
wrapper.eq("u.del_flag", UserConstants.USER_NORMAL)
wrapper.eq("u.del_flag", StatusConstants.DELETED_FALSE)
.eq(ObjectUtil.isNotNull(user.getRoleId()), "r.role_id", user.getRoleId())
.like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName())
.eq(StringUtils.isNotBlank(user.getStatus()), "u.status", user.getStatus())
@ -128,7 +129,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
public TableDataInfo<SysUserVo> selectUnallocatedList(SysUserBo user, PageQuery pageQuery) {
List<Long> userIds = userRoleMapper.selectUserIdsByRoleId(user.getRoleId());
QueryWrapper<SysUser> wrapper = Wrappers.query();
wrapper.eq("u.del_flag", UserConstants.USER_NORMAL)
wrapper.eq("u.del_flag", StatusConstants.DELETED_FALSE)
.and(w -> w.ne("r.role_id", user.getRoleId()).or().isNull("r.role_id"))
.notIn(CollUtil.isNotEmpty(userIds), "u.user_id", userIds)
.like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName())
@ -187,7 +188,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
public List<SysUserVo> selectUserByIds(List<Long> userIds, Long deptId) {
return baseMapper.selectUserList(new LambdaQueryWrapper<SysUser>()
.select(SysUser::getUserId, SysUser::getUserName, SysUser::getNickName)
.eq(SysUser::getStatus, UserConstants.USER_NORMAL)
.eq(SysUser::getStatus, StatusConstants.ENABLED_STATUS)
.eq(ObjectUtil.isNotNull(deptId), SysUser::getDeptId, deptId)
.in(CollUtil.isNotEmpty(userIds), SysUser::getUserId, userIds));
}
@ -639,7 +640,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
}
List<SysUserVo> list = baseMapper.selectVoList(new LambdaQueryWrapper<SysUser>()
.select(SysUser::getUserId, SysUser::getUserName, SysUser::getNickName, SysUser::getEmail, SysUser::getPhonenumber)
.eq(SysUser::getStatus, UserConstants.USER_NORMAL)
.eq(SysUser::getStatus, StatusConstants.ENABLED_STATUS)
.in(SysUser::getUserId, userIds));
return BeanUtil.copyToList(list, UserDTO.class);
}
@ -695,7 +696,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
}
List<SysUserVo> list = baseMapper.selectVoList(new LambdaQueryWrapper<SysUser>()
.select(SysUser::getUserId, SysUser::getUserName, SysUser::getNickName, SysUser::getEmail, SysUser::getPhonenumber)
.eq(SysUser::getStatus, UserConstants.USER_NORMAL)
.eq(SysUser::getStatus, StatusConstants.ENABLED_STATUS)
.in(SysUser::getDeptId, deptIds));
return BeanUtil.copyToList(list, UserDTO.class);
}