mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-30 12:57:14 +08:00 
			
		
		
		
	refactor: 💥 优化系统内置类型数据标识
1.系统内置类型数据标识由 type 调整为 is_system 2.优化部分表的非空字段
This commit is contained in:
		| @@ -21,7 +21,6 @@ import lombok.Data; | ||||
| import com.baomidou.mybatisplus.annotation.TableName; | ||||
|  | ||||
| import top.charles7c.cnadmin.common.base.BaseDO; | ||||
| import top.charles7c.cnadmin.common.enums.DataTypeEnum; | ||||
| import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; | ||||
|  | ||||
| /** | ||||
| @@ -67,7 +66,7 @@ public class DeptDO extends BaseDO { | ||||
|     private DisEnableStatusEnum status; | ||||
|  | ||||
|     /** | ||||
|      * 类型(1:系统内置,2:自定义) | ||||
|      * 是否为系统内置数据 | ||||
|      */ | ||||
|     private DataTypeEnum type; | ||||
|     private Boolean isSystem; | ||||
| } | ||||
|   | ||||
| @@ -48,4 +48,9 @@ public class DictDO extends BaseDO { | ||||
|      * 描述 | ||||
|      */ | ||||
|     private String description; | ||||
|  | ||||
|     /** | ||||
|      * 是否为系统内置数据 | ||||
|      */ | ||||
|     private Boolean isSystem; | ||||
| } | ||||
| @@ -22,7 +22,6 @@ import com.baomidou.mybatisplus.annotation.TableName; | ||||
|  | ||||
| import top.charles7c.cnadmin.common.base.BaseDO; | ||||
| import top.charles7c.cnadmin.common.enums.DataScopeEnum; | ||||
| import top.charles7c.cnadmin.common.enums.DataTypeEnum; | ||||
| import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; | ||||
|  | ||||
| /** | ||||
| @@ -68,7 +67,7 @@ public class RoleDO extends BaseDO { | ||||
|     private DisEnableStatusEnum status; | ||||
|  | ||||
|     /** | ||||
|      * 类型(1:系统内置,2:自定义) | ||||
|      * 是否为系统内置数据 | ||||
|      */ | ||||
|     private DataTypeEnum type; | ||||
|     private Boolean isSystem; | ||||
| } | ||||
|   | ||||
| @@ -23,7 +23,6 @@ import lombok.Data; | ||||
| import com.baomidou.mybatisplus.annotation.TableName; | ||||
|  | ||||
| import top.charles7c.cnadmin.common.base.BaseDO; | ||||
| import top.charles7c.cnadmin.common.enums.DataTypeEnum; | ||||
| import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; | ||||
| import top.charles7c.cnadmin.common.enums.GenderEnum; | ||||
|  | ||||
| @@ -85,9 +84,9 @@ public class UserDO extends BaseDO { | ||||
|     private DisEnableStatusEnum status; | ||||
|  | ||||
|     /** | ||||
|      * 类型(1:系统内置,2:自定义) | ||||
|      * 是否为系统内置数据 | ||||
|      */ | ||||
|     private DataTypeEnum type; | ||||
|     private Boolean isSystem; | ||||
|  | ||||
|     /** | ||||
|      * 最后一次修改密码时间 | ||||
|   | ||||
| @@ -26,7 +26,6 @@ import com.baomidou.mybatisplus.annotation.TableField; | ||||
|  | ||||
| import top.charles7c.cnadmin.common.base.BaseDetailVO; | ||||
| import top.charles7c.cnadmin.common.config.easyexcel.ExcelBaseEnumConverter; | ||||
| import top.charles7c.cnadmin.common.enums.DataTypeEnum; | ||||
| import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; | ||||
|  | ||||
| /** | ||||
| @@ -77,11 +76,11 @@ public class DeptDetailVO extends BaseDetailVO { | ||||
|     private DisEnableStatusEnum status; | ||||
|  | ||||
|     /** | ||||
|      * 类型(1:系统内置,2:自定义) | ||||
|      * 是否为系统内置数据 | ||||
|      */ | ||||
|     @Schema(description = "类型(1:系统内置,2:自定义)", type = "Integer", allowableValues = {"1", "2"}, example = "2") | ||||
|     @ExcelProperty(value = "类型", converter = ExcelBaseEnumConverter.class) | ||||
|     private DataTypeEnum type; | ||||
|     @Schema(description = "是否为系统内置数据", example = "false") | ||||
|     @ExcelProperty(value = "系统内置") | ||||
|     private Boolean isSystem; | ||||
|  | ||||
|     /** | ||||
|      * 描述 | ||||
| @@ -92,6 +91,6 @@ public class DeptDetailVO extends BaseDetailVO { | ||||
|  | ||||
|     @Override | ||||
|     public Boolean getDisabled() { | ||||
|         return DataTypeEnum.SYSTEM.equals(type); | ||||
|         return this.getIsSystem(); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -22,7 +22,6 @@ import io.swagger.v3.oas.annotations.media.Schema; | ||||
|  | ||||
| import top.charles7c.cnadmin.common.annotation.TreeField; | ||||
| import top.charles7c.cnadmin.common.base.BaseVO; | ||||
| import top.charles7c.cnadmin.common.enums.DataTypeEnum; | ||||
| import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; | ||||
|  | ||||
| /** | ||||
| @@ -63,10 +62,10 @@ public class DeptVO extends BaseVO { | ||||
|     private DisEnableStatusEnum status; | ||||
|  | ||||
|     /** | ||||
|      * 类型(1:系统内置,2:自定义) | ||||
|      * 是否为系统内置数据 | ||||
|      */ | ||||
|     @Schema(description = "类型(1:系统内置,2:自定义)", type = "Integer", allowableValues = {"1", "2"}, example = "2") | ||||
|     private DataTypeEnum type; | ||||
|     @Schema(description = "是否为系统内置数据", example = "false") | ||||
|     private Boolean isSystem; | ||||
|  | ||||
|     /** | ||||
|      * 描述 | ||||
| @@ -76,6 +75,6 @@ public class DeptVO extends BaseVO { | ||||
|  | ||||
|     @Override | ||||
|     public Boolean getDisabled() { | ||||
|         return DataTypeEnum.SYSTEM.equals(type); | ||||
|         return this.getIsSystem(); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -51,4 +51,10 @@ public class DictDetailVO extends BaseDetailVO { | ||||
|      */ | ||||
|     @Schema(description = "描述", example = "公告类型描述信息") | ||||
|     private String description; | ||||
|  | ||||
|     /** | ||||
|      * 是否为系统内置数据 | ||||
|      */ | ||||
|     @Schema(description = "是否为系统内置数据", example = "true") | ||||
|     private Boolean isSystem; | ||||
| } | ||||
| @@ -51,4 +51,10 @@ public class DictVO extends BaseVO { | ||||
|      */ | ||||
|     @Schema(description = "描述", example = "公告类型描述信息") | ||||
|     private String description; | ||||
|  | ||||
|     /** | ||||
|      * 是否为系统内置数据 | ||||
|      */ | ||||
|     @Schema(description = "是否为系统内置数据", example = "true") | ||||
|     private Boolean isSystem; | ||||
| } | ||||
| @@ -28,7 +28,6 @@ import com.alibaba.excel.annotation.ExcelProperty; | ||||
| import top.charles7c.cnadmin.common.base.BaseDetailVO; | ||||
| import top.charles7c.cnadmin.common.config.easyexcel.ExcelBaseEnumConverter; | ||||
| import top.charles7c.cnadmin.common.enums.DataScopeEnum; | ||||
| import top.charles7c.cnadmin.common.enums.DataTypeEnum; | ||||
| import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; | ||||
|  | ||||
| /** | ||||
| @@ -81,11 +80,11 @@ public class RoleDetailVO extends BaseDetailVO { | ||||
|     private DisEnableStatusEnum status; | ||||
|  | ||||
|     /** | ||||
|      * 类型(1:系统内置,2:自定义) | ||||
|      * 是否为系统内置数据 | ||||
|      */ | ||||
|     @Schema(description = "类型(1:系统内置,2:自定义)", example = "2") | ||||
|     @ExcelProperty(value = "类型", converter = ExcelBaseEnumConverter.class) | ||||
|     private DataTypeEnum type; | ||||
|     @Schema(description = "是否为系统内置数据", example = "false") | ||||
|     @ExcelProperty(value = "系统内置") | ||||
|     private Boolean isSystem; | ||||
|  | ||||
|     /** | ||||
|      * 描述 | ||||
| @@ -108,6 +107,6 @@ public class RoleDetailVO extends BaseDetailVO { | ||||
|  | ||||
|     @Override | ||||
|     public Boolean getDisabled() { | ||||
|         return DataTypeEnum.SYSTEM.equals(type); | ||||
|         return this.getIsSystem(); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -22,7 +22,6 @@ import io.swagger.v3.oas.annotations.media.Schema; | ||||
|  | ||||
| import top.charles7c.cnadmin.common.base.BaseVO; | ||||
| import top.charles7c.cnadmin.common.enums.DataScopeEnum; | ||||
| import top.charles7c.cnadmin.common.enums.DataTypeEnum; | ||||
| import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; | ||||
|  | ||||
| /** | ||||
| @@ -69,10 +68,10 @@ public class RoleVO extends BaseVO { | ||||
|     private DisEnableStatusEnum status; | ||||
|  | ||||
|     /** | ||||
|      * 类型(1:系统内置,2:自定义) | ||||
|      * 是否为系统内置数据 | ||||
|      */ | ||||
|     @Schema(description = "类型(1:系统内置,2:自定义)", type = "Integer", allowableValues = {"1", "2"}, example = "2") | ||||
|     private DataTypeEnum type; | ||||
|     @Schema(description = "是否为系统内置数据", example = "false") | ||||
|     private Boolean isSystem; | ||||
|  | ||||
|     /** | ||||
|      * 描述 | ||||
| @@ -82,6 +81,6 @@ public class RoleVO extends BaseVO { | ||||
|  | ||||
|     @Override | ||||
|     public Boolean getDisabled() { | ||||
|         return DataTypeEnum.SYSTEM.equals(type); | ||||
|         return this.getIsSystem(); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -29,7 +29,6 @@ import com.alibaba.excel.annotation.ExcelProperty; | ||||
|  | ||||
| import top.charles7c.cnadmin.common.base.BaseDetailVO; | ||||
| import top.charles7c.cnadmin.common.config.easyexcel.ExcelBaseEnumConverter; | ||||
| import top.charles7c.cnadmin.common.enums.DataTypeEnum; | ||||
| import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; | ||||
| import top.charles7c.cnadmin.common.enums.GenderEnum; | ||||
| import top.charles7c.cnadmin.common.util.helper.LoginHelper; | ||||
| @@ -98,11 +97,11 @@ public class UserDetailVO extends BaseDetailVO { | ||||
|     private DisEnableStatusEnum status; | ||||
|  | ||||
|     /** | ||||
|      * 类型(1:系统内置,2:自定义) | ||||
|      * 是否为系统内置数据 | ||||
|      */ | ||||
|     @Schema(description = "类型(1:系统内置,2:自定义)", type = "Integer", allowableValues = {"1", "2"}, example = "2") | ||||
|     @ExcelProperty(value = "类型", converter = ExcelBaseEnumConverter.class) | ||||
|     private DataTypeEnum type; | ||||
|     @Schema(description = "系统内置", example = "false") | ||||
|     @ExcelProperty(value = "系统内置") | ||||
|     private Boolean isSystem; | ||||
|  | ||||
|     /** | ||||
|      * 描述 | ||||
| @@ -145,6 +144,6 @@ public class UserDetailVO extends BaseDetailVO { | ||||
|  | ||||
|     @Override | ||||
|     public Boolean getDisabled() { | ||||
|         return DataTypeEnum.SYSTEM.equals(type) || Objects.equals(this.getId(), LoginHelper.getUserId()); | ||||
|         return this.getIsSystem() || Objects.equals(this.getId(), LoginHelper.getUserId()); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -25,7 +25,6 @@ import io.swagger.v3.oas.annotations.media.Schema; | ||||
| import cn.hutool.core.util.DesensitizedUtil; | ||||
|  | ||||
| import top.charles7c.cnadmin.common.base.BaseVO; | ||||
| import top.charles7c.cnadmin.common.enums.DataTypeEnum; | ||||
| import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; | ||||
| import top.charles7c.cnadmin.common.enums.GenderEnum; | ||||
| import top.charles7c.cnadmin.common.util.helper.LoginHelper; | ||||
| @@ -86,10 +85,10 @@ public class UserVO extends BaseVO { | ||||
|     private DisEnableStatusEnum status; | ||||
|  | ||||
|     /** | ||||
|      * 类型(1:系统内置,2:自定义) | ||||
|      * 是否为系统内置数据 | ||||
|      */ | ||||
|     @Schema(description = "类型(1:系统内置,2:自定义)", type = "Integer", allowableValues = {"1", "2"}, example = "2") | ||||
|     private DataTypeEnum type; | ||||
|     @Schema(description = "是否为系统内置数据", example = "false") | ||||
|     private Boolean isSystem; | ||||
|  | ||||
|     /** | ||||
|      * 描述 | ||||
| @@ -99,7 +98,7 @@ public class UserVO extends BaseVO { | ||||
|  | ||||
|     @Override | ||||
|     public Boolean getDisabled() { | ||||
|         return Objects.equals(this.getId(), LoginHelper.getUserId()); | ||||
|         return this.getIsSystem() || Objects.equals(this.getId(), LoginHelper.getUserId()); | ||||
|     } | ||||
|  | ||||
|     public String getPhone() { | ||||
|   | ||||
| @@ -33,7 +33,6 @@ import cn.hutool.core.util.ObjectUtil; | ||||
|  | ||||
| import top.charles7c.cnadmin.common.base.BaseServiceImpl; | ||||
| import top.charles7c.cnadmin.common.constant.SysConsts; | ||||
| import top.charles7c.cnadmin.common.enums.DataTypeEnum; | ||||
| import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; | ||||
| import top.charles7c.cnadmin.common.util.ExceptionUtils; | ||||
| import top.charles7c.cnadmin.common.util.validate.CheckUtils; | ||||
| @@ -83,7 +82,7 @@ public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptVO, | ||||
|         String oldName = oldDept.getName(); | ||||
|         DisEnableStatusEnum newStatus = request.getStatus(); | ||||
|         Long oldParentId = oldDept.getParentId(); | ||||
|         if (DataTypeEnum.SYSTEM.equals(oldDept.getType())) { | ||||
|         if (oldDept.getIsSystem()) { | ||||
|             CheckUtils.throwIfEqual(DisEnableStatusEnum.DISABLE, newStatus, "[{}] 是系统内置部门,不允许禁用", oldName); | ||||
|             CheckUtils.throwIfNotEqual(request.getParentId(), oldParentId, "[{}] 是系统内置部门,不允许变更上级部门", oldName); | ||||
|         } | ||||
| @@ -113,8 +112,8 @@ public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptVO, | ||||
|     @Transactional(rollbackFor = Exception.class) | ||||
|     public void delete(List<Long> ids) { | ||||
|         List<DeptDO> list = | ||||
|             baseMapper.lambdaQuery().select(DeptDO::getName, DeptDO::getType).in(DeptDO::getId, ids).list(); | ||||
|         Optional<DeptDO> isSystemData = list.stream().filter(d -> DataTypeEnum.SYSTEM.equals(d.getType())).findFirst(); | ||||
|             baseMapper.lambdaQuery().select(DeptDO::getName, DeptDO::getIsSystem).in(DeptDO::getId, ids).list(); | ||||
|         Optional<DeptDO> isSystemData = list.stream().filter(DeptDO::getIsSystem).findFirst(); | ||||
|         CheckUtils.throwIf(isSystemData::isPresent, "所选部门 [{}] 是系统内置部门,不允许删除", | ||||
|             isSystemData.orElseGet(DeptDO::new).getName()); | ||||
|         CheckUtils.throwIf(this.countChildren(ids) > 0, "所选部门存在下级部门,不允许删除"); | ||||
|   | ||||
| @@ -18,6 +18,7 @@ package top.charles7c.cnadmin.system.service.impl; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import java.util.Optional; | ||||
|  | ||||
| import javax.servlet.http.HttpServletResponse; | ||||
|  | ||||
| @@ -68,12 +69,22 @@ public class DictServiceImpl extends BaseServiceImpl<DictMapper, DictDO, DictVO, | ||||
|         CheckUtils.throwIf(this.checkNameExists(name, id), "修改失败,[{}] 已存在", name); | ||||
|         String code = request.getCode(); | ||||
|         CheckUtils.throwIf(this.checkCodeExists(code, id), "修改失败,[{}] 已存在", code); | ||||
|         DictDO oldDict = super.getById(id); | ||||
|         if (oldDict.getIsSystem()) { | ||||
|             CheckUtils.throwIfNotEqual(request.getCode(), oldDict.getCode(), "[{}] 是系统内置字典,不允许修改字典编码", | ||||
|                 oldDict.getName()); | ||||
|         } | ||||
|         super.update(request, id); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     @Transactional(rollbackFor = Exception.class) | ||||
|     public void delete(List<Long> ids) { | ||||
|         List<DictDO> list = | ||||
|             baseMapper.lambdaQuery().select(DictDO::getName, DictDO::getIsSystem).in(DictDO::getId, ids).list(); | ||||
|         Optional<DictDO> isSystemData = list.stream().filter(DictDO::getIsSystem).findFirst(); | ||||
|         CheckUtils.throwIf(isSystemData::isPresent, "所选字典 [{}] 是系统内置字典,不允许删除", | ||||
|             isSystemData.orElseGet(DictDO::new).getName()); | ||||
|         dictItemService.deleteByDictIds(ids); | ||||
|         super.delete(ids); | ||||
|     } | ||||
|   | ||||
| @@ -34,7 +34,6 @@ import top.charles7c.cnadmin.common.base.BaseServiceImpl; | ||||
| import top.charles7c.cnadmin.common.constant.CacheConsts; | ||||
| import top.charles7c.cnadmin.common.constant.SysConsts; | ||||
| import top.charles7c.cnadmin.common.enums.DataScopeEnum; | ||||
| import top.charles7c.cnadmin.common.enums.DataTypeEnum; | ||||
| import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; | ||||
| import top.charles7c.cnadmin.common.model.dto.RoleDTO; | ||||
| import top.charles7c.cnadmin.common.model.vo.LabelValueVO; | ||||
| @@ -93,7 +92,7 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleVO, | ||||
|         RoleDO oldRole = super.getById(id); | ||||
|         DataScopeEnum oldDataScope = oldRole.getDataScope(); | ||||
|         String oldCode = oldRole.getCode(); | ||||
|         if (DataTypeEnum.SYSTEM.equals(oldRole.getType())) { | ||||
|         if (oldRole.getIsSystem()) { | ||||
|             CheckUtils.throwIfEqual(DisEnableStatusEnum.DISABLE, request.getStatus(), "[{}] 是系统内置角色,不允许禁用", | ||||
|                 oldRole.getName()); | ||||
|             CheckUtils.throwIfNotEqual(request.getCode(), oldCode, "[{}] 是系统内置角色,不允许修改角色编码", oldRole.getName()); | ||||
| @@ -121,8 +120,8 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleVO, | ||||
|     @Transactional(rollbackFor = Exception.class) | ||||
|     public void delete(List<Long> ids) { | ||||
|         List<RoleDO> list = | ||||
|             baseMapper.lambdaQuery().select(RoleDO::getName, RoleDO::getType).in(RoleDO::getId, ids).list(); | ||||
|         Optional<RoleDO> isSystemData = list.stream().filter(r -> DataTypeEnum.SYSTEM.equals(r.getType())).findFirst(); | ||||
|             baseMapper.lambdaQuery().select(RoleDO::getName, RoleDO::getIsSystem).in(RoleDO::getId, ids).list(); | ||||
|         Optional<RoleDO> isSystemData = list.stream().filter(RoleDO::getIsSystem).findFirst(); | ||||
|         CheckUtils.throwIf(isSystemData::isPresent, "所选角色 [{}] 是系统内置角色,不允许删除", | ||||
|             isSystemData.orElseGet(RoleDO::new).getName()); | ||||
|         CheckUtils.throwIf(userRoleService.countByRoleIds(ids) > 0, "所选角色存在用户关联,请解除关联后重试"); | ||||
|   | ||||
| @@ -44,7 +44,6 @@ import top.charles7c.cnadmin.common.constant.CacheConsts; | ||||
| import top.charles7c.cnadmin.common.constant.FileConsts; | ||||
| import top.charles7c.cnadmin.common.constant.StringConsts; | ||||
| import top.charles7c.cnadmin.common.constant.SysConsts; | ||||
| import top.charles7c.cnadmin.common.enums.DataTypeEnum; | ||||
| import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; | ||||
| import top.charles7c.cnadmin.common.service.CommonUserService; | ||||
| import top.charles7c.cnadmin.common.util.ExceptionUtils; | ||||
| @@ -117,7 +116,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO, | ||||
|             DisEnableStatusEnum.DISABLE.equals(newStatus) && ObjectUtil.equal(id, LoginHelper.getUserId()), | ||||
|             "不允许禁用当前用户"); | ||||
|         UserDO oldUser = super.getById(id); | ||||
|         if (DataTypeEnum.SYSTEM.equals(oldUser.getType())) { | ||||
|         if (oldUser.getIsSystem()) { | ||||
|             CheckUtils.throwIfEqual(DisEnableStatusEnum.DISABLE, newStatus, "[{}] 是系统内置用户,不允许禁用", | ||||
|                 oldUser.getNickname()); | ||||
|             Collection<Long> disjunctionRoleIds = | ||||
| @@ -135,8 +134,8 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO, | ||||
|     public void delete(List<Long> ids) { | ||||
|         CheckUtils.throwIf(CollUtil.contains(ids, LoginHelper.getUserId()), "不允许删除当前用户"); | ||||
|         List<UserDO> list = | ||||
|             baseMapper.lambdaQuery().select(UserDO::getNickname, UserDO::getType).in(UserDO::getId, ids).list(); | ||||
|         Optional<UserDO> isSystemData = list.stream().filter(u -> DataTypeEnum.SYSTEM.equals(u.getType())).findFirst(); | ||||
|             baseMapper.lambdaQuery().select(UserDO::getNickname, UserDO::getIsSystem).in(UserDO::getId, ids).list(); | ||||
|         Optional<UserDO> isSystemData = list.stream().filter(UserDO::getIsSystem).findFirst(); | ||||
|         CheckUtils.throwIf(isSystemData::isPresent, "所选用户 [{}] 是系统内置用户,不允许删除", | ||||
|             isSystemData.orElseGet(UserDO::new).getNickname()); | ||||
|         // 删除用户和角色关联 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user