kindergarten_java/docs/前后端接口对齐分析报告.md
En e501e17403 feat: 完善学校统计报告、资源服务及实体类字段
主要变更:
1. 新增学校报告服务 (SchoolReportService)
   - 学校概览统计 (getOverviewStats)
   - 教师统计报表 (getTeacherStats)
   - 课程统计报表 (getCourseStats)
   - 学生统计报表 (getStudentStats)
   - 课时趋势分析 (getLessonTrend)

2. 新增学校端 Controller
   - SchoolReportController: 学校统计报告接口
   - SchoolResourceController: 学校资源管理接口
   - SchoolFeedbackController: 学校反馈管理接口

3. 完善实体类字段
   - CourseLesson: 添加 lessonOrder 字段
   - ResourceItem: 添加 tenantId、type 字段
   - Task: 添加 name 字段
   - LessonFeedback: 添加 courseId、tenantId、overallRating 字段

4. 完善服务层实现
   - ResourceServiceImpl: 实现资源库和资源项管理方法
   - SchoolReportServiceImpl: 实现学校统计报表逻辑
   - TeacherDashboardServiceImpl: 修复时间类型转换
   - AdminStatsServiceImpl: 完善统计逻辑

5. 新增 Flyway 迁移脚本 (V2)
   - 添加 ORM 实体类缺失字段的数据库迁移

6. 修复路由冲突
   - 移除 AdminCourseController 中重复的 getCourseLessons 方法

7. 添加测试工具类
   - CheckDatabase, CheckClazzTable: 数据库检查工具
   - InitDatabase, InitClasses: 数据初始化工具
   - GeneratePasswordHash: 密码哈希生成工具

8. 配置 Maven Wrapper
   - 添加 maven-wrapper.properties 和 mvnw.cmd
   - 确保使用 Java 17 编译
2026-03-11 16:21:22 +08:00

21 KiB
Raw Permalink Blame History

前后端接口对齐分析报告

分析日期: 2026-03-11 分析范围: 旧后端 (NestJS) vs 新后端 (Spring Boot)


执行摘要

接口总体状态

角色 旧后端接口数 新后端接口数 已实现 缺失 完成率
教师端 ~35 ~32 30 5 86%
学校端 ~60 ~55 50 10 83%
家长端 6 6 6 0 100%
管理员端 ~20 ~18 16 4 80%
总计 ~121 ~111 102 19 84%

更新说明 (2026-03-11)

经过全面检查,发现新后端已经实现了绝大部分接口,原分析报告中的"缺失"接口实际上大多已经实现。

已实现但原报告标记为缺失的接口:

教师端:

  • 成长档案 (TeacherGrowthController) - 已实现
  • 通知管理 (TeacherNotificationController) - 已实现
  • 课表管理 (TeacherScheduleController) - 已实现
  • 任务统计 - 已实现
  • 任务模板 - 已实现

学校端:

  • 成长档案 (SchoolGrowthController) - 已实现
  • 通知管理 (SchoolNotificationController) - 已实现
  • 操作日志 (SchoolOperationLogController) - 已实现
  • 统计接口 (SchoolStatsController) - 已实现
  • 导出功能 (SchoolExportController) - 已实现
  • 课表模板 - 已实现

家长端:

  • 成长档案 (ParentGrowthController) - 已实现
  • 通知管理 (ParentNotificationController) - 已实现

管理员端:

  • 租户管理 (AdminTenantController) - 已实现
  • 课程管理 (AdminCourseController) - 已实现
  • 课程包管理 (AdminCoursePackageController) - 已实现
  • 资源管理 (AdminResourceController) - 已实现
  • 主题管理 (AdminThemeController) - 已实现
  • 统计接口 (AdminStatsController) - 已实现

详细接口对比

一、教师端接口对比

已实现接口 (20 个)

接口路径 方法 功能 状态
/api/v1/teacher/dashboard GET 仪表盘概览
/api/v1/teacher/dashboard/today GET 今日课表
/api/v1/teacher/dashboard/weekly GET 本周课时
/api/v1/teacher/courses GET 课程列表
/api/v1/teacher/courses/{id} GET 课程详情
/api/v1/teacher/courses/classes GET 教师的班级
/api/v1/teacher/courses/students GET 教师所有学生
/api/v1/teacher/lessons GET 课时列表
/api/v1/teacher/lessons/{id} GET/PUT 课时详情/更新
/api/v1/teacher/lessons/{id}/start POST 开始课时
/api/v1/teacher/lessons/{id}/finish POST 结束课时
/api/v1/teacher/lessons/{id}/cancel POST 取消课时
/api/v1/teacher/lessons/{lessonId}/students/{studentId}/record POST 保存学生评价
/api/v1/teacher/lessons/{lessonId}/student-records GET 获取学生评价
/api/v1/teacher/lessons/{lessonId}/student-records/batch POST 批量保存评价
/api/v1/teacher/lessons/{lessonId}/feedback GET/POST 课程反馈
/api/v1/teacher/tasks GET/POST 任务列表/创建
/api/v1/teacher/tasks/{id} GET/PUT/DELETE 任务详情/更新/删除
/api/v1/teacher/tasks/{taskId}/completions/{studentId} PUT 更新任务完成状态
/api/v1/teacher/tasks/stats GET 任务统计
/api/v1/teacher/tasks/stats/by-type GET 按类型统计
/api/v1/teacher/tasks/stats/by-class GET 按班级统计
/api/v1/teacher/tasks/stats/monthly GET 月度统计
/api/v1/teacher/tasks/{id}/completions GET 任务完成记录
/api/v1/teacher/tasks/task-templates GET 任务模板列表
/api/v1/teacher/tasks/task-templates/{id} GET 模板详情
/api/v1/teacher/tasks/task-templates/default/{taskType} GET 默认模板
/api/v1/teacher/tasks/from-template POST 从模板创建任务

缺失接口 (11 个)

接口路径 方法 功能 优先级
/api/v1/teacher/dashboard/recommend GET 推荐课程
/api/v1/teacher/dashboard/lesson-trend GET 课时趋势
/api/v1/teacher/dashboard/course-usage GET 课程使用情况
/api/v1/teacher/lessons/{id}/complete POST 完成课时 (alternative)
/api/v1/teacher/notifications GET 通知列表
/api/v1/teacher/notifications/{id} GET/DELETE 通知详情/删除
/api/v1/teacher/notifications/{id}/read PUT 标记通知已读
/api/v1/teacher/notifications/unread-count GET 未读通知数
/api/v1/teacher/notifications/read-all POST 全部标记已读
/api/v1/teacher/growth-records GET/POST 成长记录列表/创建
/api/v1/teacher/growth-records/{id} GET/PUT/DELETE 成长记录详情/更新/删除
/api/v1/teacher/schedules GET 排课列表
/api/v1/teacher/schedules/{id} GET/PUT/DELETE 排课详情/更新/删除
/api/v1/teacher/schedules/timetable GET 课表视图
/api/v1/teacher/schedules/today GET 今日课表
/api/v1/teacher/classes/{classId}/tasks GET 班级任务
/api/v1/teacher/feedbacks GET 反馈列表
/api/v1/teacher/feedbacks/stats GET 反馈统计
/api/v1/teacher/tasks/upcoming GET 即将到期任务
/api/v1/teacher/tasks/{id}/remind POST 发送提醒

二、学校端接口对比

已实现接口 (15 个)

接口路径 方法 功能 状态
/api/v1/school/teachers GET 教师列表
/api/v1/school/students GET 学生列表
/api/v1/school/classes GET 班级列表
/api/v1/school/classes/{id}/students GET 班级学生
/api/v1/school/classes/{id}/teachers GET 班级教师
/api/v1/school/classes/{id}/teachers POST 添加班级教师
/api/v1/school/classes/{id}/teachers/{teacherId} PUT/DELETE 更新/移除班级教师
/api/v1/school/students/{id}/transfer POST 学生调班
/api/v1/school/students/{id}/history GET 调班历史
/api/v1/school/courses GET 课程列表
/api/v1/school/tasks GET 任务列表
/api/v1/school/schedules GET/POST 课表列表/创建
/api/v1/school/schedules/{id} PUT/DELETE 更新/取消课表
/api/v1/school/settings GET/PUT 设置管理
/api/v1/school/stats/dashboard GET 仪表盘统计

缺失接口 (45 个)

接口路径 方法 功能 优先级
/api/v1/school/teachers/{id} GET/PUT/DELETE 教师详情/更新/删除
/api/v1/school/teachers POST 创建教师
/api/v1/school/teachers/{id}/reset-password POST 重置教师密码
/api/v1/school/students/{id} GET/PUT/DELETE 学生详情/更新/删除
/api/v1/school/students POST 创建学生
/api/v1/school/students/import POST 批量导入学生
/api/v1/school/students/import/template GET 导入模板
/api/v1/school/classes/{id} GET/PUT/DELETE 班级详情/更新/删除
/api/v1/school/classes POST 创建班级
/api/v1/school/parents GET/POST 家长列表/创建
/api/v1/school/parents/{id} GET/PUT/DELETE 家长详情/更新/删除
/api/v1/school/parents/{id}/reset-password POST 重置家长密码
/api/v1/school/parents/{parentId}/children/{studentId} POST/DELETE 绑定/解绑孩子
/api/v1/school/courses/{id} GET 课程详情
/api/v1/school/schedules/timetable GET 课表视图
/api/v1/school/schedules/{id} GET 排课详情
/api/v1/school/schedules/batch POST 批量创建排课
/api/v1/school/schedule-templates GET/POST 排课模板列表/创建
/api/v1/school/schedule-templates/{id} GET/PUT/DELETE 模板详情/更新/删除
/api/v1/school/schedule-templates/{id}/apply POST 应用排课模板
/api/v1/school/tasks/stats GET 任务统计
/api/v1/school/tasks/stats/by-type GET 按类型统计
/api/v1/school/tasks/stats/by-class GET 按班级统计
/api/v1/school/tasks/stats/monthly GET 月度统计
/api/v1/school/tasks/{id} GET 任务详情
/api/v1/school/tasks/{id}/completions GET 任务完成记录
/api/v1/school/tasks POST 创建任务
/api/v1/school/tasks/{id} PUT/DELETE 更新/删除任务
/api/v1/school/tasks/{taskId}/completions/{studentId} PUT 更新任务完成状态
/api/v1/school/tasks/{id}/remind POST 发送提醒
/api/v1/school/task-templates GET/POST 任务模板列表/创建
/api/v1/school/task-templates/{id} GET/PUT/DELETE 模板详情/更新/删除
/api/v1/school/task-templates/default/{taskType} GET 默认模板
/api/v1/school/tasks/from-template POST 从模板创建任务
/api/v1/school/feedbacks GET 反馈列表
/api/v1/school/feedbacks/stats GET 反馈统计
/api/v1/school/operation-logs GET 操作日志
/api/v1/school/operation-logs/stats GET 日志统计
/api/v1/school/stats/teachers GET 教师统计
/api/v1/school/stats/lesson-trend GET 课时趋势
/api/v1/school/stats/courses GET 课程统计
/api/v1/school/export/students GET 导出学生数据
/api/v1/school/export/teachers GET 导出教师数据
/api/v1/school/export/lessons GET 导出课时数据
/api/v1/school/export/growth-records GET 导出成长记录
/api/v1/school/growth-records GET/POST 成长记录列表/创建
/api/v1/school/growth-records/{id} GET/PUT/DELETE 成长记录详情/更新/删除
/api/v1/school/notifications GET/POST 通知列表/创建
/api/v1/school/notifications/{id} GET/PUT/DELETE 通知详情/更新/删除
/api/v1/school/notifications/{id}/read PUT 标记通知已读
/api/v1/school/notifications/unread-count GET 未读通知数
/api/v1/school/notifications/read-all POST 全部标记已读
/api/v1/school/resource-libraries GET 资源库列表
/api/v1/school/resource-items GET 资源项列表
/api/v1/school/course-packages GET/POST/PUT/DELETE 课程包管理
/api/v1/school/tenant-courses GET/POST/PUT/DELETE 校本课程管理

三、家长端接口对比

已实现接口 (4 个)

接口路径 方法 功能 状态
/api/v1/parent/children GET 孩子列表
/api/v1/parent/children/{id} GET 孩子详情
/api/v1/parent/children/{childId}/lessons GET 孩子课时
/api/v1/parent/children/{childId}/tasks GET 孩子任务
/api/v1/parent/children/{childId}/tasks/{taskId}/feedback PUT 提交任务反馈

缺失接口 (2 个)

接口路径 方法 功能 优先级
/api/v1/parent/children/{id}/growth-records GET 成长记录
/api/v1/parent/notifications GET 通知列表
/api/v1/parent/notifications/{id} GET/PUT 通知详情/已读
/api/v1/parent/notifications/unread-count GET 未读通知数
/api/v1/parent/notifications/read-all POST 全部标记已读

四、管理员端接口对比

已实现接口 (8 个)

接口路径 方法 功能 状态
/api/v1/admin/tenants GET 租户列表
/api/v1/admin/tenants/{id} GET/PUT/DELETE 租户详情/更新/删除
/api/v1/admin/tenants/{id}/status PUT 更新租户状态
/api/v1/admin/tenants/{id}/quota PUT 更新租户配额
/api/v1/admin/courses GET 系统课程列表
/api/v1/admin/course-packages GET 课程包列表
/api/v1/admin/resource-libraries GET 资源库列表
/api/v1/admin/themes GET 主题列表
/api/v1/admin/settings GET/PUT 系统设置
/api/v1/admin/stats/dashboard GET 仪表盘
/api/v1/admin/operation-logs GET 操作日志

缺失接口 (12 个)

接口路径 方法 功能 优先级
/api/v1/admin/courses/{id} GET/PUT/DELETE 课程详情/更新/删除
/api/v1/admin/courses POST 创建系统课程
/api/v1/admin/courses/{id}/approve POST 审批课程
/api/v1/admin/courses/{id}/publish POST 发布课程
/api/v1/admin/courses/{id}/unpublish POST 下架课程
/api/v1/admin/course-packages POST/PUT/DELETE 课程包管理
/api/v1/admin/resource-libraries POST 创建资源库
/api/v1/admin/themes POST 创建主题
/api/v1/admin/themes/{id} PUT 更新主题
/api/v1/admin/settings PUT 更新设置 已有
/api/v1/admin/stats/active-tenants GET 活跃租户
/api/v1/admin/stats/lesson-trend GET 课时趋势
/api/v1/admin/stats/popular-courses GET 热门课程
/api/v1/admin/stats/recent-activities GET 最近活动
/api/v1/admin/operation-logs/stats GET 日志统计

五、通用接口对比

已实现接口

接口路径 方法 功能 状态
/api/v1/auth/login POST 登录
/api/v1/auth/me GET 获取当前用户
/api/v1/files/upload POST 上传文件
/api/v1/files/delete POST/DELETE 删除文件

缺失接口

接口路径 方法 功能 优先级
/api/v1/auth/logout POST 登出
/api/v1/auth/change-password POST 修改密码
/api/v1/auth/profile GET/PUT 用户资料

优先级排序

P0 - 核心功能缺失(必须实现)

  1. 学校端 - 用户管理 CRUD

    • 教师/学生/家长的创建、更新、删除
    • 家长与孩子绑定/解绑
  2. 学校端 - 班级管理

    • 班级详情/创建/更新/删除
  3. 学校端 - 任务管理

    • 任务详情/创建/更新/删除
    • 任务完成状态更新
  4. 教师端 - 课表管理

    • 排课列表/详情/创建/更新/删除
    • 课表视图
  5. 管理员端 - 课程管理

    • 课程详情/创建/更新/删除
    • 课程审批流程

P1 - 重要功能缺失(优先实现)

  1. 学校端 - 排课模板

    • 模板列表/详情/创建/更新/删除
    • 应用排课模板
  2. 学校端 - 统计接口

    • 任务统计(总数、按类型、按班级、月度)
  3. 教师端 - 成长档案

    • 成长记录列表/创建/详情/更新/删除
  4. 学校端 - 通知管理

    • 通知列表/创建/详情/更新/删除
    • 标记已读/未读计数

P2 - 辅助功能缺失(后续实现)

  1. 学校端 - 导出功能

    • 导出学生/教师/课时/成长记录数据
  2. 学校端 - 操作日志

    • 日志列表/统计
  3. 教师端 - 反馈管理

    • 反馈列表/统计
  4. 管理员端 - 统计增强

    • 活跃租户/课时趋势/热门课程/最近活动

实施建议

阶段一:补充 P0 核心功能

  1. 学校端用户管理 - SchoolTeacherController, SchoolStudentController, SchoolParentController
  2. 学校端任务管理 - SchoolTaskController 补充
  3. 教师端课表管理 - TeacherScheduleController 补充
  4. 管理员端课程管理 - AdminCourseController 补充

阶段二:补充 P1 重要功能

  1. 学校端排课模板 - SchoolScheduleController 补充模板相关接口
  2. 学校端统计接口 - SchoolStatsController 补充
  3. 教师端成长档案 - TeacherGrowthController 补充
  4. 学校端通知管理 - SchoolNotificationController 补充

阶段三:补充 P2 辅助功能

  1. 学校端导出功能 - SchoolExportController 补充
  2. 学校端操作日志 - SchoolOperationLogController 补充
  3. 管理员端统计增强 - AdminStatsController 补充

api-spec.yml 状态

前端 api-spec.yml 文件中已定义了约 120+ 个接口路径,但新后端目前只实现了约 60 个接口。

需要补充的接口数量约 74 个,按优先级分布:

  • P0高优先级: 约 30 个
  • P1中优先级: 约 25 个
  • P2低优先级: 约 19 个

下一步行动

  1. 立即开始 - 补充 P0 核心功能接口
  2. 本周内 - 补充 P1 重要功能接口
  3. 下周 - 补充 P2 辅助功能接口
  4. 完成后 - 从新后端导出 OpenAPI 规范,更新前端 API 客户端

附录:新旧后端 Controller 文件对比

新后端 Controller 列表

controller/
├── admin/
│   ├── AdminCourseController.java
│   ├── AdminCourseLessonController.java
│   ├── AdminCoursePackageController.java
│   ├── AdminOperationLogController.java
│   ├── AdminResourceController.java
│   ├── AdminSettingsController.java
│   ├── AdminStatsController.java
│   ├── AdminTenantController.java
│   └── AdminThemeController.java
├── parent/
│   ├── ParentChildController.java
│   ├── ParentGrowthController.java
│   ├── ParentNotificationController.java
│   └── ParentTaskController.java
├── school/
│   ├── SchoolClassController.java
│   ├── SchoolCourseController.java
│   ├── SchoolCoursePackageController.java
│   ├── SchoolExportController.java
│   ├── SchoolGrowthController.java
│   ├── SchoolNotificationController.java
│   ├── SchoolOperationLogController.java
│   ├── SchoolParentController.java
│   ├── SchoolScheduleController.java
│   ├── SchoolSettingsController.java
│   ├── SchoolStudentController.java
│   ├── SchoolTaskController.java
│   ├── SchoolTeacherController.java
│   └── SchoolStatsController.java
├── teacher/
│   ├── TeacherCourseController.java
│   ├── TeacherCourseLessonController.java
│   ├── TeacherDashboardController.java
│   ├── TeacherGrowthController.java
│   ├── TeacherLessonController.java
│   ├── TeacherNotificationController.java
│   ├── TeacherScheduleController.java
│   ├── TeacherSchoolCourseController.java
│   └── TeacherTaskController.java
├── AuthController.java
└── FileUploadController.java

旧后端 Controller 列表

modules/
├── admin/
│   ├── admin-settings.controller.ts
│   ├── admin-stats.controller.ts
│   ├── admin-tenant.controller.ts
│   ├── admin-course.controller.ts
│   ├── admin-course-package.controller.ts
│   ├── admin-resource.controller.ts
│   └── admin-theme.controller.ts
├── auth/
│   └── auth.controller.ts
├── common/
│   └── operation-log.controller.ts
├── course/
│   └── course.controller.ts
├── course-lesson/
│   └── course-lesson.controller.ts
├── course-package/
│   └── course-package.controller.ts
├── export/
│   └── export.controller.ts
├── file-upload/
│   └── file-upload.controller.ts
├── growth/
│   └── growth.controller.ts
├── lesson/
│   └── lesson.controller.ts
├── notification/
│   └── notification.controller.ts
├── parent/
│   └── parent.controller.ts
├── resource/
│   └── resource.controller.ts
├── school/
│   ├── school.controller.ts (学校管理员主控制器)
│   ├── school-course.controller.ts
│   ├── school-settings.controller.ts
│   ├── school-stats.controller.ts
│   ├── export.controller.ts
│   └── package.controller.ts
├── task/
│   └── task.controller.ts
├── teacher-course/
│   └── teacher-course.controller.ts
├── tenant/
│   └── tenant.controller.ts
└── theme/
    └── theme.controller.ts