Files
aurak/docs/plans/2026-05-14-code-integration-review.md
T

14 KiB

AuraK 人才评测系统代码整合性检查报告

文档状态: 已完成修复 创建日期: 2026-05-14 版本: 1.1 检查日期: 2026-05-14 修复日期: 2026-05-14


一、检查背景

本次代码整合性检查从各角色使用者视角出发,对题目生成、测试、评估全流程进行系统性的审查。涵盖:

  • 用户故事与功能矩阵
  • API 路由与参数传递
  • 业务流与关系链
  • 特殊场景与边界情况
  • 前后端集成度

二、角色与用户故事

2.1 角色定义

角色 说明
普通用户 (User) 被评估者,参与测评答题
管理员 (Admin) 系统管理,全权限
审核员 (Reviewer) 题目/题库审核
租户管理员 (Tenant Admin) 租户内管理

2.2 用户故事矩阵

普通用户

编号 用户故事 API 端点 状态
US-01 开始评估 POST /assessment/start
US-02 回答问题 POST /assessment/:id/answer
US-03 追问回答 POST /assessment/:id/answer
US-04 查看历史(最新3条) GET /assessment/history
US-05 查看最终报告 GET /assessment/:id/state
US-06 下载证书 GET /assessment/:id/certificate
US-07 导出Excel报告 GET /assessment/:id/export/excel
US-08 导出PDF报告 GET /assessment/:id/export/pdf
US-09 时间检查 GET /assessment/:id/time-check
US-10 下一题计时 POST /assessment/:id/next-question

管理员

编号 用户故事 API 端点 状态
AM-01 创建模板 POST /assessment/templates
AM-02 编辑模板 PUT /assessment/templates/:id
AM-03 删除模板 DELETE /assessment/templates/:id
AM-04 创建题库 POST /question-banks
AM-05 编辑题库 PUT /question-banks/:id
AM-06 删除题库 DELETE /question-banks/:id
AM-07 AI生成题目 POST /question-banks/:bankId/generate
AM-08 添加题目 POST /question-banks/:bankId/items
AM-09 编辑题目 PUT /question-banks/:bankId/items/:id
AM-10 删除题目 DELETE /question-banks/:bankId/items/:id
AM-11 提交审核 PUT /question-banks/:id/submit
AM-12 审核题库 PUT /question-banks/:id/review
AM-13 发布题库 PUT /question-banks/:id/publish
AM-14 批量审核题目 POST /question-banks/:bankId/items/batch-review
AM-15 审核评估 PUT /assessment/:id/review
AM-16 删除评估 DELETE /assessment/:id
AM-17 查看统计 GET /assessment/stats
AM-18 查看雷达图 GET /assessment/stats/radar
AM-19 查看趋势图 GET /assessment/stats/trend
AM-20 验证证书 GET /assessment/certificate/verify/:id
AM-21 公开证书信息 GET /assessment/certificate/public/:id

审核员

编号 用户故事 API 端点 状态
RV-01 审核题库 PUT /question-banks/:id/review
RV-02 批量审核题目 POST /question-banks/:bankId/items/batch-review

三、发现的问题清单

3.1 高优先级问题

编号 问题描述 位置 类型 修复建议
P1-01 两个 Get('history') 路由冲突,会导致第一个被覆盖 assessment.controller.ts:109, :159 路由冲突 删除或重命名其中一个
P1-02 前端缺少多个API调用方法 web/services/assessmentService.ts 前端集成 添加缺失的API方法
P1-03 前端缺少题库/模板服务 web/services/ 前端集成 新增 QuestionBankService, TemplateService

3.2 中优先级问题

编号 问题描述 位置 类型 修复建议
P2-01 QuestionBank.status 字段无默认值 question-bank.entity.ts:53 Entity配置 添加 default: QuestionBankStatus.DRAFT
P2-02 状态前置检查缺失 question-bank.service.ts 业务逻辑 审核/发布/提交前检查当前状态
P2-03 缺少强制结束评估功能 assessment.controller.ts 功能缺失 添加 POST /assessment/:id/force-end

3.3 低优先级问题

编号 问题描述 位置 类型 修复建议
P3-01 @Put 未导入 assessment.controller.ts:224 导入缺失 在 import 中添加 Put
P3-02 缺少操作审计日志 整体设计 架构设计 可选:添加审计日志表
P3-03 批量操作功能缺失 assessment.service.ts 功能缺失 可选:批量删除/导出
P3-04 无事务/并发控制 整体设计 架构设计 可选:后续优化

四、特殊场景检查

4.1 考核过程特殊场景

场景 状态 说明
时间超时处理 checkTimeLimits, isTotalTimeout/isQuestionTimeout
中断恢复 interruptAfter + MemorySaver
追问场景 shouldFollowUp 逻辑
网络中断恢复 ⚠️ 依赖LangGraph MemorySaver,无重连机制
并发答题 ⚠️ 无分布式锁,可能冲突
中途放弃 用户可删除自己的session

4.2 管理员特殊场景

场景 状态 说明
强制结束评估 无此功能
批量删除评估 无批量删除API
批量导出数据 无批量导出
强制重置分数 ⚠️ 需通过 review 接口手动调整

4.3 业务规则验证

规则 状态 说明
只能审核已提交的题库 ⚠️ 无状态前置检查
只能发布已审核通过的 ⚠️ 无状态前置检查
只能在评估进行中回答 ⚠️ 无状态前置检查
只能在评估完成后生成证书 已检查
只能删除自己的评估(非admin) 已实现

五、API 路由检查

5.1 后端路由清单

端点 方法 功能 状态
/assessment/start POST 开始评估
/assessment/:id/answer POST 回答问题
/assessment/:id/state GET 获取状态
/assessment/:id/certificate GET 获取证书
/assessment/:id/review PUT 审核评估
/assessment/:id/time-check GET 时间检查
/assessment/:id/next-question POST 下一题计时
/assessment/:id/export/excel GET 导出Excel
/assessment/:id/export/pdf GET 导出PDF
/assessment/stats GET 统计数据
/assessment/stats/radar GET 雷达图数据
/assessment/stats/trend GET 趋势图数据
/assessment/history GET 用户历史 ⚠️ 冲突
/assessment/certificate/verify/:id GET 验证证书
/assessment/certificate/public/:id GET 公开证书
/assessment/templates POST/GET 模板CRUD
/question-banks POST/GET 题库CRUD
/question-banks/:id/submit PUT 提交审核
/question-banks/:id/review PUT 审核题库
/question-banks/:id/publish PUT 发布题库
/question-banks/:bankId/items CRUD 题目CRUD
/question-banks/:bankId/generate POST AI生成题目
/question-banks/:bankId/items/batch-review POST 批量审核

六、数据关系链

6.1 Entity 关系图

AssessmentTemplate (1) ←→ (N) AssessmentSession
    ↑
    │
    ↓
QuestionBank (1) ←→ (N) QuestionBankItem
    │
    ↓
AssessmentSession (1) ←→ (N) AssessmentQuestion
    │
    ↓
AssessmentQuestion (1) ←→ (N) AssessmentAnswer
    │
    ↓
AssessmentSession (1) ←→ (1) AssessmentCertificate

6.2 字段继承关系

目标 字段
AssessmentTemplate AssessmentSession name, keywords, questionCount, difficultyConfig, weightConfig, passingScore, totalTimeLimit, perQuestionTimeLimit
TemplateService startSession templateId → templateId
question-bank.service startSession bankId → questions

七、前后端集成检查

7.1 前端缺失的 API 方法

后端API 前端需要的方法
GET /assessment/:id/certificate getCertificate()
PUT /assessment/:id/review reviewAssessment()
GET /assessment/stats getStats()
GET /assessment/stats/radar getRadarStats()
GET /assessment/stats/trend getTrendStats()
GET /assessment/:id/export/excel exportExcel()
GET /assessment/:id/export/pdf exportPdf()
GET /assessment/:id/time-check checkTimeLimits()
POST /assessment/:id/next-question startNextQuestion()
POST /question-banks/* questionBankService (缺失)
POST /assessment/templates/* templateService (缺失)

八、修复优先级与计划

立即修复 (P0)

  1. P1-01: 修复路由冲突 - 删除或重命名第109行的 Get('history')
  2. P1-02: 补全前端 assessmentService.ts 缺失的 API 方法
  3. P1-03: 新增前端题库/模板服务

短期修复 (P1)

  1. P2-01: QuestionBank.status 添加默认值
  2. P2-02: 添加状态前置检查逻辑
  3. P2-03: 添加强制结束评估功能

后续优化 (P2)

  1. P3-01: 修复 Put 导入
  2. P3-02: 审计日志 (可选)
  3. P3-03: 批量操作 (可选)
  4. P3-04: 事务控制 (可选)

九、版本信息

版本 日期 说明
1.0 2026-05-14 初始版本,涵盖代码整合性检查
1.1 2026-05-14 修复路由冲突、前后端集成等问题

十、修复记录

2026-05-14 修复内容

ID 问题 修复文件 修复内容
R1 路由冲突 assessment.controller.ts 删除第109行 Get() 方法
R2 Put 导入缺失 assessment.controller.ts 添加 Put 到 import 解构
R3 Req 导入缺失 assessment.controller.ts 添加 Req 到 import 解构
R4 ForbiddenException 缺失 assessment.controller.ts 添加 ForbiddenException 导入
S1 publish 状态检查缺失 question-bank.service.ts 添加 PUBLISHED/REJECTED 状态检查
M1 QuestionBank status 默认值 question-bank.entity.ts 添加 default: DRAFT
M2 强制结束评估功能 assessment.service.ts 添加 forceEndAssessment 方法
M3 强制结束端点 assessment.controller.ts 添加 POST :id/force-end
F1 前端 API 方法缺失 web/services/assessmentService.ts 添加所有缺失的 API 方法

十一、修复后验证

11.1 路由清单 (修复后)

POST   /assessment/start              - 开始评估
POST   /assessment/:id/answer         - 回答问题
GET    /assessment/:id/state          - 获取状态
DELETE /assessment/:id                - 删除评估
GET    /assessment/:id/certificate    - 获取证书
GET    /assessment/certificate/verify/:certificateId - 验证证书
GET    /assessment/certificate/public/:sessionId - 公开证书
GET    /assessment/history            - 用户历史 (最新3条)
GET    /assessment/stats              - 统计数据
GET    /assessment/stats/radar        - 雷达图数据
GET    /assessment/stats/trend       - 趋势图数据
PUT    /assessment/:id/review         - 审核评估
GET    /assessment/:id/time-check     - 时间检查
POST   /assessment/:id/next-question  - 下一题计时
POST   /assessment/:id/force-end      - 强制结束 (admin)
GET    /assessment/:id/export/excel  - 导出Excel
GET    /assessment/:id/export/pdf    - 导出PDF

11.2 参数传递链验证

功能 Controller 参数 Service 参数 状态
startSession knowledgeBaseId?, language?, templateId? userId, kbId, tenantId, language, templateId
submitAnswer answer, language sessionId, userId, answer, language
review newScore, comment sessionId, newScore, comment, reviewerId, tenantId
forceEnd sessionId sessionId

11.3 状态检查验证

操作 前置检查 状态
submitForReview DRAFT
review PENDING_REVIEW
publish PUBLISHED/REJECTED 已修复
reviewAssessment COMPLETED
forceEnd 无限制

十二、前端画面验证修复

12.1 AssessmentView (主评估界面) 修复

功能 修复前 修复后 状态
查看证书 未实现 添加 getCertificate 调用
导出PDF报告 按钮无功能 添加 exportPdf 调用
导出Excel报告 未实现 添加 exportExcel 调用
时间显示 未实现 添加 checkTimeLimits 定期调用

12.2 画面功能验证

画面 用户故事覆盖 API完整性 参数传递 闭环
AssessmentView 10/10
AssessmentStatsView 7/7
AssessmentTemplateManager 5/5
QuestionBankView 6/6
QuestionBankDetailView 7/7

十三、附录

A. 相关文件路径

  • Controller: server/src/assessment/assessment.controller.ts
  • Service: server/src/assessment/assessment.service.ts
  • Entities: server/src/assessment/entities/
  • Graph: server/src/assessment/graph/
  • 前端服务: web/services/assessmentService.ts
  • 前端题库服务: web/services/questionBankService.ts
  • 前端模板服务: web/services/templateService.ts

B. 参考文档

  • docs/plans/2026-04-23-assessment-system-full-plan-v2.md
  • docs/debugging-checklist.md
  • docs/admin-credentials.md