提交 8a02401a 编写于 作者: 查尔斯-BUG万象集's avatar 查尔斯-BUG万象集

refactor: 💥 优化系统内置类型数据标识

1.系统内置类型数据标识由 type 调整为 is_system
2.优化部分表的非空字段
上级 2755bc84
/*
* 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;
}
\ No newline at end of file
......@@ -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;
}
\ No newline at end of file
......@@ -51,4 +51,10 @@ public class DictVO extends BaseVO {
*/
@Schema(description = "描述", example = "公告类型描述信息")
private String description;
/**
* 是否为系统内置数据
*/
@Schema(description = "是否为系统内置数据", example = "true")
private Boolean isSystem;
}
\ No newline at end of file
......@@ -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 '创建人',
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册