Files
Neo-ZQYY/docs/audit/changes/2026-03-19__level-map-hardcode-fix.md
Neo 14a12342b5 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>
2026-04-20 06:35:42 +08:00

48 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 变更审计记录助教等级映射硬编码修复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` | 新增(本文件) |