kindergarten_java/reading-platform-java/init-data.sql
En e501e17403 feat: 完善学校统计报告、资源服务及实体类字段
主要变更:
1. 新增学校报告服务 (SchoolReportService)
   - 学校概览统计 (getOverviewStats)
   - 教师统计报表 (getTeacherStats)
   - 课程统计报表 (getCourseStats)
   - 学生统计报表 (getStudentStats)
   - 课时趋势分析 (getLessonTrend)

2. 新增学校端 Controller
   - SchoolReportController: 学校统计报告接口
   - SchoolResourceController: 学校资源管理接口
   - SchoolFeedbackController: 学校反馈管理接口

3. 完善实体类字段
   - CourseLesson: 添加 lessonOrder 字段
   - ResourceItem: 添加 tenantId、type 字段
   - Task: 添加 name 字段
   - LessonFeedback: 添加 courseId、tenantId、overallRating 字段

4. 完善服务层实现
   - ResourceServiceImpl: 实现资源库和资源项管理方法
   - SchoolReportServiceImpl: 实现学校统计报表逻辑
   - TeacherDashboardServiceImpl: 修复时间类型转换
   - AdminStatsServiceImpl: 完善统计逻辑

5. 新增 Flyway 迁移脚本 (V2)
   - 添加 ORM 实体类缺失字段的数据库迁移

6. 修复路由冲突
   - 移除 AdminCourseController 中重复的 getCourseLessons 方法

7. 添加测试工具类
   - CheckDatabase, CheckClazzTable: 数据库检查工具
   - InitDatabase, InitClasses: 数据初始化工具
   - GeneratePasswordHash: 密码哈希生成工具

8. 配置 Maven Wrapper
   - 添加 maven-wrapper.properties 和 mvnw.cmd
   - 确保使用 Java 17 编译
2026-03-11 16:21:22 +08:00

256 lines
5.9 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ============================================
-- 阅读平台初始化数据脚本
-- ============================================
-- 用于本地开发和测试
-- 执行方式mysql -h 8.148.151.56 -u root -p reading_platform < init-data.sql
-- ============================================
USE reading_platform;
-- ============================================
-- 1. 初始化 admin 用户
-- ============================================
-- 用户名admin
-- 密码admin123
-- BCrypt 哈希:$2a$10$DyHiv85Fy.yoslnuxVtw/OmsK5gqEAuy1801h6CqyyJnvrecd6VB2
DELETE FROM t_admin_user WHERE username = 'admin';
INSERT INTO t_admin_user (
id, username, password, name, email, phone, avatar_url, status,
created_at, updated_at, deleted
) VALUES (
'admin001',
'admin',
'$2a$10$DyHiv85Fy.yoslnuxVtw/OmsK5gqEAuy1801h6CqyyJnvrecd6VB2',
'系统管理员',
'admin@example.com',
'13800138000',
NULL,
'active',
NOW(),
NOW(),
0
);
-- ============================================
-- 2. 初始化租户(幼儿园)
-- ============================================
DELETE FROM t_tenant WHERE code = 'KINDERGARTEN01';
INSERT INTO t_tenant (
id, name, code, contact_name, contact_phone, contact_email,
address, status, max_students, max_teachers,
created_at, updated_at, deleted
) VALUES (
'tenant001',
'阳光幼儿园',
'KINDERGARTEN01',
'张三',
'13800138001',
'contact@yangguang.com',
'北京市朝阳区阳光路 1 号',
'active',
500,
50,
NOW(),
NOW(),
0
);
-- ============================================
-- 3. 初始化教师用户
-- ============================================
-- 用户名teacher1
-- 密码123456
-- BCrypt 哈希:$2a$10$RmNcSVt0dBD7uYIuAcbUpuY74jTLFYo8dUOUi6NXRSf4UmGxCaxCK
DELETE FROM t_teacher WHERE username IN ('teacher1', 'school');
INSERT INTO t_teacher (
id, tenant_id, username, password, name, phone, email,
gender, status,
created_at, updated_at, deleted
) VALUES (
'teacher001',
'tenant001',
'teacher1',
-- BCrypt 加密的 "123456"
'$2a$10$RmNcSVt0dBD7uYIuAcbUpuY74jTLFYo8dUOUi6NXRSf4UmGxCaxCK',
'李老师',
'13800138002',
'teacher1@example.com',
'female',
'active',
NOW(),
NOW(),
0
),
(
'school001',
'tenant001',
'school',
-- BCrypt 加密的 "123456"
'$2a$10$RmNcSVt0dBD7uYIuAcbUpuY74jTLFYo8dUOUi6NXRSf4UmGxCaxCK',
'王校长',
'13800138003',
'school@example.com',
'male',
'active',
NOW(),
NOW(),
0
);
-- ============================================
-- 4. 初始化家长用户
-- ============================================
-- 用户名parent1
-- 密码123456
-- BCrypt 哈希:$2a$10$RmNcSVt0dBD7uYIuAcbUpuY74jTLFYo8dUOUi6NXRSf4UmGxCaxCK
DELETE FROM t_parent WHERE username = 'parent1';
INSERT INTO t_parent (
id, tenant_id, username, password, name, phone, email,
gender, status,
created_at, updated_at, deleted
) VALUES (
'parent001',
'tenant001',
'parent1',
-- BCrypt 加密的 "123456"
'$2a$10$RmNcSVt0dBD7uYIuAcbUpuY74jTLFYo8dUOUi6NXRSf4UmGxCaxCK',
'张妈妈',
'13800138004',
'parent1@example.com',
'female',
'active',
NOW(),
NOW(),
0
);
-- ============================================
-- 5. 初始化班级 (注意:表名是 t_clazz)
-- t_clazz 表结构id, tenant_id, name, grade, description, capacity, status
-- ============================================
DELETE FROM t_clazz WHERE name IN ('大班 1 班', '中班 1 班', '小班 1 班');
INSERT INTO t_clazz (
id, tenant_id, name, grade, description, capacity, status,
created_at, updated_at, deleted
) VALUES (
'class001',
'tenant001',
'大班 1 班',
'大班',
'大班 1 班',
30,
'active',
NOW(),
NOW(),
0
),
(
'class002',
'tenant001',
'中班 1 班',
'中班',
'中班 1 班',
30,
'active',
NOW(),
NOW(),
0
),
(
'class003',
'tenant001',
'小班 1 班',
'小班',
'小班 1 班',
30,
'active',
NOW(),
NOW(),
0
);
-- ============================================
-- 6. 初始化学生
-- ============================================
DELETE FROM t_student WHERE name IN ('张小宝', '李大宝');
INSERT INTO t_student (
id, tenant_id, name, gender, birth_date, grade, class_id,
parent_name, parent_phone, status,
created_at, updated_at, deleted
) VALUES (
'student001',
'tenant001',
'张小宝',
'male',
'2018-01-15',
'大班',
'class001',
'张妈妈',
'13800138004',
'active',
NOW(),
NOW(),
0
),
(
'student002',
'tenant001',
'李大宝',
'female',
'2019-02-20',
'中班',
'class002',
'李爸爸',
'13800138005',
'active',
NOW(),
NOW(),
0
);
-- ============================================
-- 7. 初始化家长 - 学生关系
-- ============================================
DELETE FROM t_parent_student WHERE parent_id = 'parent001';
INSERT INTO t_parent_student (
id, parent_id, student_id, relationship, is_primary,
created_at, deleted, created_by
) VALUES (
'ps001',
'parent001',
'student001',
'parent',
1,
NOW(),
0,
'system'
);
-- ============================================
-- 验证插入的数据
-- ============================================
SELECT 'Admin Users:' AS '';
SELECT id, username, name, status FROM t_admin_user WHERE username = 'admin';
SELECT 'Tenants:' AS '';
SELECT id, name, code, status FROM t_tenant WHERE code = 'KINDERGARTEN01';
SELECT 'Teachers:' AS '';
SELECT id, username, name, status FROM t_teacher WHERE username IN ('teacher1', 'school');
SELECT 'Parents:' AS '';
SELECT id, username, name, status FROM t_parent WHERE username = 'parent1';
SELECT 'Students:' AS '';
SELECT id, name, grade, class_id, status FROM t_student WHERE name IN ('张小宝', '李大宝');