# 评分治理基础模块 验收记录 > 日期:2026-08-20 · 状态:✅ 已验收(Docker/MySQL 黑盒 PASS=48 · FAIL=0 · SKIP=0) ## 1. Flyway V25 迁移结果 - 最新成功迁移 **V25(candidate scoring governance,success=1)** ✅ - H2(测试)与 MySQL(运行库)均已成功应用。 ## 2. 四张治理表 - `candidate_scoring_appeals`(`uk_csa_active` active_key 唯一、`uk_csa_idem` idempotency_key 唯一、dimension/status CHECK) - `candidate_scoring_appeal_history`(含 actor_role) - `candidate_scoring_snapshot_history`(回滚前后 score/version/rulesVersion) - `candidate_scoring_rollback_limits`(`rollback_year`,UNIQUE(student_user_id, rollback_year)) ## 3. 黑盒结果 **PASS=48 · FAIL=0 · SKIP=0**(Docker/MySQL 真实环境) - 学生:申诉→PENDING、列表/详情、history 脱敏、同幂等键同体重放 200、不同体 409/8607、同维度同周期 409/8602、撤销→CANCELLED、重复撤销 409/8606 - 管理员:列表、REJECT 缺 reason 400/8604、APPROVE→APPROVED、重复 APPROVE 幂等、终态改决定 409/8603、回滚→ROLLED_BACK、重复回滚幂等、history 顺序 PENDING→APPROVED→ROLLED_BACK - 回滚限流:3 次后第 4 次 409/8605,rollback_limits 计数保持 3 - 快照审计:afterVersion = beforeVersion + 1,rulesVersion 正确 - 权限:COMPANY 全 403/2002、STUDENT 访问 admin 403/2002、跨学生 403、未登录 401 - 数据隔离:jobs/applications/offers/candidate_feedback/student_profiles/student_preferences 零改动 - 回归:既有 6 个评分接口均 HTTP 200 ## 4. OpenAPI 路径数 **95 paths**(静态 docs/openapi-rc.json 与运行时 /v3/api-docs 一致;治理新增 8 paths / 9 operations,POST+GET 共享 /appeals) ## 5. 权限矩阵 | 接口 | 未登录 | STUDENT | COMPANY | ADMIN | |---|---|---|---|---| | 申诉 1–4 | 401 | ✅ 本人 | 403 | 403 | | 历史(8) | 401 | ✅ 本人(脱敏) | 403 | ✅ 全量 | | admin 5/6/7/9 | 401 | 403 | 403 | ✅ | ## 6. 回滚前后快照审计 `candidate_scoring_snapshot_history` 记录 action=ROLLBACK、before/after score、before/after version、before/after rules_version;`afterVersion = beforeVersion + 1`。 ## 7. 年度回滚上限 每学生每自然年 ≤3 次;`SELECT ... FOR UPDATE` 悲观锁串行化并发;第 4 次稳定 409/8605,计数不超额。 ## 8. 已修复缺陷(验收中发现) 1. **学生详情泄露 `reviewerId`**:AppealResponse 对 reviewerId 误加 `@JsonInclude(ALWAYS)`(学生端 null 也被序列化)。修复:移除 ALWAYS,null 由全局 NON_NULL 省略。复验:学生响应不含 reviewerId/actorUserId/phone/email/passwordHash/resumeUrl ✅ 2. **快照 afterVersion 读到持久化上下文旧值**(before=after)。修复:afterVersion 确定性计算 `= beforeVersion + 1`(或 0)。复验:before=1、after=2 ✅ ## 9. 备注 未删除业务数据;未修改 V1–V24;未修改已验收接口。治理数据仅写入 4 张治理表 + candidate_dimension_scores 新版本 + audit_logs。