这些审计记录原本堆积在 docs/audit/changes/changes/ 嵌套误产物目录下(由开发机迁移
79d3c2e 前后的不明批量操作产生)。由于同期 .gitignore 屏蔽了 docs/audit/ 全目录,
它们从未入过 git 任何分支 history。删除即永久丢失。
按 docs/specs/audit-gap-recovery/tasks.md 阶段 1 执行,将全部 96 份 D 类孤本
(主目录无同名、git history 亦无记录)复制到 docs/audit/changes/ 主目录入仓。
涵盖主题: P1-P18 全栈集成 / 多模块累积变更 / ETL bug 修复 / 业务日切 /
召回与任务引擎改造 / 租户管理与审批 / 董事会财务 / 客户与助教详情 /
DDL 基线合并 / Kiro 到 Claude Code 迁移
阶段 2(B 类内容漂移 1 份)和阶段 4(嵌套目录删除)独立推进。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
48 lines
2.0 KiB
Markdown
48 lines
2.0 KiB
Markdown
# 变更审计记录:助教等级映射硬编码修复(P2-9)
|
||
|
||
| 字段 | 值 |
|
||
|------|-----|
|
||
| 日期 | 2026-03-19 |
|
||
| 关联问题 | P2-9(RNS1 系列审计遗留项) |
|
||
| 违反规则 | feiqiu-data-rules 规则 6:等级名称禁止硬编码 |
|
||
|
||
## 操作摘要
|
||
|
||
`fdw_queries.py` 中两处 `_level_map = {1: "junior", 2: "middle", 3: "senior", 4: "star"}` 硬编码存在双重问题:
|
||
1. 违反 feiqiu-data-rules 规则 6(等级必须从配置表读取)
|
||
2. 映射值域完全错误——`v_dim_assistant.level` 实际值为 8/10/20/30/40,硬编码的 1/2/3/4 永远匹配不上,所有助教的 level 字段始终返回空字符串
|
||
|
||
## 改动方案
|
||
|
||
### 新增函数
|
||
- `get_level_map(conn, site_id)` — 从 `app.v_cfg_assistant_level_price` 动态读取 `level_code → level_name` 映射,查询失败返回空 dict
|
||
|
||
### 修改函数
|
||
- `get_assistant_info()` — 删除硬编码 `_level_map`,改用 `get_level_map()` 动态查询
|
||
- `get_all_assistants()` — 同上
|
||
|
||
### 验证
|
||
- 配置表实际数据:`{8: "助教管理", 10: "初级", 20: "中级", 30: "高级", 40: "星级"}`
|
||
- `v_dim_assistant.level` 实际值域:8(1), 10(35), 20(34), 30(6), 40(4)
|
||
|
||
## 影响范围
|
||
|
||
| 接口 | 影响 |
|
||
|------|------|
|
||
| BOARD-1 助教看板 | `get_all_assistants()` 返回的 level 从空字符串变为中文等级名 |
|
||
| COACH-1 助教详情 | `get_assistant_info()` 返回的 level 从空字符串变为中文等级名 |
|
||
| 前端 | 需确认前端是否依赖英文 level 值(junior/middle/senior/star)做逻辑判断 |
|
||
|
||
## 风险评估
|
||
|
||
- 风险等级:低
|
||
- level 字段之前始终返回空字符串(映射不上),现在返回中文名称,是功能修正而非破坏性变更
|
||
- 降级机制:配置表查询失败返回空 dict,level 字段回退为空字符串(与修复前行为一致)
|
||
|
||
## 文件清单
|
||
|
||
| 文件 | 操作 |
|
||
|------|------|
|
||
| `apps/backend/app/services/fdw_queries.py` | 修改(新增 `get_level_map()`,修改 2 处调用) |
|
||
| `docs/audit/changes/2026-03-19__level-map-hardcode-fix.md` | 新增(本文件) |
|