主要变更: 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 编译
20 KiB
20 KiB
旧后端 (NestJS) 完整接口清单
分析日期: 2026-03-11 来源: reading-platform-backend
一、认证模块 (/auth)
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/auth/login |
POST | 登录 | ✅ /api/v1/auth/login |
/auth/logout |
POST | 登出 | ✅ /api/v1/auth/logout |
/auth/profile |
GET | 获取用户信息 | ✅ /api/v1/auth/me |
/auth/change-password |
POST | 修改密码 | ✅ /api/v1/auth/change-password |
二、学校端接口 (/school)
教师管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/school/teachers |
GET | 教师列表 | ✅ |
/school/teachers/:id |
GET | 教师详情 | ✅ |
/school/teachers |
POST | 创建教师 | ✅ |
/school/teachers/:id |
PUT | 更新教师 | ✅ |
/school/teachers/:id |
DELETE | 删除教师 | ✅ |
/school/teachers/:id/reset-password |
POST | 重置教师密码 | ✅ |
学生管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/school/students |
GET | 学生列表 | ✅ |
/school/students/:id |
GET | 学生详情 | ✅ |
/school/students |
POST | 创建学生 | ✅ |
/school/students/:id |
PUT | 更新学生 | ✅ |
/school/students/:id |
DELETE | 删除学生 | ✅ |
/school/students/:id/transfer |
POST | 学生调班 | ✅ |
/school/students/:id/history |
GET | 调班历史 | ✅ |
/school/students/import |
POST | 批量导入学生 | ✅ |
/school/students/import/template |
GET | 导入模板 | ✅ |
班级管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/school/classes |
GET | 班级列表 | ✅ |
/school/classes/:id |
GET | 班级详情 | ✅ |
/school/classes/:id/students |
GET | 班级学生 | ✅ |
/school/classes |
POST | 创建班级 | ✅ |
/school/classes/:id |
PUT | 更新班级 | ✅ |
/school/classes/:id |
DELETE | 删除班级 | ✅ |
/school/classes/:id/teachers |
GET | 班级教师 | ✅ |
/school/classes/:id/teachers |
POST | 添加班级教师 | ✅ |
/school/classes/:id/teachers/:teacherId |
PUT | 更新班级教师 | ✅ |
/school/classes/:id/teachers/:teacherId |
DELETE | 移除班级教师 | ✅ |
家长管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/school/parents |
GET | 家长列表 | ✅ |
/school/parents/:id |
GET | 家长详情 | ✅ |
/school/parents |
POST | 创建家长 | ✅ |
/school/parents/:id |
PUT | 更新家长 | ✅ |
/school/parents/:id |
DELETE | 删除家长 | ✅ |
/school/parents/:id/reset-password |
POST | 重置家长密码 | ✅ |
/school/parents/:parentId/children/:studentId |
POST | 绑定孩子 | ✅ |
/school/parents/:parentId/children/:studentId |
DELETE | 解绑孩子 | ✅ |
课程管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/school/courses |
GET | 课程列表 | ✅ |
/school/courses/:id |
GET | 课程详情 | ✅ |
/school/school-courses |
GET | 校本课程列表 | ✅ |
/school/school-courses/:id |
GET | 校本课程详情 | ✅ |
/school/school-courses |
POST | 创建校本课程 | ✅ |
/school/school-courses/:id |
PUT | 更新校本课程 | ✅ |
/school/school-courses/:id |
DELETE | 删除校本课程 | ✅ |
排课管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/school/schedules |
GET | 排课列表 | ✅ |
/school/schedules/timetable |
GET | 课表视图 | ✅ |
/school/schedules/:id |
GET | 排课详情 | ✅ |
/school/schedules |
POST | 创建排课 | ✅ |
/school/schedules/:id |
PUT | 更新排课 | ✅ |
/school/schedules/:id |
DELETE | 取消排课 | ✅ |
/school/schedules/batch |
POST | 批量创建排课 | ✅ |
排课模板
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/school/schedule-templates |
GET | 排课模板列表 | ✅ |
/school/schedule-templates/:id |
GET | 排课模板详情 | ✅ |
/school/schedule-templates |
POST | 创建排课模板 | ✅ |
/school/schedule-templates/:id |
PUT | 更新排课模板 | ✅ |
/school/schedule-templates/:id |
DELETE | 删除排课模板 | ✅ |
/school/schedule-templates/:id/apply |
POST | 应用排课模板 | ✅ |
任务管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/school/tasks |
GET | 任务列表 | ✅ |
/school/tasks/stats |
GET | 任务统计 | ✅ |
/school/tasks/stats/by-type |
GET | 按类型统计 | ✅ |
/school/tasks/stats/by-class |
GET | 按班级统计 | ✅ |
/school/tasks/stats/monthly |
GET | 月度统计 | ✅ |
/school/tasks/:id |
GET | 任务详情 | ✅ |
/school/tasks/:id/completions |
GET | 任务完成记录 | ✅ |
/school/tasks |
POST | 创建任务 | ✅ |
/school/tasks/:id |
PUT | 更新任务 | ✅ |
/school/tasks/:id |
DELETE | 删除任务 | ✅ |
/school/tasks/:taskId/completions/:studentId |
PUT | 更新任务完成状态 | ✅ |
/school/tasks/:id/remind |
POST | 发送提醒 | ❌ 缺失 |
任务模板
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/school/task-templates |
GET | 任务模板列表 | ✅ |
/school/task-templates/:id |
GET | 任务模板详情 | ✅ |
/school/task-templates/default/:taskType |
GET | 默认模板 | ✅ |
/school/task-templates |
POST | 创建任务模板 | ✅ |
/school/task-templates/:id |
PUT | 更新任务模板 | ✅ |
/school/task-templates/:id |
DELETE | 删除任务模板 | ✅ |
/school/tasks/from-template |
POST | 从模板创建任务 | ✅ |
统计接口
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/school/stats |
GET | 整体统计 | ✅ |
/school/stats/teachers |
GET | 活跃教师统计 | ✅ |
/school/stats/lesson-trend |
GET | 课时趋势 | ✅ |
/school/stats/courses |
GET | 课程使用统计 | ✅ |
/school/stats/course-distribution |
GET | 课程分布 | ✅ |
/school/stats/activities |
GET | 最近活动 | ✅ |
/school/reports/overview |
GET | 总览报告 | ❌ 缺失 |
/school/reports/teachers |
GET | 教师报告 | ❌ 缺失 |
/school/reports/courses |
GET | 课程报告 | ❌ 缺失 |
/school/reports/students |
GET | 学生报告 | ❌ 缺失 |
通知管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/school/notifications |
GET | 通知列表 | ✅ |
/school/notifications/:id |
GET | 通知详情 | ✅ |
/school/notifications/:id/read |
PUT | 标记已读 | ✅ |
/school/notifications/read-all |
POST | 全部已读 | ✅ |
/school/notifications/unread-count |
GET | 未读数量 | ✅ |
操作日志
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/school/operation-logs |
GET | 操作日志列表 | ✅ |
/school/operation-logs/stats |
GET | 日志统计 | ❌ 缺失 |
导出功能
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/school/export/teachers |
GET | 导出教师 | ✅ |
/school/export/students |
GET | 导出学生 | ✅ |
/school/export/lessons |
GET | 导出课时 | ✅ |
/school/export/growth-records |
GET | 导出成长记录 | ✅ |
成长档案
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/school/growth-records |
GET/POST | 成长档案列表/创建 | ✅ |
/school/growth-records/:id |
GET/PUT/DELETE | 成长档案详情/更新/删除 | ✅ |
课程包
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/school/course-packages |
GET | 课程包列表 | ✅ |
/school/course-packages/:id |
GET | 课程包详情 | ✅ |
资源管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/school/resource-libraries |
GET | 资源库列表 | ❌ 缺失 |
/school/resource-items |
GET | 资源项列表 | ❌ 缺失 |
设置
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/school/settings |
GET/PUT | 设置管理 | ✅ |
三、教师端接口 (/teacher)
仪表盘
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/teacher/dashboard |
GET | 仪表盘概览 | ✅ |
/teacher/dashboard/today |
GET | 今日课表 | ✅ |
/teacher/dashboard/weekly |
GET | 周统计 | ✅ |
/teacher/dashboard/recommend |
GET | 推荐课程 | ❌ 缺失 |
/teacher/dashboard/lesson-trend |
GET | 课时趋势 | ❌ 缺失 |
/teacher/dashboard/course-usage |
GET | 课程使用情况 | ❌ 缺失 |
课程管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/teacher/courses |
GET | 课程列表 | ✅ |
/teacher/courses/:id |
GET | 课程详情 | ✅ |
/teacher/courses/classes |
GET | 教师的班级 | ✅ |
/teacher/courses/students |
GET | 教师所有学生 | ✅ |
/teacher/courses/classes/:id/students |
GET | 班级学生 | ✅ |
/teacher/courses/classes/:id/teachers |
GET | 班级教师 | ✅ |
/teacher/courses/all |
GET | 所有课程 | ✅ |
课时管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/teacher/lessons |
GET | 课时列表 | ✅ |
/teacher/lessons/:id |
GET | 课时详情 | ✅ |
/teacher/lessons/:id/start |
POST | 开始课时 | ✅ |
/teacher/lessons/:id/finish |
POST | 结束课时 | ✅ |
/teacher/lessons/:id/cancel |
POST | 取消课时 | ✅ |
/teacher/lessons/:id/students/:studentId/record |
POST | 保存学生评价 | ✅ |
/teacher/lessons/:id/student-records |
GET | 获取学生评价 | ✅ |
/teacher/lessons/:id/student-records/batch |
POST | 批量保存评价 | ✅ |
/teacher/lessons/:id/feedback |
POST | 提交课程反馈 | ✅ |
/teacher/lessons/:id/feedback |
GET | 获取课程反馈 | ✅ |
/teacher/lessons/today |
GET | 今天课时 | ✅ |
任务管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/teacher/tasks |
GET/POST | 任务列表/创建 | ✅ |
/teacher/tasks/:id |
GET/PUT/DELETE | 任务详情/更新/删除 | ✅ |
/teacher/tasks/:id/completions |
GET | 任务完成记录 | ✅ |
/teacher/tasks/:taskId/completions/:studentId |
PUT | 更新任务完成状态 | ✅ |
/teacher/tasks/stats |
GET | 任务统计 | ✅ |
/teacher/tasks/stats/by-type |
GET | 按类型统计 | ✅ |
/teacher/tasks/stats/by-class |
GET | 按班级统计 | ✅ |
/teacher/tasks/stats/monthly |
GET | 月度统计 | ✅ |
/teacher/tasks/upcoming |
GET | 即将到期任务 | ❌ 缺失 |
/teacher/tasks/:id/remind |
POST | 发送提醒 | ❌ 缺失 |
/teacher/tasks/from-template |
POST | 从模板创建任务 | ✅ |
任务模板
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/teacher/task-templates |
GET | 任务模板列表 | ✅ |
/teacher/task-templates/:id |
GET | 任务模板详情 | ✅ |
/teacher/task-templates/default/:taskType |
GET | 默认模板 | ✅ |
课表管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/teacher/schedules |
GET | 排课列表 | ✅ |
/teacher/schedules/:id |
GET/PUT/DELETE | 排课详情/更新/删除 | ✅ |
/teacher/schedules/timetable |
GET | 课表视图 | ✅ |
/teacher/schedules/today |
GET | 今日课表 | ✅ |
成长档案
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/teacher/growth-records |
GET/POST/DELETE | 成长档案 | ✅ |
/teacher/growth-records/:id |
GET/PUT/DELETE | 成长档案详情 | ✅ |
通知管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/teacher/notifications |
GET | 通知列表 | ✅ |
/teacher/notifications/{id} |
GET | 通知详情 | ✅ |
/teacher/notifications/{id}/read |
POST | 标记已读 | ✅ |
/teacher/notifications/read-all |
POST | 全部已读 | ✅ |
/teacher/notifications/unread-count |
GET | 未读数量 | ✅ |
反馈管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/teacher/feedbacks |
GET | 反馈列表 | ❌ 缺失 |
/teacher/feedbacks/stats |
GET | 反馈统计 | ❌ 缺失 |
校本课程
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/teacher/school-courses |
GET | 校本课程列表 | ✅ |
/teacher/school-courses/:id |
GET | 校本课程详情 | ✅ |
四、家长端接口 (/parent)
孩子信息
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/parent/children |
GET | 孩子列表 | ✅ |
/parent/children/:id |
GET | 孩子详情 | ✅ |
/parent/children/:id/lessons |
GET | 孩子课时 | ✅ |
/parent/children/:id/tasks |
GET | 孩子任务 | ✅ |
/parent/children/:studentId/tasks/:taskId/feedback |
PUT | 提交任务反馈 | ✅ |
任务
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/parent/tasks/:id |
GET | 任务详情 | ✅ |
/parent/tasks/student/{studentId} |
GET | 学生任务 | ✅ |
/parent/tasks/{taskId}/complete |
POST | 完成任务 | ✅ |
成长档案
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/parent/growth-records |
GET | 成长档案列表 | ✅ |
/parent/growth-records/:id |
GET/PUT/DELETE | 成长档案详情 | ✅ |
/parent/growth-records/student/{studentId} |
GET | 按学生获取 | ✅ |
/parent/growth-records/student/{studentId}/recent |
GET | 最近成长档案 | ✅ |
通知
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/parent/notifications |
GET | 通知列表 | ✅ |
/parent/notifications/:id |
GET | 通知详情 | ✅ |
/parent/notifications/:id/read |
PUT | 标记已读 | ✅ |
/parent/notifications/read-all |
POST | 全部已读 | ✅ |
/parent/notifications/unread-count |
GET | 未读数量 | ✅ |
五、管理员端接口 (/admin)
租户管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/admin/tenants |
GET/POST | 租户列表/创建 | ✅ |
/admin/tenants/:id |
GET/PUT/DELETE | 租户详情/更新/删除 | ✅ |
/admin/tenants/:id/status |
PUT | 更新租户状态 | ✅ |
/admin/tenants/:id/quota |
PUT | 更新租户配额 | ✅ |
/admin/tenants/:id/reset-password |
POST | 重置租户密码 | ✅ |
/admin/tenants/active |
GET | 活跃租户 | ✅ |
课程管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/admin/courses |
GET/POST | 课程列表/创建 | ✅ |
/admin/courses/:id |
GET/PUT/DELETE | 课程详情/更新/删除 | ✅ |
/admin/courses/review |
GET | 待审核课程 | ✅ |
/admin/courses/:id/submit |
POST | 提交审核 | ✅ |
/admin/courses/:id/withdraw |
POST | 撤销审核 | ✅ |
/admin/courses/:id/approve |
POST | 审批通过 | ✅ |
/admin/courses/:id/reject |
POST | 驳回 | ✅ |
/admin/courses/:id/publish |
POST | 发布 | ✅ |
/admin/courses/:id/direct-publish |
POST | 直接发布 | ✅ |
/admin/courses/:id/unpublish |
POST | 取消发布 | ✅ |
/admin/courses/:id/republish |
POST | 重新发布 | ✅ |
/admin/courses/:id/archive |
POST | 归档 | ✅ |
/admin/courses/:courseId/lessons |
GET | 课程课时列表 | ❌ 缺失 |
课程包管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/admin/packages |
GET/POST | 课程包列表/创建 | ✅ |
/admin/packages/:id |
GET/PUT/DELETE | 课程包详情/更新/删除 | ✅ |
/admin/packages/:id/submit |
POST | 提交审核 | ✅ |
/admin/packages/:id/review |
POST | 审核 | ✅ |
/admin/packages/:id/publish |
POST | 发布 | ✅ |
/admin/packages/:id/offline |
POST | 下架 | ✅ |
资源管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/admin/resources/libraries |
GET/POST | 资源库列表/创建 | ✅ |
/admin/resources/libraries/:id |
GET/PUT/DELETE | 资源库详情/更新/删除 | ✅ |
/admin/resources/items |
GET/POST | 资源项列表/创建 | ✅ |
/admin/resources/items/:id |
GET/PUT/DELETE | 资源项详情/更新/删除 | ✅ |
/admin/resources/items/batch-delete |
POST | 批量删除 | ❌ 缺失 |
/admin/resources/stats |
GET | 资源统计 | ❌ 缺失 |
主题管理
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/admin/themes |
GET/POST | 主题列表/创建 | ✅ |
/admin/themes/:id |
GET/PUT | 主题详情/更新 | ✅ |
系统设置
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/admin/settings |
GET/PUT | 系统设置 | ✅ |
统计接口
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/admin/stats |
GET | 整体统计 | ✅ |
/admin/stats/trend |
GET | 趋势数据 | ✅ |
/admin/stats/tenants/active |
GET | 活跃租户 | ✅ |
/admin/stats/courses/popular |
GET | 热门课程 | ✅ |
/admin/stats/activities |
GET | 最近活动 | ✅ |
/admin/stats/lesson-trend |
GET | 课时趋势 | ❌ 缺失 |
操作日志
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/admin/operation-logs |
GET | 操作日志列表 | ✅ |
/admin/operation-logs/stats |
GET | 日志统计 | ❌ 缺失 |
六、文件上传 (/files)
| 路径 | 方法 | 功能 | 新后端状态 |
|---|---|---|---|
/files/upload |
POST | 上传文件 | ✅ |
/files/:id |
DELETE | 删除文件 | ✅ |
缺失接口汇总
高优先级 (前端可能使用)
| 接口路径 | 方法 | 功能 | 所属模块 |
|---|---|---|---|
/school/tasks/:id/remind |
POST | 发送提醒 | 学校任务 |
/teacher/tasks/upcoming |
GET | 即将到期任务 | 教师任务 |
/teacher/tasks/:id/remind |
POST | 发送提醒 | 教师任务 |
/teacher/dashboard/recommend |
GET | 推荐课程 | 教师仪表板 |
/teacher/dashboard/lesson-trend |
GET | 课时趋势 | 教师仪表板 |
/teacher/dashboard/course-usage |
GET | 课程使用情况 | 教师仪表板 |
中优先级 (报告/统计)
| 接口路径 | 方法 | 功能 | 所属模块 |
|---|---|---|---|
/school/reports/overview |
GET | 总览报告 | 学校报告 |
/school/reports/teachers |
GET | 教师报告 | 学校报告 |
/school/reports/courses |
GET | 课程报告 | 学校报告 |
/school/reports/students |
GET | 学生报告 | 学校报告 |
/school/operation-logs/stats |
GET | 日志统计 | 学校日志 |
/admin/operation-logs/stats |
GET | 日志统计 | 管理员日志 |
/admin/stats/lesson-trend |
GET | 课时趋势 | 管理员统计 |
/admin/courses/:courseId/lessons |
GET | 课程课时列表 | 管理员课程 |
低优先级 (辅助功能)
| 接口路径 | 方法 | 功能 | 所属模块 |
|---|---|---|---|
/teacher/feedbacks |
GET | 反馈列表 | 教师反馈 |
/teacher/feedbacks/stats |
GET | 反馈统计 | 教师反馈 |
/school/feedbacks |
GET | 反馈列表 | 学校反馈 |
/school/feedbacks/stats |
GET | 反馈统计 | 学校反馈 |
/school/resource-libraries |
GET | 资源库列表 | 学校资源 |
/school/resource-items |
GET | 资源项列表 | 学校资源 |
/admin/resources/items/batch-delete |
POST | 批量删除资源项 | 管理员资源 |
/admin/resources/stats |
GET | 资源统计 | 管理员资源 |
总结
旧后端接口总数: 约 200 个 新后端已实现: 约 180 个 缺失接口: 约 20 个
缺失接口分类:
- 高优先级:6 个
- 中优先级:8 个
- 低优先级:8 个
建议实施顺序:
- 先补充高优先级接口(发送提醒、即将到期任务、仪表板增强)
- 再补充中优先级接口(报告、统计)
- 最后补充低优先级接口(反馈、资源)