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

17 KiB
Raw Blame History

前端实际调用但 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 后端全部实现。