- 新增学校通知控制器 (SchoolNotificationController) - 新增任务模板创建/更新请求 DTO - 新增日程计划创建和模板应用请求 DTO - 新增 TokenService 服务实现 - 新增多个服务实现类 (AdminStats, CourseLesson, CoursePackage 等) - 添加数据库迁移脚本 V7__fix_schedule_plans.sql - 更新配置文件和依赖 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
17 KiB
17 KiB
前端实际调用但 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 后端全部实现。