- 新增JWT认证插件,支持用户登录、刷新Token功能 - 添加系统模块管理功能,包括模块的创建、更新和查询 - 更新用户服务,支持用户注册、登录和Token刷新 - 修改数据库表结构,添加模块相关表和字段 - 更新文档,添加JWT认证和模块管理相关说明
228 lines
11 KiB
SQL
228 lines
11 KiB
SQL
CREATE TABLE `sys_dict` (
|
||
`id` BIGINT NOT NULL COMMENT 'ID',
|
||
`version` INT NOT NULL DEFAULT 0,
|
||
`pid` BIGINT NOT NULL COMMENT '上级ID',
|
||
`module` tinyint NULL COMMENT '模块',
|
||
`dict_key` varchar(255) NULL COMMENT '字典标识',
|
||
`value` varchar(255) NULL COMMENT '字典值',
|
||
`description` varchar(255) NULL COMMENT '描述',
|
||
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
|
||
`status` int NOT NULL COMMENT '状态 0启用 1禁用',
|
||
`created_by` bigint NOT NULL COMMENT '创建人',
|
||
`updated_by` bigint NULL COMMENT '更新人',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE `uniq_dict_key` (`dict_key`, `pid`)
|
||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '字典表';
|
||
|
||
CREATE TABLE `sys_organization` (
|
||
`org_id` BIGINT NOT NULL COMMENT '组织ID',
|
||
`pid` BIGINT DEFAULT 0 NOT NULL COMMENT '上级组织ID',
|
||
`org_name` varchar(255) NULL COMMENT '组织名称',
|
||
`org_code` varchar(128) NULL COMMENT '组织编码',
|
||
`org_type` int NOT NULL COMMENT '组织类型',
|
||
`description` varchar(255) NULL COMMENT '描述',
|
||
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
|
||
`status` int NOT NULL COMMENT '状态',
|
||
`created_by` bigint NOT NULL COMMENT '创建人',
|
||
`updated_by` bigint NULL COMMENT '更新人',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`org_id`),
|
||
UNIQUE `uniq_org_code` (`org_code`, `pid`),
|
||
UNIQUE `uniq_org_name` (`org_name`, `pid`)
|
||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '组织表';
|
||
|
||
CREATE TABLE `sys_organization_manager` (
|
||
`id` BIGINT NOT NULL COMMENT 'ID',
|
||
`version` INT NOT NULL DEFAULT 0,
|
||
`org_id` bigint NOT NULL COMMENT '组织ID',
|
||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||
`rank` int NOT NULL COMMENT '当前用户对组织管理的级别,1为最高级别',
|
||
`status` int NOT NULL COMMENT '状态',
|
||
`description` varchar(255) NULL,
|
||
`created_by` bigint NOT NULL COMMENT '创建人',
|
||
`updated_by` bigint NULL COMMENT '更新人',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE `uniq_org_user` (`org_id`, `user_id`)
|
||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '组织负责人表';
|
||
|
||
CREATE TABLE `sys_permission` (
|
||
`perm_id` BIGINT NOT NULL COMMENT '权限ID',
|
||
`pid` BIGINT NOT NULL DEFAULT 0 COMMENT '上级权限ID',
|
||
`perm_name` varchar(255) NOT NULL COMMENT '权限名称',
|
||
`perm_key` varchar(255) NOT NULL COMMENT '权限标识',
|
||
`url` varchar(255) NULL COMMENT '权限路径',
|
||
`avatar_url` varchar(255) NULL COMMENT '权限图标',
|
||
`description` varchar(255) NULL COMMENT '描述',
|
||
`perm_type` int NOT NULL COMMENT '权限类型',
|
||
`is_visible` int NOT NULL DEFAULT 0 COMMENT '是否可见',
|
||
`version` INT NOT NULL DEFAULT 0,
|
||
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
|
||
`status` int NOT NULL COMMENT '状态',
|
||
`created_by` bigint NOT NULL COMMENT '创建人',
|
||
`updated_by` bigint NULL COMMENT '更新人',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`perm_id`),
|
||
UNIQUE `uniq_pid_name` (`perm_name`, `pid`),
|
||
UNIQUE `uniq_perm_key` (`perm_key`)
|
||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '权限表';
|
||
|
||
CREATE TABLE `sys_re_role_permission` (
|
||
`id` BIGINT NOT NULL COMMENT '关系ID',
|
||
`role_id` BIGINT NOT NULL COMMENT '角色ID',
|
||
`perm_id` BIGINT NOT NULL COMMENT '权限ID',
|
||
`created_by` bigint NOT NULL COMMENT '创建人',
|
||
`updated_by` bigint NULL COMMENT '更新人',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE `uniq_perm_role` (`role_id`, `perm_id`)
|
||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '用户组织关系表';
|
||
|
||
CREATE TABLE `sys_re_user_organization` (
|
||
`id` BIGINT NOT NULL COMMENT '关系ID',
|
||
`user_id` BIGINT NOT NULL COMMENT '用户ID',
|
||
`org_id` BIGINT NOT NULL COMMENT '组织ID',
|
||
`version` INT NOT NULL DEFAULT 0,
|
||
`created_by` bigint NOT NULL COMMENT '创建人',
|
||
`updated_by` bigint NULL COMMENT '更新人',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE `uniq_user_org` (`user_id`, `org_id`)
|
||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '用户组织关系表';
|
||
|
||
CREATE TABLE `sys_re_user_role` (
|
||
`id` BIGINT NOT NULL COMMENT '关系ID',
|
||
`user_id` BIGINT NOT NULL COMMENT '用户ID',
|
||
`role_id` BIGINT NOT NULL COMMENT '角色ID',
|
||
`version` INT NOT NULL DEFAULT 0,
|
||
`created_by` bigint NOT NULL COMMENT '创建人',
|
||
`updated_by` bigint NULL COMMENT '更新人',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE `uniq_user_role` (`user_id`, `role_id`)
|
||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '用户角色关联表';;
|
||
|
||
CREATE TABLE `sys_role` (
|
||
`role_id` BIGINT NOT NULL COMMENT '角色ID',
|
||
`pid` BIGINT NOT NULL COMMENT '上级角色ID',
|
||
`role_name` varchar(255) NOT NULL COMMENT '角色名称',
|
||
`role_key` varchar(255) NOT NULL COMMENT '角色表示',
|
||
`description` varchar(255) NULL COMMENT '角色描述',
|
||
`status` int NOT NULL COMMENT '状态',
|
||
`created_by` bigint NOT NULL COMMENT '创建人',
|
||
`updated_by` bigint NULL COMMENT '更新人',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`role_id`),
|
||
UNIQUE `uniq_role_pid` (`role_name`, `pid`)
|
||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '用户角色表';
|
||
|
||
CREATE TABLE `sys_user` (
|
||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||
`pid` bigint NOT NULL COMMENT '上级ID',
|
||
`username` varchar(255) NOT NULL COMMENT '用户名,全小写',
|
||
`email` varchar(255) NOT NULL COMMENT '邮箱',
|
||
`phone` varchar(255) NULL COMMENT '手机号',
|
||
`avatar_url` varchar(255) NULL COMMENT '图标',
|
||
`user_type` tinyint NULL DEFAULT NULL COMMENT '用户类型从字典取',
|
||
`status` tinyint DEFAULT 0 NOT NULL COMMENT '状态',
|
||
`created_by` bigint NOT NULL COMMENT '创建人',
|
||
`updated_by` bigint NULL COMMENT '更新人',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`user_id`),
|
||
UNIQUE `uniq_username` (`username`),
|
||
UNIQUE `uniq_email` (`email`)
|
||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '用户基础信息表';
|
||
|
||
CREATE TABLE `sys_user_auth` (
|
||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||
`password_hash` varchar(255) NOT NULL COMMENT '用户密码',
|
||
`password_modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '上一次修改时间',
|
||
`password_expire` DATETIME NULL DEFAULT NULL COMMENT '过期时间',
|
||
PRIMARY KEY (`user_id`)
|
||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '用户密码表';
|
||
|
||
CREATE TABLE `sys_user_auth_history` (
|
||
`id` bigint NOT NULL COMMENT '历史记录自增主键',
|
||
`user_id` bigint NOT NULL COMMENT '用户id',
|
||
`password_hash` varchar(255) NOT NULL COMMENT '历史密码值,注意需要限制密码更改次数',
|
||
`modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '上次修改的时间',
|
||
PRIMARY KEY (`id`)
|
||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '历史密码表';
|
||
|
||
CREATE TABLE `sys_user_field_definition` (
|
||
`field_id` BIGINT NOT NULL COMMENT '用户拓展字段ID',
|
||
`version` INT NOT NULL DEFAULT 0,
|
||
`field_name` varchar(255) NOT NULL COMMENT '拓展字段名称',
|
||
`field_key` varchar(255) NOT NULL COMMENT '拓展字段标识',
|
||
`field_type` tinyint NOT NULL COMMENT '拓展字段类型0文字1数字2日期3单选4多选5附件6富文本',
|
||
`dict_module` int NULL COMMENT '字典集模块值',
|
||
`is_required` tinyint NOT NULL DEFAULT 0 COMMENT '是否必填0否1是',
|
||
`limit` int NULL COMMENT '值长度,最大2048',
|
||
`description` varchar(255) NULL COMMENT '描述',
|
||
`default_value` varchar(255) NULL COMMENT '默认值',
|
||
`default_options` varchar(255) NULL COMMENT '选项值',
|
||
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
|
||
`status` int NOT NULL COMMENT '状态',
|
||
`created_by` bigint NOT NULL COMMENT '创建人',
|
||
`updated_by` bigint NULL COMMENT '更新人',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`field_id`),
|
||
UNIQUE `uniq_field_name` (`field_name`),
|
||
UNIQUE `uniq_field_key` (`field_key`)
|
||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '用户拓展字段定义表';
|
||
|
||
CREATE TABLE `sys_user_field_value` (
|
||
`id` bigint NOT NULL COMMENT '用户拓展字段记录id',
|
||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||
`field_id` int NOT NULL COMMENT '字段ID',
|
||
`value` varchar(4096) NULL COMMENT '用户拓展字段值',
|
||
`created_by` bigint NOT NULL COMMENT '创建人',
|
||
`updated_by` bigint NULL COMMENT '更新人',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE `uniq_user_field` (`user_id`, `field_id`)
|
||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '用户拓展字段记录表';
|
||
|
||
CREATE TABLE `sys_profile` (
|
||
`id` BIGINT NOT NULL COMMENT '系统配置自增主键',
|
||
`version` INT NOT NULL DEFAULT 0,
|
||
`name` varchar(32) NOT NULL COMMENT '系统配置名称',
|
||
`profile_key` varchar(255) NOT NULL COMMENT '系统配置记录Key',
|
||
`description` varchar(255) NULL COMMENT '系统配置记录描述',
|
||
`content` varchar(255) NULL COMMENT '系统配置记录值',
|
||
`created_by` bigint NOT NULL COMMENT '创建人',
|
||
`updated_by` bigint NULL COMMENT '更新人',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE `uniq_name` (`name`),
|
||
UNIQUE `uniq_profile_key` (`profile_key`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '系统配置';
|
||
|
||
CREATE TABLE `sys_module` (
|
||
`id` INT NOT NULL AUTO_INCREMENT COMMENT '系统模块自增主键',
|
||
`version` INT NOT NULL DEFAULT 0,
|
||
`name` varchar(32) NOT NULL COMMENT '系统模块名称',
|
||
`module_key` varchar(255) NOT NULL COMMENT '系统模块记录Key',
|
||
`description` varchar(255) NULL COMMENT '系统模块记录描述',
|
||
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
|
||
`status` int NOT NULL COMMENT '状态',
|
||
`created_by` bigint NOT NULL COMMENT '创建人',
|
||
`updated_by` bigint NULL COMMENT '更新人',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE `uniq_module_key` (`module_key`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '系统模块'; |