kindergarten_java/API 对比分析.md

162 lines
7.2 KiB
Markdown
Raw Normal View History

# API 对比分析报告
## 概述
对比 reading-platform-backend (Node.js/NestJS) 和 reading-platform-java (Spring Boot) 的 API 接口差异
---
## 已补全的接口
### 1. 任务管理相关接口SchoolTaskController, TeacherTaskController
#### 任务统计接口
- `GET /api/v1/school/tasks/stats` - 获取任务统计数据
- `GET /api/v1/school/tasks/stats/by-type` - 按任务类型统计
- `GET /api/v1/school/tasks/stats/by-class` - 按班级统计
- `GET /api/v1/school/tasks/stats/monthly` - 月度统计趋势
#### 任务完成情况接口
- `GET /api/v1/school/tasks/:id/completions` - 获取任务完成情况分页
- `PUT /api/v1/school/tasks/:taskId/completions/:studentId` - 更新任务完成状态
#### 任务模板接口
- `GET /api/v1/school/task-templates` - 获取任务模板列表
- `GET /api/v1/school/task-templates/:id` - 获取单个模板
- `GET /api/v1/school/task-templates/default/:taskType` - 获取默认模板
- `POST /api/v1/school/task-templates` - 创建模板
- `PUT /api/v1/school/task-templates/:id` - 更新模板
- `DELETE /api/v1/school/task-templates/:id` - 删除模板
- `POST /api/v1/school/tasks/from-template` - 从模板创建任务
### 2. 通知相关接口
#### 学校管理员通知SchoolNotificationController - 新增)
- `GET /api/v1/school/notifications` - 获取通知列表
- `GET /api/v1/school/notifications/:id` - 根据 ID 获取通知
- `GET /api/v1/school/notifications/unread-count` - 获取未读数量
- `POST /api/v1/school/notifications/:id/read` - 标记已读
- `POST /api/v1/school/notifications/read-all` - 全部标记已读
### 3. 排课和课表相关接口SchoolScheduleController
- `GET /api/v1/school/schedules/timetable` - 获取课表(带日期范围)
- `POST /api/v1/school/schedules/batch` - 批量创建排课
- `GET /api/v1/school/schedules/templates/:id` - 获取单个模板
- `PUT /api/v1/school/schedules/templates/:id` - 更新模板
- `POST /api/v1/school/schedules/templates/:id/apply` - 应用模板
### 4. 新增 DTO
- `TaskTemplateCreateRequest` - 任务模板创建请求
- `TaskTemplateUpdateRequest` - 任务模板更新请求
- `CreateTaskFromTemplateRequest` - 从模板创建任务请求
- `SchedulePlanCreateRequest` - 课表计划创建请求
- `ScheduleTemplateApplyRequest` - 课表模板应用请求
---
## 仍需补全的接口
### P1 - 重要功能
#### 1. 成长档案接口SchoolGrowthController, TeacherGrowthController
- `GET /api/v1/school/students/:studentId/growth-records` - 按学生查询成长档案
- `GET /api/v1/school/classes/:classId/growth-records` - 按班级查询成长档案
- `GET /api/v1/teacher/classes/:classId/growth-records` - 教师端按班级查询
#### 2. 教师端课时增强接口TeacherLessonController
- `POST /api/v1/teacher/lessons/:id/finish` - 完成课时(带反馈数据)
- `POST /api/v1/teacher/lessons/:id/students/:studentId/record` - 保存学生记录
- `GET /api/v1/teacher/lessons/:id/student-records` - 获取学生记录
- `POST /api/v1/teacher/lessons/:id/student-records/batch` - 批量保存学生记录
- `POST /api/v1/teacher/lessons/:id/feedback` - 提交反馈
- `GET /api/v1/teacher/lessons/:id/feedback` - 获取反馈
#### 3. 教师端课程增强接口TeacherCourseController
- `GET /api/v1/teacher/courses/classes` - 获取班级列表
- `GET /api/v1/teacher/students` - 获取所有学生
- `GET /api/v1/teacher/classes/:id/students` - 获取班级学生
- `GET /api/v1/teacher/classes/:id/teachers` - 获取班级教师
- `GET /api/v1/teacher/schedules/timetable` - 获取课表
- `GET /api/v1/teacher/schedules/today` - 获取今天排课
- `POST /api/v1/teacher/schedules` - 创建排课
- `PUT /api/v1/teacher/schedules/:id` - 更新排课
- `DELETE /api/v1/teacher/schedules/:id` - 取消排课
#### 4. 班级管理接口SchoolClassController
- `GET /api/v1/school/classes/:id/students` - 获取班级学生
- `GET /api/v1/school/classes/:id/teachers` - 获取班级教师
- `POST /api/v1/school/classes/:id/teachers` - 添加班级教师
- `PUT /api/v1/school/classes/:id/teachers/:teacherId` - 更新班级教师
- `DELETE /api/v1/school/classes/:id/teachers/:teacherId` - 移除班级教师
- `POST /api/v1/school/students/:id/transfer` - 学生调班
- `GET /api/v1/school/students/:id/history` - 学生调班历史
- `POST /api/v1/school/students/import` - 批量导入学生
- `GET /api/v1/school/students/import/template` - 获取导入模板
### P2 - 辅助功能
#### 1. 统计报告接口SchoolStatsController
- `GET /api/v1/school/stats/teachers` - 活跃教师统计
- `GET /api/v1/school/stats/courses` - 课程使用统计
- `GET /api/v1/school/stats/activities` - 最近活动
- `GET /api/v1/school/stats/lesson-trend` - 课时趋势
- `GET /api/v1/school/stats/course-distribution` - 课程分布
- `GET /api/v1/school/reports/overview` - 概览报告
- `GET /api/v1/school/reports/teachers` - 教师报告
- `GET /api/v1/school/reports/courses` - 课程报告
- `GET /api/v1/school/reports/students` - 学生报告
#### 2. 导出接口增强SchoolExportController
- `GET /api/v1/school/export/lessons?startDate=&endDate=` - 导出课时(带日期范围)
- `GET /api/v1/school/export/teacher-stats?startDate=&endDate=` - 导出教师统计
- `GET /api/v1/school/export/student-stats?classId=` - 导出学生统计(按班级)
#### 3. 课程包/套餐接口
- `GET /api/v1/school/package` - 获取套餐信息
- `GET /api/v1/school/package/usage` - 获取套餐使用情况
#### 4. 家长相关接口
- `POST /api/v1/school/parents/:parentId/children/:studentId` - 添加孩子到家长
- `DELETE /api/v1/school/parents/:parentId/children/:studentId` - 从家长移除孩子
#### 5. 管理员课程接口
- `GET /api/v1/admin/courses/:id/stats` - 课程统计
- `GET /api/v1/admin/courses/:id/validate` - 验证课程
- `GET /api/v1/admin/courses/:id/versions` - 版本历史
- `POST /api/v1/admin/courses/:id/submit` - 提交审核
- `POST /api/v1/admin/courses/:id/withdraw` - 撤销审核
- `POST /api/v1/admin/courses/:id/approve` - 审核通过
- `POST /api/v1/admin/courses/:id/reject` - 审核驳回
- `POST /api/v1/admin/courses/:id/direct-publish` - 直接发布
- `POST /api/v1/admin/courses/:id/publish` - 发布
- `POST /api/v1/admin/courses/:id/unpublish` - 下架
- `POST /api/v1/admin/courses/:id/republish` - 重新发布
#### 6. 资源接口增强
- `POST /api/v1/admin/resources/items/batch-delete` - 批量删除资源项
- `GET /api/v1/admin/resources/stats` - 资源统计
#### 7. 反馈接口
- `GET /api/v1/teacher/feedbacks` - 获取反馈列表
- `GET /api/v1/teacher/feedbacks/stats` - 获取反馈统计
- `GET /api/v1/school/feedbacks` - 获取反馈列表(学校端)
- `GET /api/v1/school/feedbacks/stats` - 获取反馈统计(学校端)
#### 8. 认证接口
- `GET /api/v1/auth/profile` - 获取用户信息
- `POST /api/v1/auth/logout` - 登出
---
## 总结
本次补全了以下主要功能:
1. 任务管理:统计、模板、完成情况更新
2. 通知:学校管理员通知接口
3. 排课:课表模板、批量创建、应用模板
下一步建议优先补全:
1. 成长档案按学生/班级查询接口
2. 教师端课时反馈接口
3. 班级管理相关接口
4. 学生调班和批量导入接口