# 前端实际调用但 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 importStudents(Long tenantId, List 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> getActiveTeachers(Long tenantId, Integer limit)` - `List> getCourseUsageStats(Long tenantId)` - `List> getRecentActivities(Long tenantId, Integer limit)` - `List> getLessonTrend(Long tenantId, Integer months)` - `List> getCourseDistribution(Long tenantId)` - `String formatActivityTitle(Lesson lesson)` - 私有方法,格式化活动标题 --- ## 最终结论 **前端实际调用的所有接口已在 Java 后端全部实现。**