kindergarten_java/前端实际调用接口对比.md

347 lines
17 KiB
Markdown
Raw Normal View 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 后端全部实现。**