mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-31 10:57:13 +08:00 
			
		
		
		
	refactor: 💥 优化系统内置类型数据标识
1.系统内置类型数据标识由 type 调整为 is_system 2.优化部分表的非空字段
This commit is contained in:
		| @@ -1,44 +0,0 @@ | ||||
| /* | ||||
|  * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. | ||||
|  * | ||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|  * you may not use this file except in compliance with the License. | ||||
|  * You may obtain a copy of the License at | ||||
|  * | ||||
|  *     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, software | ||||
|  * distributed under the License is distributed on an "AS IS" BASIS, | ||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|  * See the License for the specific language governing permissions and | ||||
|  * limitations under the License. | ||||
|  */ | ||||
|  | ||||
| package top.charles7c.cnadmin.common.enums; | ||||
|  | ||||
| import lombok.Getter; | ||||
| import lombok.RequiredArgsConstructor; | ||||
|  | ||||
| import top.charles7c.cnadmin.common.base.BaseEnum; | ||||
| import top.charles7c.cnadmin.common.constant.UIConsts; | ||||
|  | ||||
| /** | ||||
|  * 数据类型枚举 | ||||
|  * | ||||
|  * @author Charles7c | ||||
|  * @since 2023/3/19 12:17 | ||||
|  */ | ||||
| @Getter | ||||
| @RequiredArgsConstructor | ||||
| public enum DataTypeEnum implements BaseEnum<Integer> { | ||||
|  | ||||
|     /** 系统内置 */ | ||||
|     SYSTEM(1, "系统内置", UIConsts.COLOR_ERROR), | ||||
|  | ||||
|     /** 自定义 */ | ||||
|     CUSTOM(2, "自定义", UIConsts.COLOR_PRIMARY),; | ||||
|  | ||||
|     private final Integer value; | ||||
|     private final String description; | ||||
|     private final String color; | ||||
| } | ||||
| @@ -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()); | ||||
|         // 删除用户和角色关联 | ||||
|   | ||||
| @@ -10,7 +10,7 @@ export interface DataRecord { | ||||
|   description?: string; | ||||
|   sort: number; | ||||
|   status?: number; | ||||
|   type?: number; | ||||
|   isSystem?: boolean; | ||||
|   createUserString?: string; | ||||
|   createTime?: string; | ||||
|   updateUserString?: string; | ||||
|   | ||||
| @@ -8,6 +8,7 @@ export interface DataRecord { | ||||
|   name: string; | ||||
|   code: string; | ||||
|   description?: string; | ||||
|   isSystem: boolean; | ||||
|   createUser?: string; | ||||
|   createTime?: string; | ||||
|   updateUser?: string; | ||||
|   | ||||
| @@ -13,7 +13,7 @@ export interface DataRecord { | ||||
|   dataScope: number; | ||||
|   deptIds?: Array<number>; | ||||
|   status?: number; | ||||
|   type?: number; | ||||
|   isSystem?: boolean; | ||||
|   createUserString?: string; | ||||
|   createTime?: string; | ||||
|   updateUserString?: string; | ||||
|   | ||||
| @@ -12,7 +12,7 @@ export interface DataRecord { | ||||
|   phone?: string; | ||||
|   description?: string; | ||||
|   status?: number; | ||||
|   type?: number; | ||||
|   isSystem?: boolean; | ||||
|   pwdResetTime?: string; | ||||
|   createUserString?: string; | ||||
|   createTime?: string; | ||||
|   | ||||
| @@ -131,10 +131,10 @@ | ||||
|               /> | ||||
|             </template> | ||||
|           </a-table-column> | ||||
|           <a-table-column title="类型" align="center"> | ||||
|           <a-table-column title="系统内置" align="center"> | ||||
|             <template #cell="{ record }"> | ||||
|               <a-tag v-if="record.type === 1" color="red">系统内置</a-tag> | ||||
|               <a-tag v-else color="arcoblue">自定义</a-tag> | ||||
|               <a-tag v-if="record.isSystem" color="red">是</a-tag> | ||||
|               <a-tag v-else color="arcoblue">否</a-tag> | ||||
|             </template> | ||||
|           </a-table-column> | ||||
|           <a-table-column title="描述" data-index="description" /> | ||||
| @@ -163,7 +163,7 @@ | ||||
|                   v-permission="['system:dept:delete']" | ||||
|                   type="text" | ||||
|                   size="small" | ||||
|                   title="删除" | ||||
|                   :title="record.isSystem ? '系统内置数据不能删除' : '删除'" | ||||
|                   :disabled="record.disabled" | ||||
|                 > | ||||
|                   <template #icon><icon-delete /></template>删除 | ||||
|   | ||||
| @@ -156,8 +156,8 @@ | ||||
|                       v-permission="['system:dict:delete']" | ||||
|                       type="text" | ||||
|                       size="small" | ||||
|                       title="删除" | ||||
|                       :disabled="record.disabled" | ||||
|                       :title="record.isSystem ? '系统内置数据不能删除' : '删除'" | ||||
|                       :disabled="record.isSystem" | ||||
|                     > | ||||
|                       <template #icon><icon-delete /></template>删除 | ||||
|                     </a-button> | ||||
| @@ -188,7 +188,7 @@ | ||||
|             <a-input v-model="form.name" placeholder="请输入字典名称" /> | ||||
|           </a-form-item> | ||||
|           <a-form-item label="字典编码" field="code"> | ||||
|             <a-input v-model="form.code" placeholder="请输入字典编码" /> | ||||
|             <a-input v-model="form.code" placeholder="请输入字典编码" :disabled="form.isSystem" /> | ||||
|           </a-form-item> | ||||
|           <a-form-item label="描述" field="description"> | ||||
|             <a-textarea | ||||
| @@ -317,6 +317,7 @@ | ||||
|       name: '', | ||||
|       code: '', | ||||
|       description: '', | ||||
|       isSystem: false, | ||||
|     }; | ||||
|     proxy.$refs.formRef?.resetFields(); | ||||
|   }; | ||||
|   | ||||
| @@ -142,10 +142,10 @@ | ||||
|               /> | ||||
|             </template> | ||||
|           </a-table-column> | ||||
|           <a-table-column title="类型" align="center"> | ||||
|           <a-table-column title="系统内置" align="center"> | ||||
|             <template #cell="{ record }"> | ||||
|               <a-tag v-if="record.type === 1" color="red">系统内置</a-tag> | ||||
|               <a-tag v-else color="arcoblue">自定义</a-tag> | ||||
|               <a-tag v-if="record.isSystem" color="red">是</a-tag> | ||||
|               <a-tag v-else color="arcoblue">否</a-tag> | ||||
|             </template> | ||||
|           </a-table-column> | ||||
|           <a-table-column title="描述" data-index="description" tooltip /> | ||||
| @@ -174,7 +174,7 @@ | ||||
|                   v-permission="['system:role:delete']" | ||||
|                   type="text" | ||||
|                   size="small" | ||||
|                   title="删除" | ||||
|                   :title="record.isSystem ? '系统内置数据不能删除' : '删除'" | ||||
|                   :disabled="record.disabled" | ||||
|                 > | ||||
|                   <template #icon><icon-delete /></template>删除 | ||||
|   | ||||
| @@ -192,10 +192,10 @@ | ||||
|                   /> | ||||
|                 </template> | ||||
|               </a-table-column> | ||||
|               <a-table-column title="类型" align="center"> | ||||
|               <a-table-column title="系统内置" align="center" :width="90"> | ||||
|                 <template #cell="{ record }"> | ||||
|                   <a-tag v-if="record.type === 1" color="red">系统内置</a-tag> | ||||
|                   <a-tag v-else color="arcoblue">自定义</a-tag> | ||||
|                   <a-tag v-if="record.isSystem" color="red">是</a-tag> | ||||
|                   <a-tag v-else color="arcoblue">否</a-tag> | ||||
|                 </template> | ||||
|               </a-table-column> | ||||
|               <a-table-column title="创建人/创建时间" :width="175"> | ||||
| @@ -237,7 +237,7 @@ | ||||
|                       v-permission="['system:user:delete']" | ||||
|                       type="text" | ||||
|                       size="small" | ||||
|                       title="删除" | ||||
|                       :title="record.isSystem ? '系统内置数据不能删除' : '删除'" | ||||
|                       :disabled="record.disabled" | ||||
|                     > | ||||
|                       <template #icon><icon-delete /></template> | ||||
|   | ||||
| @@ -39,30 +39,30 @@ VALUES | ||||
|  | ||||
| -- 初始化默认部门 | ||||
| INSERT IGNORE INTO `sys_dept` | ||||
| (`id`, `name`, `parent_id`, `ancestors`, `description`, `sort`, `status`, `type`, `create_user`, `create_time`, `update_user`, `update_time`) | ||||
| (`id`, `name`, `parent_id`, `ancestors`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`) | ||||
| VALUES | ||||
| (1, 'Xxx科技有限公司', 0, '0', '系统初始部门', 1, 1, 1, 1, NOW(), NULL, NULL), | ||||
| (2, '天津总部', 1, '0,1', NULL, 1, 1, 2, 1, NOW(), NULL, NULL), | ||||
| (3, '研发部', 2, '0,1,2', NULL, 1, 1, 2, 1, NOW(), NULL, NULL), | ||||
| (4, 'UI部', 2, '0,1,2', NULL, 2, 1, 2, 1, NOW(), NULL, NULL), | ||||
| (5, '测试部', 2, '0,1,2', NULL, 3, 1, 2, 1, NOW(), NULL, NULL), | ||||
| (6, '运维部', 2, '0,1,2', NULL, 4, 1, 2, 1, NOW(), NULL, NULL), | ||||
| (7, '研发一组', 3, '0,1,2,3', NULL, 1, 1, 2, 1, NOW(), NULL, NULL), | ||||
| (8, '研发二组', 3, '0,1,2,3', NULL, 2, 2, 2, 1, NOW(), NULL, NULL); | ||||
| (1, 'Xxx科技有限公司', 0, '0', '系统初始部门', 1, 1, b'1', 1, NOW(), NULL, NULL), | ||||
| (2, '天津总部', 1, '0,1', NULL, 1, 1, b'0', 1, NOW(), NULL, NULL), | ||||
| (3, '研发部', 2, '0,1,2', NULL, 1, 1, b'0', 1, NOW(), NULL, NULL), | ||||
| (4, 'UI部', 2, '0,1,2', NULL, 2, 1, b'0', 1, NOW(), NULL, NULL), | ||||
| (5, '测试部', 2, '0,1,2', NULL, 3, 1, b'0', 1, NOW(), NULL, NULL), | ||||
| (6, '运维部', 2, '0,1,2', NULL, 4, 1, b'0', 1, NOW(), NULL, NULL), | ||||
| (7, '研发一组', 3, '0,1,2,3', NULL, 1, 1, b'0', 1, NOW(), NULL, NULL), | ||||
| (8, '研发二组', 3, '0,1,2,3', NULL, 2, 2, b'0', 1, NOW(), NULL, NULL); | ||||
|  | ||||
| -- 初始化默认角色 | ||||
| INSERT IGNORE INTO `sys_role` | ||||
| (`id`, `name`, `code`, `data_scope`, `description`, `sort`, `status`, `type`, `create_user`, `create_time`, `update_user`, `update_time`) | ||||
| (`id`, `name`, `code`, `data_scope`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`) | ||||
| VALUES | ||||
| (1, '超级管理员', 'admin', 1, '系统初始角色', 1, 1, 1, 1, NOW(), NULL, NULL), | ||||
| (2, '测试人员', 'test', 5, NULL, 2, 1, 2, 1, NOW(), NULL, NULL); | ||||
| (1, '超级管理员', 'admin', 1, '系统初始角色', 1, 1, b'1', 1, NOW(), NULL, NULL), | ||||
| (2, '测试人员', 'test', 5, NULL, 2, 1, b'0', 1, NOW(), NULL, NULL); | ||||
|  | ||||
| -- 初始化默认用户:admin/admin123;test/123456 | ||||
| INSERT IGNORE INTO `sys_user` | ||||
| (`id`, `username`, `nickname`, `password`, `gender`, `email`, `phone`, `avatar`, `description`, `status`, `type`, `pwd_reset_time`, `dept_id`, `create_user`, `create_time`, `update_user`, `update_time`) | ||||
| (`id`, `username`, `nickname`, `password`, `gender`, `email`, `phone`, `avatar`, `description`, `status`, `is_system`, `pwd_reset_time`, `dept_id`, `create_user`, `create_time`, `update_user`, `update_time`) | ||||
| VALUES | ||||
| (1, 'admin', '超级管理员', '9802815bcc5baae7feb1ae0d0566baf2', 1, 'charles7c@126.com', '18888888888', NULL, '系统初始用户', 1, 1, NOW(), 1, 1, NOW(), NULL, NULL), | ||||
| (2, 'test', '测试员', '8e114197e1b33783a00542ad67e80516', 2, NULL, NULL, NULL, NULL, 2, 2, NOW(), 5, 1, NOW(), NULL, NULL); | ||||
| (1, 'admin', '超级管理员', '9802815bcc5baae7feb1ae0d0566baf2', 1, 'charles7c@126.com', '18888888888', NULL, '系统初始用户', 1, b'1', NULL, 1, 1, NOW(), NULL, NULL), | ||||
| (2, 'test', '测试员', '8e114197e1b33783a00542ad67e80516', 2, NULL, NULL, NULL, NULL, 2, b'0', NULL, 5, 1, NOW(), NULL, NULL); | ||||
|  | ||||
| -- 初始化默认角色和菜单关联数据 | ||||
| INSERT IGNORE INTO `sys_role_menu` | ||||
|   | ||||
| @@ -4,18 +4,18 @@ | ||||
| CREATE TABLE IF NOT EXISTS `sys_menu` ( | ||||
|     `id` bigint(20) UNSIGNED AUTO_INCREMENT COMMENT 'ID', | ||||
|     `title` varchar(50) NOT NULL COMMENT '菜单标题', | ||||
|     `parent_id` bigint(20) UNSIGNED DEFAULT 0 COMMENT '上级菜单ID', | ||||
|     `type` tinyint(1) UNSIGNED DEFAULT 1 COMMENT '菜单类型(1:目录,2:菜单,3:按钮)', | ||||
|     `parent_id` bigint(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT '上级菜单ID', | ||||
|     `type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '菜单类型(1:目录,2:菜单,3:按钮)', | ||||
|     `path` varchar(512) DEFAULT NULL COMMENT '路由地址', | ||||
|     `name` varchar(50) DEFAULT NULL COMMENT '组件名称', | ||||
|     `component` varchar(255) DEFAULT NULL COMMENT '组件路径', | ||||
|     `icon` varchar(255) DEFAULT NULL COMMENT '菜单图标', | ||||
|     `is_external` bit(1) DEFAULT b'0' COMMENT '是否外链', | ||||
|     `is_cache` bit(1) DEFAULT b'0' COMMENT '是否缓存', | ||||
|     `is_hidden` bit(1) DEFAULT b'0' COMMENT '是否隐藏', | ||||
|     `is_external` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否外链', | ||||
|     `is_cache` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否缓存', | ||||
|     `is_hidden` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否隐藏', | ||||
|     `permission` varchar(255) DEFAULT NULL COMMENT '权限标识', | ||||
|     `sort` int(11) UNSIGNED DEFAULT 999 COMMENT '菜单排序', | ||||
|     `status` tinyint(1) UNSIGNED DEFAULT 1 COMMENT '状态(1:启用,2:禁用)', | ||||
|     `sort` int UNSIGNED NOT NULL DEFAULT 999 COMMENT '菜单排序', | ||||
|     `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用,2:禁用)', | ||||
|     `create_user` bigint(20) UNSIGNED NOT NULL COMMENT '创建人', | ||||
|     `create_time` datetime NOT NULL COMMENT '创建时间', | ||||
|     `update_user` bigint(20) UNSIGNED DEFAULT NULL COMMENT '修改人', | ||||
| @@ -30,12 +30,12 @@ CREATE TABLE IF NOT EXISTS `sys_menu` ( | ||||
| CREATE TABLE IF NOT EXISTS `sys_dept` ( | ||||
|     `id` bigint(20) UNSIGNED AUTO_INCREMENT COMMENT 'ID', | ||||
|     `name` varchar(50) NOT NULL COMMENT '部门名称', | ||||
|     `parent_id` bigint(20) UNSIGNED DEFAULT 0 COMMENT '上级部门ID', | ||||
|     `parent_id` bigint(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT '上级部门ID', | ||||
|     `ancestors` varchar(512) DEFAULT '' COMMENT '祖级列表', | ||||
|     `description` varchar(512) DEFAULT NULL COMMENT '描述', | ||||
|     `sort` int(11) UNSIGNED DEFAULT 999 COMMENT '部门排序', | ||||
|     `status` tinyint(1) UNSIGNED DEFAULT 1 COMMENT '状态(1:启用,2:禁用)', | ||||
|     `type` tinyint(1) UNSIGNED DEFAULT 2 COMMENT '类型(1:系统内置,2:自定义)', | ||||
|     `sort` int UNSIGNED NOT NULL DEFAULT 999 COMMENT '部门排序', | ||||
|     `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用,2:禁用)', | ||||
|     `is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据', | ||||
|     `create_user` bigint(20) UNSIGNED NOT NULL COMMENT '创建人', | ||||
|     `create_time` datetime NOT NULL COMMENT '创建时间', | ||||
|     `update_user` bigint(20) UNSIGNED DEFAULT NULL COMMENT '修改人', | ||||
| @@ -51,11 +51,11 @@ CREATE TABLE IF NOT EXISTS `sys_role` ( | ||||
|     `id` bigint(20) UNSIGNED AUTO_INCREMENT COMMENT 'ID', | ||||
|     `name` varchar(50) NOT NULL COMMENT '角色名称', | ||||
|     `code` varchar(50) NOT NULL COMMENT '角色编码', | ||||
|     `data_scope` tinyint(1) DEFAULT 4 COMMENT '数据权限(1:全部数据权限,2:本部门及以下数据权限,3:本部门数据权限,4:仅本人数据权限,5:自定义数据权限)', | ||||
|     `data_scope` tinyint(1) NOT NULL DEFAULT 4 COMMENT '数据权限(1:全部数据权限,2:本部门及以下数据权限,3:本部门数据权限,4:仅本人数据权限,5:自定义数据权限)', | ||||
|     `description` varchar(512) DEFAULT NULL COMMENT '描述', | ||||
|     `sort` int(11) UNSIGNED DEFAULT 999 COMMENT '角色排序', | ||||
|     `status` tinyint(1) UNSIGNED DEFAULT 1 COMMENT '状态(1:启用,2:禁用)', | ||||
|     `type` tinyint(1) UNSIGNED DEFAULT 2 COMMENT '类型(1:系统内置,2:自定义)', | ||||
|     `sort` int UNSIGNED NOT NULL DEFAULT 999 COMMENT '角色排序', | ||||
|     `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用,2:禁用)', | ||||
|     `is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据', | ||||
|     `create_user` bigint(20) UNSIGNED NOT NULL COMMENT '创建人', | ||||
|     `create_time` datetime NOT NULL COMMENT '创建时间', | ||||
|     `update_user` bigint(20) UNSIGNED DEFAULT NULL COMMENT '修改人', | ||||
| @@ -84,13 +84,13 @@ CREATE TABLE IF NOT EXISTS `sys_user` ( | ||||
|     `username` varchar(50) NOT NULL COMMENT '用户名', | ||||
|     `nickname` varchar(50) DEFAULT NULL COMMENT '昵称', | ||||
|     `password` varchar(255) DEFAULT NULL COMMENT '密码', | ||||
|     `gender` tinyint(1) UNSIGNED DEFAULT 0 COMMENT '性别(0:未知,1:男,2:女)', | ||||
|     `gender` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '性别(0:未知,1:男,2:女)', | ||||
|     `email` varchar(100) DEFAULT NULL COMMENT '邮箱', | ||||
|     `phone` varchar(50) DEFAULT NULL COMMENT '手机号码', | ||||
|     `avatar` varchar(255) DEFAULT NULL COMMENT '头像地址', | ||||
|     `description` varchar(512) DEFAULT NULL COMMENT '描述', | ||||
|     `status` tinyint(1) UNSIGNED DEFAULT 1 COMMENT '状态(1:启用,2:禁用)', | ||||
|     `type` tinyint(1) UNSIGNED DEFAULT 2 COMMENT '类型(1:系统内置,2:自定义)', | ||||
|     `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用,2:禁用)', | ||||
|     `is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据', | ||||
|     `pwd_reset_time` datetime DEFAULT NULL COMMENT '最后一次修改密码时间', | ||||
|     `dept_id` bigint(20) UNSIGNED NOT NULL COMMENT '部门ID', | ||||
|     `create_user` bigint(20) UNSIGNED NOT NULL COMMENT '创建人', | ||||
| @@ -120,11 +120,11 @@ CREATE TABLE IF NOT EXISTS `sys_log` ( | ||||
|     `request_method` varchar(10) NOT NULL COMMENT '请求方式', | ||||
|     `request_headers` text DEFAULT NULL COMMENT '请求头', | ||||
|     `request_body` text DEFAULT NULL COMMENT '请求体', | ||||
|     `status_code` int(11) UNSIGNED NOT NULL COMMENT '状态码', | ||||
|     `status_code` int UNSIGNED NOT NULL COMMENT '状态码', | ||||
|     `response_headers` text DEFAULT NULL COMMENT '响应头', | ||||
|     `response_body` mediumtext DEFAULT NULL COMMENT '响应体', | ||||
|     `elapsed_time` bigint(20) UNSIGNED NOT NULL COMMENT '请求耗时(ms)', | ||||
|     `status` tinyint(1) UNSIGNED DEFAULT 1 COMMENT '操作状态(1:成功,2:失败)', | ||||
|     `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '操作状态(1:成功,2:失败)', | ||||
|     `client_ip` varchar(100) DEFAULT NULL COMMENT '客户端IP', | ||||
|     `location` varchar(255) DEFAULT NULL COMMENT 'IP归属地', | ||||
|     `browser` varchar(100) DEFAULT NULL COMMENT '浏览器', | ||||
|   | ||||
| @@ -9,7 +9,7 @@ CREATE TABLE IF NOT EXISTS `gen_config` ( | ||||
|     `business_name` varchar(50) NOT NULL COMMENT '业务名称', | ||||
|     `author` varchar(100) NOT NULL COMMENT '作者', | ||||
|     `table_prefix` varchar(20) DEFAULT NULL COMMENT '表前缀', | ||||
|     `is_override` bit(1) DEFAULT b'0' COMMENT '是否覆盖', | ||||
|     `is_override` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否覆盖', | ||||
|     `create_time` datetime NOT NULL COMMENT '创建时间', | ||||
|     `update_time` datetime DEFAULT NULL COMMENT '修改时间', | ||||
|     PRIMARY KEY (`table_name`) USING BTREE | ||||
| @@ -22,10 +22,10 @@ CREATE TABLE IF NOT EXISTS `gen_field_config` ( | ||||
|     `field_name` varchar(64) NOT NULL COMMENT '字段名称', | ||||
|     `field_type` varchar(25) NOT NULL COMMENT '字段类型', | ||||
|     `comment` varchar(512) DEFAULT NULL COMMENT '注释', | ||||
|     `is_required` bit(1) DEFAULT b'1' COMMENT '是否必填', | ||||
|     `show_in_list` bit(1) DEFAULT b'1' COMMENT '是否在列表中显示', | ||||
|     `show_in_form` bit(1) DEFAULT b'1' COMMENT '是否在表单中显示', | ||||
|     `show_in_query` bit(1) DEFAULT b'1' COMMENT '是否在查询中显示', | ||||
|     `is_required` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否必填', | ||||
|     `show_in_list` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否在列表中显示', | ||||
|     `show_in_form` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否在表单中显示', | ||||
|     `show_in_query` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否在查询中显示', | ||||
|     `form_type` tinyint(1) UNSIGNED DEFAULT NULL COMMENT '表单类型', | ||||
|     `query_type` tinyint(1) UNSIGNED DEFAULT NULL COMMENT '查询方式', | ||||
|     `create_time` datetime NOT NULL COMMENT '创建时间', | ||||
| @@ -39,7 +39,7 @@ CREATE TABLE IF NOT EXISTS `sys_announcement` ( | ||||
|     `type` varchar(30) NOT NULL COMMENT '类型', | ||||
|     `effective_time` datetime DEFAULT NULL COMMENT '生效时间', | ||||
|     `terminate_time` datetime DEFAULT NULL COMMENT '终止时间', | ||||
|     `sort` int(11) UNSIGNED DEFAULT 999 COMMENT '排序', | ||||
|     `sort` int UNSIGNED NOT NULL DEFAULT 999 COMMENT '排序', | ||||
|     `create_user` bigint(20) UNSIGNED NOT NULL COMMENT '创建人', | ||||
|     `create_time` datetime NOT NULL COMMENT '创建时间', | ||||
|     `update_user` bigint(20) UNSIGNED DEFAULT NULL COMMENT '修改人', | ||||
|   | ||||
| @@ -13,9 +13,9 @@ VALUES | ||||
|  | ||||
| -- 初始化默认字典 | ||||
| INSERT IGNORE INTO `sys_dict` | ||||
| (`id`, `name`, `code`, `description`, `create_user`, `create_time`, `update_user`, `update_time`) | ||||
| (`id`, `name`, `code`, `description`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`) | ||||
| VALUES | ||||
| (1, '公告类型', 'announcement_type', NULL, 1, NOW(), NULL, NULL); | ||||
| (1, '公告类型', 'announcement_type', NULL, b'1', 1, NOW(), NULL, NULL); | ||||
|  | ||||
| -- 初始化默认字典项 | ||||
| INSERT IGNORE INTO `sys_dict_item` | ||||
|   | ||||
| @@ -6,6 +6,7 @@ CREATE TABLE IF NOT EXISTS `sys_dict` ( | ||||
|     `name` varchar(50) NOT NULL COMMENT '字典名称', | ||||
|     `code` varchar(30) NOT NULL COMMENT '字典编码', | ||||
|     `description` varchar(512) DEFAULT NULL COMMENT '描述', | ||||
|     `is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据', | ||||
|     `create_user` bigint(20) UNSIGNED NOT NULL COMMENT '创建人', | ||||
|     `create_time` datetime NOT NULL COMMENT '创建时间', | ||||
|     `update_user` bigint(20) UNSIGNED DEFAULT NULL COMMENT '修改人', | ||||
| @@ -20,7 +21,7 @@ CREATE TABLE IF NOT EXISTS `sys_dict_item` ( | ||||
|     `label` varchar(50) NOT NULL COMMENT '字典标签', | ||||
|     `value` varchar(30) NOT NULL COMMENT '字典值', | ||||
|     `color` varchar(30) DEFAULT NULL COMMENT '背景颜色', | ||||
|     `sort` int(11) UNSIGNED DEFAULT 999 COMMENT '字典项排序', | ||||
|     `sort` int UNSIGNED NOT NULL DEFAULT 999 COMMENT '字典项排序', | ||||
|     `description` varchar(512) DEFAULT NULL COMMENT '描述', | ||||
|     `dict_id` bigint(20) UNSIGNED NOT NULL COMMENT '字典ID', | ||||
|     `create_user` bigint(20) UNSIGNED NOT NULL COMMENT '创建人', | ||||
|   | ||||
		Reference in New Issue
	
	Block a user