feat: backend core - auth, user, role, permission, device, webhook, monitoring, cache, repository, service, middleware, API handlers
This commit is contained in:
19
migrations/003_add_social_accounts.sql
Normal file
19
migrations/003_add_social_accounts.sql
Normal file
@@ -0,0 +1,19 @@
|
||||
CREATE TABLE IF NOT EXISTS user_social_accounts (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
user_id BIGINT NOT NULL,
|
||||
provider VARCHAR(50) NOT NULL,
|
||||
open_id VARCHAR(100) NOT NULL,
|
||||
union_id VARCHAR(100) NULL,
|
||||
nickname VARCHAR(100) NULL,
|
||||
avatar VARCHAR(500) NULL,
|
||||
gender VARCHAR(10) NULL,
|
||||
email VARCHAR(100) NULL,
|
||||
phone VARCHAR(20) NULL,
|
||||
extra JSON NULL,
|
||||
status INT NOT NULL DEFAULT 1,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY uk_provider_open_id (provider, open_id),
|
||||
KEY idx_social_accounts_user_id (user_id),
|
||||
CONSTRAINT fk_social_accounts_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
||||
);
|
||||
153
migrations/sqlite/V1__init.sql
Normal file
153
migrations/sqlite/V1__init.sql
Normal file
@@ -0,0 +1,153 @@
|
||||
-- 创建用户表
|
||||
CREATE TABLE users (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
username VARCHAR(50) UNIQUE NOT NULL,
|
||||
email VARCHAR(100) UNIQUE,
|
||||
phone VARCHAR(20) UNIQUE,
|
||||
nickname VARCHAR(50),
|
||||
avatar VARCHAR(255),
|
||||
password VARCHAR(255),
|
||||
gender INTEGER DEFAULT 0,
|
||||
birthday DATE,
|
||||
region VARCHAR(50),
|
||||
bio VARCHAR(500),
|
||||
status INTEGER DEFAULT 0,
|
||||
last_login_time DATETIME,
|
||||
last_login_ip VARCHAR(50),
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted_at DATETIME
|
||||
);
|
||||
|
||||
-- 创建角色表
|
||||
CREATE TABLE roles (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name VARCHAR(50) UNIQUE NOT NULL,
|
||||
code VARCHAR(50) UNIQUE NOT NULL,
|
||||
description VARCHAR(200),
|
||||
parent_id INTEGER,
|
||||
level INTEGER DEFAULT 1,
|
||||
is_system INTEGER DEFAULT 0,
|
||||
is_default INTEGER DEFAULT 0,
|
||||
status INTEGER DEFAULT 1,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (parent_id) REFERENCES roles(id)
|
||||
);
|
||||
|
||||
-- 创建权限表
|
||||
CREATE TABLE permissions (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name VARCHAR(50) NOT NULL,
|
||||
code VARCHAR(100) UNIQUE NOT NULL,
|
||||
type INTEGER NOT NULL,
|
||||
description VARCHAR(200),
|
||||
parent_id INTEGER,
|
||||
level INTEGER DEFAULT 1,
|
||||
path VARCHAR(200),
|
||||
method VARCHAR(10),
|
||||
sort INTEGER DEFAULT 0,
|
||||
icon VARCHAR(50),
|
||||
status INTEGER DEFAULT 1,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (parent_id) REFERENCES permissions(id)
|
||||
);
|
||||
|
||||
-- 创建用户-角色关联表
|
||||
CREATE TABLE user_roles (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id INTEGER NOT NULL,
|
||||
role_id INTEGER NOT NULL,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id),
|
||||
FOREIGN KEY (role_id) REFERENCES roles(id),
|
||||
UNIQUE(user_id, role_id)
|
||||
);
|
||||
|
||||
-- 创建角色-权限关联表
|
||||
CREATE TABLE role_permissions (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
role_id INTEGER NOT NULL,
|
||||
permission_id INTEGER NOT NULL,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (role_id) REFERENCES roles(id),
|
||||
FOREIGN KEY (permission_id) REFERENCES permissions(id),
|
||||
UNIQUE(role_id, permission_id)
|
||||
);
|
||||
|
||||
-- 创建设备表
|
||||
CREATE TABLE devices (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id INTEGER NOT NULL,
|
||||
device_id VARCHAR(100) UNIQUE NOT NULL,
|
||||
device_name VARCHAR(100),
|
||||
device_type INTEGER DEFAULT 0,
|
||||
device_os VARCHAR(50),
|
||||
device_browser VARCHAR(50),
|
||||
ip VARCHAR(50),
|
||||
location VARCHAR(100),
|
||||
status INTEGER DEFAULT 1,
|
||||
last_active_time DATETIME,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id)
|
||||
);
|
||||
|
||||
-- 创建登录日志表
|
||||
CREATE TABLE login_logs (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id INTEGER,
|
||||
login_type INTEGER NOT NULL,
|
||||
device_id VARCHAR(100),
|
||||
ip VARCHAR(50),
|
||||
location VARCHAR(100),
|
||||
status INTEGER NOT NULL,
|
||||
fail_reason VARCHAR(255),
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id)
|
||||
);
|
||||
|
||||
-- 创建操作日志表
|
||||
CREATE TABLE operation_logs (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id INTEGER,
|
||||
operation_type VARCHAR(50),
|
||||
operation_name VARCHAR(100),
|
||||
request_method VARCHAR(10),
|
||||
request_path VARCHAR(200),
|
||||
request_params TEXT,
|
||||
response_status INTEGER,
|
||||
ip VARCHAR(50),
|
||||
user_agent VARCHAR(500),
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id)
|
||||
);
|
||||
|
||||
-- 创建索引
|
||||
CREATE INDEX idx_users_status ON users(status);
|
||||
CREATE INDEX idx_users_created_at ON users(created_at);
|
||||
CREATE INDEX idx_roles_parent_id ON roles(parent_id);
|
||||
CREATE INDEX idx_roles_is_default ON roles(is_default);
|
||||
CREATE INDEX idx_permissions_parent_id ON permissions(parent_id);
|
||||
CREATE INDEX idx_user_roles_user_id ON user_roles(user_id);
|
||||
CREATE INDEX idx_user_roles_role_id ON user_roles(role_id);
|
||||
CREATE INDEX idx_role_permissions_role_id ON role_permissions(role_id);
|
||||
CREATE INDEX idx_role_permissions_permission_id ON role_permissions(permission_id);
|
||||
CREATE INDEX idx_devices_user_id ON devices(user_id);
|
||||
CREATE INDEX idx_devices_device_id ON devices(device_id);
|
||||
CREATE INDEX idx_login_logs_user_id ON login_logs(user_id);
|
||||
CREATE INDEX idx_login_logs_created_at ON login_logs(created_at);
|
||||
CREATE INDEX idx_operation_logs_user_id ON operation_logs(user_id);
|
||||
CREATE INDEX idx_operation_logs_created_at ON operation_logs(created_at);
|
||||
|
||||
-- 插入默认角色
|
||||
INSERT INTO roles (name, code, description, is_system, is_default) VALUES
|
||||
('管理员', 'admin', '系统管理员角色,拥有所有权限', 1, 0),
|
||||
('普通用户', 'user', '普通用户角色,基本权限', 1, 1);
|
||||
|
||||
-- 默认管理员账号不再通过迁移脚本写入
|
||||
|
||||
-- 分配管理员角色
|
||||
-- 默认管理员不再随迁移直接写入。
|
||||
-- 首次部署请使用显式初始化流程创建管理员账户。
|
||||
Reference in New Issue
Block a user