chore(audit): 补追 96 份未入仓审计孤本 — 覆盖 2026-02-26 ~ 2026-04-08

这些审计记录原本堆积在 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>
This commit is contained in:
Neo
2026-04-20 06:35:42 +08:00
parent 80bda9b991
commit 14a12342b5
96 changed files with 9521 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
# 变更审计记录助教等级映射硬编码修复P2-9
| 字段 | 值 |
|------|-----|
| 日期 | 2026-03-19 |
| 关联问题 | P2-9RNS1 系列审计遗留项) |
| 违反规则 | 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 字段之前始终返回空字符串(映射不上),现在返回中文名称,是功能修正而非破坏性变更
- 降级机制:配置表查询失败返回空 dictlevel 字段回退为空字符串(与修复前行为一致)
## 文件清单
| 文件 | 操作 |
|------|------|
| `apps/backend/app/services/fdw_queries.py` | 修改(新增 `get_level_map()`,修改 2 处调用) |
| `docs/audit/changes/2026-03-19__level-map-hardcode-fix.md` | 新增(本文件) |