# 后端接口补全总结 本文档总结了为匹配前端 API 调用而补全的后端接口。 ## 已完成的工作 ### 1. 学校端 (`/api/v1/school/*`) #### 班级管理 (`/classes`) - `GET /list` - 获取班级列表(无分页) - `GET /{id}/students` - 获取班级学生分页 - `GET /{id}/teachers` - 获取班级教师列表 - `POST /{id}/teachers` - 添加班级教师 - `PUT /{id}/teachers/{teacherId}` - 更新班级教师角色 - `DELETE /{id}/teachers/{teacherId}` - 移除班级教师 #### 学生管理 (`/students`) - `POST /{id}/transfer` - 学生调班 - `GET /{id}/history` - 获取学生调班历史 ### 2. 教师端 (`/api/v1/teacher/*`) #### 课程管理 (`/courses`) - `GET /classes` - 获取教师的班级列表 - `GET /students` - 获取教师所有学生分页 - `GET /classes/{classId}/students` - 获取班级学生分页 - `GET /classes/{classId}/teachers` - 获取班级教师列表 #### 课时管理 (`/lessons`) - `POST /{id}/finish` - 结束课时(包含实际时长、评分等) - `POST /{lessonId}/students/{studentId}/record` - 保存学生评价记录 - `GET /{lessonId}/student-records` - 获取课程所有学生记录 - `POST /{lessonId}/student-records/batch` - 批量保存学生评价记录 - `POST /{lessonId}/feedback` - 提交课程反馈 - `GET /{lessonId}/feedback` - 获取课程反馈 #### 课表管理 (`/schedules`) - `GET /timetable` - 获取课表(按日期范围) - `GET /today` - 获取今日课表 - `POST /` - 创建课表计划 - `PUT /{id}` - 更新课表计划 - `DELETE /{id}` - 取消课表计划 ### 3. 家长端 (`/api/v1/parent/*`) #### 孩子信息 (`/children`) - `GET /` - 获取我的孩子(增强返回格式) - `GET /{id}` - 获取孩子详情(增强返回格式) - `GET /{childId}/lessons` - 获取孩子的课时记录 - `GET /{childId}/tasks` - 获取孩子的任务(带完成状态) #### 任务管理 (`/tasks`) - `PUT /{childId}/tasks/{taskId}/feedback` - 提交任务家长反馈 ### 4. 管理员端 (`/api/v1/admin/*`) 管理员端接口大部分已存在,以下接口需要在未来补充: - `PUT /themes/reorder` - 主题重新排序 - `PUT /packages/{packageId}/courses` - 设置套餐课程 - `POST /packages/{packageId}/courses` - 添加课程到套餐 - `DELETE /packages/{packageId}/courses/{courseId}` - 从套餐移除课程 - `POST /packages/{id}/submit` - 提交审核 - `POST /packages/{id}/review` - 审核套餐 - `POST /packages/{id}/publish` - 发布套餐 - `POST /packages/{id}/offline` - 下架套餐 ## 实体类更新 ### StudentRecord 新增字段: - `focus` - 专注力评分 (1-5) - `participation` - 参与度评分 (1-5) - `interest` - 兴趣评分 (1-5) - `understanding` - 理解度评分 (1-5) ### LessonFeedback 新增字段: - `designQuality` - 设计质量评分 (1-5) - `participation` - 参与度评分 (1-5) - `goalAchievement` - 目标达成度评分 (1-5) - `stepFeedbacks` - 环节反馈 JSON - `pros` - 优点 - `suggestions` - 建议 - `activitiesDone` - 完成的活动 JSON ## Service 方法更新 ### ClassService - `getClassList(Long tenantId)` - 获取班级列表 - `getClassStudents(Long classId, ...)` - 获取班级学生分页 - `getClassTeachers(Long classId)` - 获取班级教师列表 - `addClassTeacher(...)` - 添加班级教师 - `updateClassTeacher(...)` - 更新班级教师角色 - `removeClassTeacher(...)` - 移除班级教师 ### LessonService - `finishLesson(...)` - 结束课时 - `saveStudentRecord(...)` - 保存学生评价记录 - `getStudentRecords(Long lessonId)` - 获取课程所有学生记录 - `batchSaveStudentRecords(...)` - 批量保存学生评价记录 - `saveLessonFeedback(...)` - 提交课程反馈 - `getLessonFeedback(Long lessonId)` - 获取课程反馈 ### StudentService - `transferStudent(...)` - 学生调班 - `getStudentClassHistory(Long studentId)` - 获取学生调班历史 ### TaskService - `getTaskCompletion(Long taskId, Long studentId)` - 获取任务完成记录 ## 数据库迁移需求 需要创建数据库迁移脚本,添加以下字段: ```sql -- student_records 表新增字段 ALTER TABLE student_records ADD COLUMN focus INT COMMENT '专注力评分 (1-5)'; ALTER TABLE student_records ADD COLUMN participation INT COMMENT '参与度评分 (1-5)'; ALTER TABLE student_records ADD COLUMN interest INT COMMENT '兴趣评分 (1-5)'; ALTER TABLE student_records ADD COLUMN understanding INT COMMENT '理解度评分 (1-5)'; -- lesson_feedbacks 表新增字段 ALTER TABLE lesson_feedbacks ADD COLUMN design_quality INT COMMENT '设计质量评分 (1-5)'; ALTER TABLE lesson_feedbacks ADD COLUMN participation INT COMMENT '参与度评分 (1-5)'; ALTER TABLE lesson_feedbacks ADD COLUMN goal_achievement INT COMMENT '目标达成度评分 (1-5)'; ALTER TABLE lesson_feedbacks ADD COLUMN step_feedbacks TEXT COMMENT '环节反馈 JSON'; ALTER TABLE lesson_feedbacks ADD COLUMN pros TEXT COMMENT '优点'; ALTER TABLE lesson_feedbacks ADD COLUMN suggestions TEXT COMMENT '建议'; ALTER TABLE lesson_feedbacks ADD COLUMN activities_done TEXT COMMENT '完成的活动 JSON'; -- student_class_history 表新增字段 ALTER TABLE student_class_history ADD COLUMN reason VARCHAR(255) COMMENT '调班原因'; ``` ## 待补充的接口 ### 学校端 - `GET /stats/teachers/active` - 获取活跃教师统计 - `GET /stats/courses` - 获取课程使用统计 - `GET /stats/activities` - 获取最近活动 - `GET /stats/lesson-trend` - 课时趋势 - `GET /stats/course-distribution` - 课程分布 - `GET /reports/*` - 数据报告接口 ### 教师端 - `POST /tasks/{taskId}/remind` - 发送任务提醒 - `GET /school-courses/*` - 校本课程相关接口 ### 家长端 - `GET /growth-records/student/{studentId}` - 获取孩子成长记录(已存在,路径不同) ## 注意事项 1. 所有新增的数据库字段需要创建 Flyway 迁移脚本 2. 部分接口的返回数据结构已调整以匹配前端需求 3. 部分 Service 方法需要进一步测试验证 4. 教师端的班级、学生过滤逻辑需要根据实际业务场景优化