初始化

This commit is contained in:
zg
2026-07-15 16:13:27 +08:00
parent 6d6f559793
commit c4023c1623
276 changed files with 42622 additions and 0 deletions

226
sql/qa_ddl.sql Normal file
View File

@@ -0,0 +1,226 @@
-- ============================================
-- QA 数据库 DDL (UUID 版本, 12张表)
-- 所有主键和外键均为 VARCHAR(64)
-- ============================================
USE mokeegatewayqa;
CREATE TABLE IF NOT EXISTS sys_system (
id VARCHAR(64) NOT NULL COMMENT 'UUID主键',
system_code VARCHAR(64) NOT NULL,
system_name VARCHAR(128) NOT NULL,
front_url VARCHAR(256) NOT NULL,
backend_url VARCHAR(256) NOT NULL,
gateway_url VARCHAR(256) NOT NULL,
icon VARCHAR(512) DEFAULT NULL,
sort_order INT DEFAULT 0,
status TINYINT NOT NULL DEFAULT 1,
description VARCHAR(512) DEFAULT NULL,
doc_token VARCHAR(128) DEFAULT NULL,
created_by VARCHAR(64) DEFAULT NULL,
updated_by VARCHAR(64) DEFAULT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
is_deleted TINYINT NOT NULL DEFAULT 0,
PRIMARY KEY (id),
-- uk_system_code/uk_gateway_url 唯一性由应用层代码校验
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='业务系统表';
CREATE TABLE IF NOT EXISTS sys_api (
id VARCHAR(64) NOT NULL COMMENT 'UUID主键',
system_id VARCHAR(64) NOT NULL,
api_path VARCHAR(256) NOT NULL,
api_method VARCHAR(10) NOT NULL,
api_name VARCHAR(128) DEFAULT NULL,
api_desc VARCHAR(512) DEFAULT NULL,
status TINYINT NOT NULL DEFAULT 1,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
KEY idx_system_id (system_id),
UNIQUE KEY uk_system_path_method (system_id, api_path, api_method)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统放行接口表';
CREATE TABLE IF NOT EXISTS sys_user (
id VARCHAR(64) NOT NULL COMMENT 'UUID主键',
username VARCHAR(64) NOT NULL,
password VARCHAR(256) NOT NULL,
real_name VARCHAR(64) DEFAULT NULL,
email VARCHAR(128) DEFAULT NULL,
phone VARCHAR(32) DEFAULT NULL,
avatar VARCHAR(512) DEFAULT NULL,
post VARCHAR(64) DEFAULT NULL,
status TINYINT NOT NULL DEFAULT 1 COMMENT '0-禁用 1-正常 2-锁定',
lock_until DATETIME DEFAULT NULL,
login_fail_count INT NOT NULL DEFAULT 0,
last_login_ip VARCHAR(64) DEFAULT NULL,
last_login_time DATETIME DEFAULT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
is_deleted TINYINT NOT NULL DEFAULT 0,
PRIMARY KEY (id),
-- 用户名/邮箱唯一性由应用层代码校验MyBatis-Plus @TableLogic 自动过滤已删除记录)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
CREATE TABLE IF NOT EXISTS sys_user_system (
id VARCHAR(64) NOT NULL COMMENT 'UUID主键',
user_id VARCHAR(64) NOT NULL,
system_id VARCHAR(64) NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY uk_user_system (user_id, system_id),
KEY idx_system_id (system_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户系统绑定表';
CREATE TABLE IF NOT EXISTS sys_role (
id VARCHAR(64) NOT NULL COMMENT 'UUID主键',
system_id VARCHAR(64) NOT NULL,
role_name VARCHAR(64) NOT NULL,
role_code VARCHAR(64) NOT NULL,
description VARCHAR(256) DEFAULT NULL,
status TINYINT NOT NULL DEFAULT 1,
created_by VARCHAR(64) DEFAULT NULL,
updated_by VARCHAR(64) DEFAULT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
is_deleted TINYINT NOT NULL DEFAULT 0,
PRIMARY KEY (id),
-- uk_system_role_code 唯一性由应用层代码校验
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色表';
CREATE TABLE IF NOT EXISTS sys_user_role (
id VARCHAR(64) NOT NULL COMMENT 'UUID主键',
user_id VARCHAR(64) NOT NULL,
role_id VARCHAR(64) NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY uk_user_role (user_id, role_id),
KEY idx_role_id (role_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户角色表';
CREATE TABLE IF NOT EXISTS sys_menu (
id VARCHAR(64) NOT NULL COMMENT 'UUID主键',
system_id VARCHAR(64) NOT NULL,
parent_id VARCHAR(64) NOT NULL DEFAULT '0',
menu_name VARCHAR(64) NOT NULL,
menu_path VARCHAR(256) DEFAULT NULL,
component VARCHAR(256) DEFAULT NULL,
icon VARCHAR(128) DEFAULT NULL,
menu_type TINYINT NOT NULL COMMENT '1-目录 2-菜单 3-按钮',
permission VARCHAR(128) DEFAULT NULL COMMENT '权限标识',
sort_order INT NOT NULL DEFAULT 0,
status TINYINT NOT NULL DEFAULT 1,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
KEY idx_system_id (system_id),
KEY idx_parent_id (parent_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='菜单表';
CREATE TABLE IF NOT EXISTS sys_role_menu (
id VARCHAR(64) NOT NULL COMMENT 'UUID主键',
role_id VARCHAR(64) NOT NULL,
menu_id VARCHAR(64) NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY uk_role_menu (role_id, menu_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色菜单表';
CREATE TABLE IF NOT EXISTS sys_login_log (
id VARCHAR(64) NOT NULL COMMENT 'UUID主键',
user_id VARCHAR(64) DEFAULT NULL,
username VARCHAR(64) NOT NULL,
real_name VARCHAR(64) DEFAULT NULL COMMENT '用户真实姓名',
system_id VARCHAR(64) DEFAULT NULL,
login_ip VARCHAR(64) DEFAULT NULL,
user_agent VARCHAR(512) DEFAULT NULL,
browser VARCHAR(64) DEFAULT NULL,
os VARCHAR(64) DEFAULT NULL,
status TINYINT NOT NULL COMMENT '0-失败 1-成功',
fail_reason VARCHAR(256) DEFAULT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
KEY idx_user_id (user_id),
KEY idx_created_at (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='登录日志表';
CREATE TABLE IF NOT EXISTS sys_operation_log (
id VARCHAR(64) NOT NULL COMMENT 'UUID主键',
user_id VARCHAR(64) DEFAULT NULL,
username VARCHAR(64) DEFAULT NULL,
system_id VARCHAR(64) DEFAULT NULL,
module VARCHAR(64) DEFAULT NULL,
action VARCHAR(32) DEFAULT NULL,
request_url VARCHAR(256) DEFAULT NULL,
request_method VARCHAR(10) DEFAULT NULL,
request_body TEXT DEFAULT NULL,
response_status INT DEFAULT NULL,
response_body TEXT DEFAULT NULL COMMENT '接口返回报文截断至2000字符',
error_msg TEXT DEFAULT NULL,
cost_time INT DEFAULT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
KEY idx_user_id (user_id),
KEY idx_created_at (created_at),
KEY idx_system_id (system_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='操作日志表';
CREATE TABLE IF NOT EXISTS sys_dict (
id VARCHAR(64) NOT NULL COMMENT 'UUID主键',
dict_type VARCHAR(64) NOT NULL,
dict_label VARCHAR(128) NOT NULL,
dict_value VARCHAR(128) NOT NULL,
sort_order INT DEFAULT 0,
status TINYINT NOT NULL DEFAULT 1,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY uk_type_value (dict_type, dict_value)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='数据字典表';
CREATE TABLE IF NOT EXISTS sys_file (
id VARCHAR(64) NOT NULL COMMENT 'UUID主键',
system_id VARCHAR(64) DEFAULT NULL COMMENT '所属系统ID',
file_name VARCHAR(256) NOT NULL COMMENT '原始文件名',
file_type VARCHAR(64) DEFAULT 'other' COMMENT '文件类型(icon/avatar/doc/other)',
file_size BIGINT DEFAULT 0 COMMENT '文件大小(字节)',
mime_type VARCHAR(128) DEFAULT NULL COMMENT 'MIME类型',
md5 VARCHAR(64) DEFAULT NULL COMMENT '文件MD5摘要',
upload_user_id VARCHAR(64) DEFAULT NULL COMMENT '上传用户ID',
file_data LONGBLOB COMMENT '文件二进制数据',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间',
PRIMARY KEY (id),
INDEX idx_system_id (system_id),
INDEX idx_file_type (file_type),
INDEX idx_upload_user_id (upload_user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文件表';
CREATE TABLE IF NOT EXISTS sys_email_log (
id VARCHAR(64) NOT NULL COMMENT 'UUID主键',
to_address VARCHAR(256) NOT NULL COMMENT '收件人',
subject VARCHAR(512) NOT NULL COMMENT '主题',
content TEXT COMMENT '邮件内容',
content_type VARCHAR(16) NOT NULL DEFAULT 'html' COMMENT '格式 html/text',
status TINYINT NOT NULL DEFAULT 0 COMMENT '0-失败 1-成功',
error_msg VARCHAR(1024) DEFAULT NULL COMMENT '错误信息',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '发送时间',
PRIMARY KEY (id),
KEY idx_created_at (created_at),
KEY idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='邮件发送记录表';
CREATE TABLE IF NOT EXISTS sys_open_token_log (
id VARCHAR(64) NOT NULL COMMENT 'UUID主键',
system_id VARCHAR(64) DEFAULT NULL COMMENT '系统ID',
system_code VARCHAR(64) NOT NULL COMMENT '系统编码',
token_id VARCHAR(64) NOT NULL COMMENT 'Token唯一ID',
token_preview VARCHAR(64) DEFAULT NULL COMMENT 'Token预览',
acquired_at DATETIME DEFAULT NULL COMMENT '获取时间',
consumed TINYINT NOT NULL DEFAULT 0 COMMENT '0-未消费 1-已消费',
consumed_at DATETIME DEFAULT NULL COMMENT '消费时间',
consume_api VARCHAR(256) DEFAULT NULL COMMENT '消费接口',
consume_ip VARCHAR(64) DEFAULT NULL COMMENT '消费IP',
PRIMARY KEY (id),
KEY idx_token_id (token_id),
KEY idx_system_code (system_code),
KEY idx_acquired_at (acquired_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='开放API Token日志表';