主要变更: 1. 所有 Entity/DTO/VO 添加 @Schema 注解,完善 API 文档 2. 新增前端 API 封装模块 (src/apis),包含 fetch.ts 和 apis.ts 3. 生成完整的 TypeScript 类型定义(100+ 个模型) 4. pom.xml 添加 Maven 编译配置和 UTF-8 编码支持 5. 更新 CLAUDE.md 开发文档,新增接口规范和 Swagger 注解规范 6. 清理旧的文档文件和 Flyway 迁移脚本 技术细节: - 后端:27 个实体类 + 所有 DTO/Response 添加 Swagger 注解 - 前端:新增 orval 生成的 API 客户端类型 - 构建:配置 Maven compiler plugin 和 Spring Boot 插件的 JVM 参数 - 数据库:新增 schema 导出文件,删除旧 Flyway 迁移脚本 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
6.0 KiB
6.0 KiB
后端接口补全总结
本文档总结了为匹配前端 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- 环节反馈 JSONpros- 优点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)- 获取任务完成记录
数据库迁移需求
需要创建数据库迁移脚本,添加以下字段:
-- 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}- 获取孩子成长记录(已存在,路径不同)
注意事项
- 所有新增的数据库字段需要创建 Flyway 迁移脚本
- 部分接口的返回数据结构已调整以匹配前端需求
- 部分 Service 方法需要进一步测试验证
- 教师端的班级、学生过滤逻辑需要根据实际业务场景优化