kindergarten_java/reading-platform-java/init-users.sql

135 lines
5.4 KiB
MySQL
Raw Normal View History

-- 初始化用户数据 - 解决登录问题
-- 执行方式: mysql -h 8.148.151.56 -u root -preading_platform_pwd reading_platform < init-users.sql
USE reading_platform;
-- ============================================
-- 1. 检查并创建必要的表
-- ============================================
-- 创建 admin_users 表(如果不存在)
CREATE TABLE IF NOT EXISTS admin_users (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
name VARCHAR(50) NOT NULL,
email VARCHAR(100),
phone VARCHAR(20),
avatar_url VARCHAR(500),
status VARCHAR(20) DEFAULT 'active',
last_login_at DATETIME,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted TINYINT DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 创建 teachers 表(如果不存在)
CREATE TABLE IF NOT EXISTS teachers (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
tenant_id BIGINT NOT NULL,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL,
name VARCHAR(50) NOT NULL,
phone VARCHAR(20),
email VARCHAR(100),
avatar_url VARCHAR(500),
gender VARCHAR(10),
bio TEXT,
status VARCHAR(20) DEFAULT 'active',
last_login_at DATETIME,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted TINYINT DEFAULT 0,
UNIQUE KEY uk_username (username)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 创建 parents 表(如果不存在)
CREATE TABLE IF NOT EXISTS parents (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
tenant_id BIGINT NOT NULL,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL,
name VARCHAR(50) NOT NULL,
phone VARCHAR(20),
email VARCHAR(100),
avatar_url VARCHAR(500),
gender VARCHAR(10),
status VARCHAR(20) DEFAULT 'active',
last_login_at DATETIME,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted TINYINT DEFAULT 0,
UNIQUE KEY uk_username (username)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 创建 tenants 表(如果不存在)
CREATE TABLE IF NOT EXISTS tenants (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
code VARCHAR(50) NOT NULL UNIQUE,
username VARCHAR(50) UNIQUE,
password VARCHAR(255),
contact_name VARCHAR(50),
contact_phone VARCHAR(20),
contact_email VARCHAR(100),
address VARCHAR(255),
logo_url VARCHAR(500),
status VARCHAR(20) DEFAULT 'active',
expire_at DATETIME,
max_students INT DEFAULT 0,
max_teachers INT DEFAULT 0,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted TINYINT DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 添加 username/password 字段到 tenants 表(如果不存在)
ALTER TABLE tenants ADD COLUMN IF NOT EXISTS username VARCHAR(50) UNIQUE AFTER code;
ALTER TABLE tenants ADD COLUMN IF NOT EXISTS password VARCHAR(255) AFTER username;
-- ============================================
-- 2. 插入测试数据
-- 密码都是 123456
-- BCrypt hash: $2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iKTVKIUi
-- ============================================
-- 清理旧数据
DELETE FROM admin_users WHERE username IN ('admin');
DELETE FROM teachers WHERE username IN ('teacher1', 'teacher2');
DELETE FROM parents WHERE username IN ('parent1', 'parent2');
DELETE FROM tenants WHERE id IN (1);
-- 插入超管用户
INSERT INTO admin_users (id, username, password, name, email, phone, status) VALUES
(1, 'admin', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iKTVKIUi', '平台管理员', 'admin@example.com', '13800138000', 'active');
-- 插入租户(学校)
INSERT INTO tenants (id, name, code, username, password, contact_name, contact_phone, status) VALUES
(1, '测试幼儿园', 'SCHOOL001', 'school1', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iKTVKIUi', '张校长', '13800138001', 'active');
-- 插入教师用户
INSERT INTO teachers (id, tenant_id, username, password, name, phone, email, status) VALUES
(1, 1, 'teacher1', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iKTVKIUi', '测试教师1', '13800138002', 'teacher1@example.com', 'active'),
(2, 1, 'teacher2', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iKTVKIUi', '测试教师2', '13800138003', 'teacher2@example.com', 'active');
-- 插入家长用户
INSERT INTO parents (id, tenant_id, username, password, name, phone, email, status) VALUES
(1, 1, 'parent1', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iKTVKIUi', '测试家长1', '13800138004', 'parent1@example.com', 'active'),
(2, 1, 'parent2', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iKTVKIUi', '测试家长2', '13800138005', 'parent2@example.com', 'active');
-- ============================================
-- 3. 验证数据
-- ============================================
SELECT '=== Admin Users ===' AS '';
SELECT id, username, name, status FROM admin_users;
SELECT '=== Tenants ===' AS '';
SELECT id, username, name, code, status FROM tenants;
SELECT '=== Teachers ===' AS '';
SELECT id, username, name, tenant_id, status FROM teachers;
SELECT '=== Parents ===' AS '';
SELECT id, username, name, tenant_id, status FROM parents;