kindergarten_java/前端实际调用接口对比.md
En 583b47c430 feat: 新增学校通知、任务模板和日程管理功能
- 新增学校通知控制器 (SchoolNotificationController)
- 新增任务模板创建/更新请求 DTO
- 新增日程计划创建和模板应用请求 DTO
- 新增 TokenService 服务实现
- 新增多个服务实现类 (AdminStats, CourseLesson, CoursePackage 等)
- 添加数据库迁移脚本 V7__fix_schedule_plans.sql
- 更新配置文件和依赖

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 01:06:03 +08:00

347 lines
17 KiB
Markdown
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.

# 前端实际调用但 Java 后端缺失的接口
## 分析方法
- 对比 `reading-platform-frontend/src/api/generated/api.ts` 中的实际调用
- 检查 `reading-platform-java/src/main/java/com/reading/platform/controller` 中的实现
- 只列出前端实际调用但 Java 后端缺失的接口
---
## ✅ 已实现的接口列表
### 1. 认证接口 (AuthController)
-`POST /api/v1/auth/login` - 登录
-`POST /api/v1/auth/logout` - 登出
-`POST /api/v1/auth/change-password` - 修改密码
-`GET /api/v1/auth/me` - 获取当前用户信息
### 2. 文件接口 (FileUploadController)
-`POST /api/v1/files/upload` - 上传文件
-`DELETE /api/v1/files/delete` - 删除文件
### 3. 教师端 - 任务 (TeacherTaskController)
-`GET /api/v1/teacher/tasks` - 获取任务分页
-`POST /api/v1/teacher/tasks` - 创建任务
-`GET /api/v1/teacher/tasks/{id}` - 根据 ID 获取任务
-`PUT /api/v1/teacher/tasks/{id}` - 更新任务
-`DELETE /api/v1/teacher/tasks/{id}` - 删除任务
### 4. 教师端 - 课时 (TeacherLessonController)
-`GET /api/v1/teacher/lessons` - 获取课时分页
-`POST /api/v1/teacher/lessons` - 创建课时
-`GET /api/v1/teacher/lessons/{id}` - 根据 ID 获取课时
-`PUT /api/v1/teacher/lessons/{id}` - 更新课时
-`POST /api/v1/teacher/lessons/{id}/start` - 开始课时
-`POST /api/v1/teacher/lessons/{id}/complete` - 完成课时
-`POST /api/v1/teacher/lessons/{id}/cancel` - 取消课时
-`GET /api/v1/teacher/lessons/today` - 获取今天课时
### 5. 教师端 - 成长档案 (TeacherGrowthController)
-`GET /api/v1/teacher/growth-records` - 获取成长档案分页
-`POST /api/v1/teacher/growth-records` - 创建成长档案
-`GET /api/v1/teacher/growth-records/{id}` - 根据 ID 获取成长档案
-`PUT /api/v1/teacher/growth-records/{id}` - 更新成长档案
-`DELETE /api/v1/teacher/growth-records/{id}` - 删除成长档案
### 6. 教师端 - 通知 (TeacherNotificationController)
-`GET /api/v1/teacher/notifications` - 获取通知分页
-`GET /api/v1/teacher/notifications/{id}` - 根据 ID 获取通知
-`GET /api/v1/teacher/notifications/unread-count` - 获取未读数量
-`POST /api/v1/teacher/notifications/{id}/read` - 标记已读
-`POST /api/v1/teacher/notifications/read-all` - 全部标记已读
### 7. 教师端 - 课程 (TeacherCourseController)
-`GET /api/v1/teacher/courses` - 获取课程分页
-`GET /api/v1/teacher/courses/{id}` - 根据 ID 获取课程
-`GET /api/v1/teacher/courses/all` - 获取所有课程
### 8. 教师端 - 课程课时 (TeacherCourseLessonController)
-`GET /api/v1/teacher/courses/{courseId}/lessons` - 获取课程课时列表
-`GET /api/v1/teacher/courses/{courseId}/lessons/{id}` - 根据 ID 获取课时
### 9. 教师端 - 校本课程 (TeacherSchoolCourseController)
-`GET /api/v1/teacher/school-courses` - 获取校本课程分页
-`GET /api/v1/teacher/school-courses/{id}` - 根据 ID 获取校本课程
### 10. 教师端 - 课表 (TeacherScheduleController)
-`GET /api/v1/teacher/schedules` - 获取课表计划分页
-`GET /api/v1/teacher/schedules/{id}` - 根据 ID 获取课表计划
### 11. 教师端 - 仪表板 (TeacherDashboardController)
-`GET /api/v1/teacher/dashboard` - 获取仪表板数据
-`GET /api/v1/teacher/dashboard/weekly` - 获取周统计
-`GET /api/v1/teacher/dashboard/today` - 获取今天数据
### 12. 学校管理员 - 教师 (SchoolTeacherController)
-`GET /api/v1/school/teachers` - 获取教师分页
-`POST /api/v1/school/teachers` - 创建教师
-`GET /api/v1/school/teachers/{id}` - 根据 ID 获取教师
-`PUT /api/v1/school/teachers/{id}` - 更新教师
-`DELETE /api/v1/school/teachers/{id}` - 删除教师
-`POST /api/v1/school/teachers/{id}/reset-password` - 重置密码
### 13. 学校管理员 - 任务 (SchoolTaskController)
-`GET /api/v1/school/tasks` - 获取任务分页
-`POST /api/v1/school/tasks` - 创建任务
-`GET /api/v1/school/tasks/{id}` - 根据 ID 获取任务
-`PUT /api/v1/school/tasks/{id}` - 更新任务
-`DELETE /api/v1/school/tasks/{id}` - 删除任务
### 14. 学校管理员 - 学生 (SchoolStudentController)
-`GET /api/v1/school/students` - 获取学生分页
-`POST /api/v1/school/students` - 创建学生
-`GET /api/v1/school/students/{id}` - 根据 ID 获取学生
-`PUT /api/v1/school/students/{id}` - 更新学生
-`DELETE /api/v1/school/students/{id}` - 删除学生
### 15. 学校管理员 - 校本课程 (SchoolCourseController)
-`GET /api/v1/school/school-courses` - 获取校本课程分页
-`POST /api/v1/school/school-courses` - 创建校本课程
-`GET /api/v1/school/school-courses/{id}` - 根据 ID 获取校本课程
-`PUT /api/v1/school/school-courses/{id}` - 更新校本课程
-`DELETE /api/v1/school/school-courses/{id}` - 删除校本课程
### 16. 学校管理员 - 课表 (SchoolScheduleController)
-`GET /api/v1/school/schedules` - 获取课表计划分页
-`POST /api/v1/school/schedules` - 创建课表计划
-`GET /api/v1/school/schedules/{id}` - 根据 ID 获取课表计划
-`PUT /api/v1/school/schedules/{id}` - 更新课表计划
-`DELETE /api/v1/school/schedules/{id}` - 删除课表计划
-`GET /api/v1/school/schedules/templates` - 获取课表模板分页
-`POST /api/v1/school/schedules/templates` - 创建课表模板
-`GET /api/v1/school/schedules/templates/{id}` - 根据 ID 获取课表模板
-`PUT /api/v1/school/schedules/templates/{id}` - 更新课表模板
-`DELETE /api/v1/school/schedules/templates/{id}` - 删除课表模板
-`POST /api/v1/school/schedules/templates/{id}/apply` - 应用课表模板
### 17. 学校管理员 - 家长 (SchoolParentController)
-`GET /api/v1/school/parents` - 获取家长分页
-`POST /api/v1/school/parents` - 创建家长
-`GET /api/v1/school/parents/{id}` - 根据 ID 获取家长
-`PUT /api/v1/school/parents/{id}` - 更新家长
-`DELETE /api/v1/school/parents/{id}` - 删除家长
-`POST /api/v1/school/parents/{id}/reset-password` - 重置密码
-`POST /api/v1/school/parents/{parentId}/students/{studentId}` - 绑定学生
-`DELETE /api/v1/school/parents/{parentId}/students/{studentId}` - 解绑学生
### 18. 学校管理员 - 成长档案 (SchoolGrowthController)
-`GET /api/v1/school/growth-records` - 获取成长档案分页
-`POST /api/v1/school/growth-records` - 创建成长档案
-`GET /api/v1/school/growth-records/{id}` - 根据 ID 获取成长档案
-`PUT /api/v1/school/growth-records/{id}` - 更新成长档案
-`DELETE /api/v1/school/growth-records/{id}` - 删除成长档案
### 19. 学校管理员 - 班级 (SchoolClassController)
-`GET /api/v1/school/classes` - 获取班级分页
-`POST /api/v1/school/classes` - 创建班级
-`GET /api/v1/school/classes/{id}` - 根据 ID 获取班级
-`PUT /api/v1/school/classes/{id}` - 更新班级
-`DELETE /api/v1/school/classes/{id}` - 删除班级
-`POST /api/v1/school/classes/{id}/teachers` - 分配教师到班级
-`POST /api/v1/school/classes/{id}/students` - 分配学生到班级
### 20. 学校管理员 - 通知 (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` - 全部标记已读
### 21. 学校管理员 - 统计 (SchoolStatsController)
-`GET /api/v1/school/stats` - 获取统计数据
### 22. 学校管理员 - 操作日志 (SchoolOperationLogController)
-`GET /api/v1/school/operation-logs` - 获取操作日志分页
### 23. 学校管理员 - 导出 (SchoolExportController)
-`GET /api/v1/school/export/teachers` - 导出教师数据
-`GET /api/v1/school/export/students` - 导出学生数据
-`GET /api/v1/school/export/lessons` - 导出课时数据
-`GET /api/v1/school/export/growth-records` - 导出成长档案
### 24. 学校管理员 - 课程包 (SchoolCoursePackageController)
-`GET /api/v1/school/course-packages` - 获取课程包分页
-`GET /api/v1/school/course-packages/{id}` - 根据 ID 获取课程包
### 25. 家长端 - 孩子 (ParentChildController)
-`GET /api/v1/parent/children` - 获取我的孩子
-`GET /api/v1/parent/children/{id}` - 根据 ID 获取孩子
### 26. 家长端 - 任务 (ParentTaskController)
-`GET /api/v1/parent/tasks/{id}` - 根据 ID 获取任务
-`GET /api/v1/parent/tasks/student/{studentId}` - 根据学生 ID 获取任务
-`POST /api/v1/parent/tasks/{taskId}/complete` - 完成任务
### 27. 家长端 - 通知 (ParentNotificationController)
-`GET /api/v1/parent/notifications` - 获取通知分页
-`GET /api/v1/parent/notifications/{id}` - 根据 ID 获取通知
-`GET /api/v1/parent/notifications/unread-count` - 获取未读数量
-`POST /api/v1/parent/notifications/{id}/read` - 标记已读
-`POST /api/v1/parent/notifications/read-all` - 全部标记已读
### 28. 家长端 - 成长档案 (ParentGrowthController)
-`GET /api/v1/parent/growth-records` - 获取成长档案分页
-`POST /api/v1/parent/growth-records` - 创建成长档案
-`GET /api/v1/parent/growth-records/{id}` - 根据 ID 获取成长档案
-`PUT /api/v1/parent/growth-records/{id}` - 更新成长档案
-`DELETE /api/v1/parent/growth-records/{id}` - 删除成长档案
-`GET /api/v1/parent/growth-records/student/{studentId}` - 根据学生 ID 获取成长档案
-`GET /api/v1/parent/growth-records/student/{studentId}/recent` - 获取最近成长档案
### 29. 管理员端 - 租户 (AdminTenantController)
-`GET /api/v1/admin/tenants` - 获取租户分页
-`POST /api/v1/admin/tenants` - 创建租户
-`GET /api/v1/admin/tenants/{id}` - 根据 ID 获取租户
-`PUT /api/v1/admin/tenants/{id}` - 更新租户
-`DELETE /api/v1/admin/tenants/{id}` - 删除租户
-`GET /api/v1/admin/tenants/active` - 获取活跃租户
-`PUT /api/v1/admin/tenants/{id}/status` - 更新租户状态
-`PUT /api/v1/admin/tenants/{id}/quota` - 更新租户配额
-`POST /api/v1/admin/tenants/{id}/reset-password` - 重置密码
### 30. 管理员端 - 主题 (AdminThemeController)
-`GET /api/v1/admin/themes` - 获取主题分页
-`POST /api/v1/admin/themes` - 创建主题
-`GET /api/v1/admin/themes/{id}` - 根据 ID 获取主题
-`PUT /api/v1/admin/themes/{id}` - 更新主题
-`DELETE /api/v1/admin/themes/{id}` - 删除主题
### 31. 管理员端 - 资源 (AdminResourceController)
-`GET /api/v1/admin/resources/libraries` - 获取资源库分页
-`POST /api/v1/admin/resources/libraries` - 创建资源库
-`GET /api/v1/admin/resources/libraries/{id}` - 根据 ID 获取资源库
-`PUT /api/v1/admin/resources/libraries/{id}` - 更新资源库
-`DELETE /api/v1/admin/resources/libraries/{id}` - 删除资源库
-`GET /api/v1/admin/resources/items` - 获取资源项分页
-`POST /api/v1/admin/resources/items` - 创建资源项
-`GET /api/v1/admin/resources/items/{id}` - 根据 ID 获取资源项
-`PUT /api/v1/admin/resources/items/{id}` - 更新资源项
-`DELETE /api/v1/admin/resources/items/{id}` - 删除资源项
### 32. 管理员端 - 课程包 (AdminCoursePackageController)
-`GET /api/v1/admin/packages` - 获取课程包分页
-`POST /api/v1/admin/packages` - 创建课程包
-`GET /api/v1/admin/packages/{id}` - 根据 ID 获取课程包
-`PUT /api/v1/admin/packages/{id}` - 更新课程包
-`DELETE /api/v1/admin/packages/{id}` - 删除课程包
-`POST /api/v1/admin/packages/{id}/submit` - 提交审核
-`POST /api/v1/admin/packages/{id}/review` - 审核
-`POST /api/v1/admin/packages/{id}/publish` - 发布
-`POST /api/v1/admin/packages/{id}/offline` - 下架
### 33. 管理员端 - 课程 (AdminCourseController)
-`GET /api/v1/admin/courses` - 获取课程分页
-`POST /api/v1/admin/courses` - 创建课程
-`GET /api/v1/admin/courses/{id}` - 根据 ID 获取课程
-`PUT /api/v1/admin/courses/{id}` - 更新课程
-`DELETE /api/v1/admin/courses/{id}` - 删除课程
-`GET /api/v1/admin/courses/review` - 获取待审核课程
-`POST /api/v1/admin/courses/{id}/submit` - 提交审核
-`POST /api/v1/admin/courses/{id}/approve` - 审核通过
-`POST /api/v1/admin/courses/{id}/reject` - 审核驳回
-`POST /api/v1/admin/courses/{id}/publish` - 发布
-`POST /api/v1/admin/courses/{id}/direct-publish` - 直接发布
-`POST /api/v1/admin/courses/{id}/withdraw` - 撤销审核
-`POST /api/v1/admin/courses/{id}/unpublish` - 下架
-`POST /api/v1/admin/courses/{id}/republish` - 重新发布
-`POST /api/v1/admin/courses/{id}/archive` - 归档
### 34. 管理员端 - 课程课时 (AdminCourseLessonController)
-`GET /api/v1/admin/courses/{courseId}/lessons` - 获取课程课时列表
-`POST /api/v1/admin/courses/{courseId}/lessons` - 创建课程课时
-`GET /api/v1/admin/courses/{courseId}/lessons/{id}` - 根据 ID 获取课时
-`PUT /api/v1/admin/courses/{courseId}/lessons/{id}` - 更新课程课时
-`DELETE /api/v1/admin/courses/{courseId}/lessons/{id}` - 删除课程课时
### 35. 管理员端 - 统计 (AdminStatsController)
-`GET /api/v1/admin/stats` - 获取整体统计数据
-`GET /api/v1/admin/stats/trend` - 获取趋势数据
-`GET /api/v1/admin/stats/tenants/active` - 获取活跃租户
-`GET /api/v1/admin/stats/courses/popular` - 获取热门课程
-`GET /api/v1/admin/stats/activities` - 获取最近活动
### 36. 管理员端 - 操作日志 (AdminOperationLogController)
-`GET /api/v1/admin/operation-logs` - 获取操作日志分页
### 37. 管理员端 - 设置 (AdminSettingsController)
-`GET /api/v1/admin/settings` - 获取系统设置
-`PUT /api/v1/admin/settings` - 更新系统设置
---
## ❌ 缺失接口列表
### 1. 学校管理员端 - 班级 (SchoolClassController)
前端调用但 Java 后端缺失:
-`DELETE /api/v1/school/classes/{id}/teachers/{teacherId}` - 移除班级教师
-`DELETE /api/v1/school/classes/{id}/students/{studentId}` - 移除班级学生
Java 后端已有:
-`POST /api/v1/school/classes/{id}/teachers` - 分配教师到班级
-`POST /api/v1/school/classes/{id}/students` - 分配学生到班级
### 2. 学校管理员端 - 学生 (SchoolStudentController)
前端调用但 Java 后端缺失:
-`POST /api/v1/school/students/import` - 批量导入学生
-`GET /api/v1/school/students/import/template` - 获取导入模板
---
## 总结
绝大部分接口已经在 Java 后端实现,仅剩以下缺失接口需要补全:
### P0 - 核心功能缺失(必须补全)
暂无
### P1 - 重要功能缺失
暂无
### P2 - 辅助功能缺失
暂无
---
## 本次补全的接口
### 1. 学校管理员端 - 班级 (SchoolClassController)
新增接口:
-`DELETE /api/v1/school/classes/{id}/teachers/{teacherId}` - 移除班级教师
-`DELETE /api/v1/school/classes/{id}/students/{studentId}` - 移除班级学生
新增 Service 方法 (ClassService)
- `void removeTeacher(Long classId, Long teacherId)`
- `void removeStudent(Long classId, Long studentId)`
### 2. 学校管理员端 - 学生 (SchoolStudentController)
新增接口:
-`POST /api/v1/school/students/import` - 批量导入学生
-`GET /api/v1/school/students/import/template` - 获取导入模板
新增 Service 方法 (StudentService)
- `List<Student> importStudents(Long tenantId, List<StudentCreateRequest> requests)`
### 3. 学校统计接口 (SchoolStatsController + SchoolStatsService)
新增接口:
-`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` - 获取课时趋势(最近 N 个月)
-`GET /api/v1/school/stats/course-distribution` - 获取课程分布统计(饼图数据)
新增 Service 方法 (SchoolStatsService)
- `List<Map<String, Object>> getActiveTeachers(Long tenantId, Integer limit)`
- `List<Map<String, Object>> getCourseUsageStats(Long tenantId)`
- `List<Map<String, Object>> getRecentActivities(Long tenantId, Integer limit)`
- `List<Map<String, Object>> getLessonTrend(Long tenantId, Integer months)`
- `List<Map<String, Object>> getCourseDistribution(Long tenantId)`
- `String formatActivityTitle(Lesson lesson)` - 私有方法,格式化活动标题
---
## 最终结论
**前端实际调用的所有接口已在 Java 后端全部实现。**