Files
Neo-ZQYY/docs/audit/changes/2026-02-14__api-ods-comparison-v3-fixed.md

72 lines
3.8 KiB
Markdown
Raw Permalink 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.
# 审计记录API vs ODS 比对 v3-fixed
## 基本信息
- 日期2026-02-14Asia/Shanghai
- Prompt-IDP20260214-003000
- 原始原因:用户 Prompt — "还是不准比如assistant_accounts_master助教账号主数据的last_update_name命名Json里就有再仔细比对下"
- 直接原因v3 比对仅从 JSON 样本提取字段JSON 样本是单条记录快照,可能缺少条件性返回的字段(如 `last_update_name`),导致误报为"ODS独有"。需改用 API 参考文档(.md的"响应字段详解"章节作为主要字段来源。
## 修改方案
完全重写 `scripts/run_compare_v3_fixed.py`
1. 从 .md 文档"四、响应字段详解"章节精确提取字段(排除请求参数、跨表关联等章节)
2. JSON 样本作为补充来源union
3. 对 settlement_records / recharge_settlements 的 siteProfile 子字段不提取ODS 中存为 siteprofile jsonb 单列)
4. 对 table_fee_discount_records 的 tableProfile/siteProfile 展开字段正确分类
5. 对 stock_goods_category_tree 的 categoryBoxes 正确识别为 ODS jsonb 列
6. 对所有 ODS 独有字段进行详细分类说明
## Changed
| 文件 | 变更类型 | 说明 |
|------|----------|------|
| `scripts/run_compare_v3_fixed.py` | 重写 | 完全重写字段提取和比对逻辑 |
| `docs/reports/api_ods_comparison_v3_fixed.json` | 新建 | JSON 格式比对结果 |
| `docs/reports/api_ods_comparison_v3_fixed.md` | 新建 | Markdown 格式比对报告 |
| `docs/ai_audit/prompt_log.md` | 追加 | 新增 P20260214-003000 条目 |
## 比对结论
- 22 张 ODS 表全部比对
- API 独有字段0所有 API 文档中的响应字段在 ODS 中都有对应列)
- ODS 独有字段51 列,分类如下:
- API 后续版本新增字段38 列(文档快照未覆盖,但 ODS 已通过 ETL 动态发现并入库)
- tableProfile/siteProfile 嵌套对象展开字段8 列table_fee_discount_records
- ODS 额外添加的 tenant_id2 列assistant_cancellation_records、payment_transactions
- ODS jsonb 列settlelist2 列settlement_records、recharge_settlements
- ODS 后续版本新增字段1 列site_tables_master.order_id
- 完全对齐表7 张assistant_accounts_master、refund_transactions、platform_coupon_redemption_records、stock_goods_category_tree、goods_stock_movements、goods_stock_summary、site_tables_master 除 order_id 外)
- 无需 ALTER TABLE
## Risk / Verify
- 风险:纯分析脚本和报告,无运行时影响,不修改数据库或 ETL 逻辑
- 验证:
1. 确认 `assistant_accounts_master``last_update_name` 被正确识别为匹配字段62:62 完全对齐)
2. 确认 API 独有字段总数为 0
3. 确认 ODS 独有字段全部有分类说明
## Change Impact Review
- 判定:**无逻辑改动**
- 本次变更为纯分析脚本(一次性工具)和报告文档,不涉及 ETL Connector、业务规则、数据处理逻辑、API 行为或数据库 schema
- 文档同步评估:
- `product.md` — 无需更新(产品功能未变)
- `tech.md` — 无需更新(技术栈未变)
- `structure.md` — 无需更新(目录结构未变,临时分析脚本不列入)
- `README.md` — 无需更新(运行方式未变)
- `docs/bd_manual/` — 无需更新(无表结构变更)
- `gui/README.md` / `scripts/` / `tasks/` / `database/` / `tests/` — 均无需更新
- 回归范围:无(纯分析产出,不影响任何运行时代码路径)
- 建议验证:`python scripts/run_compare_v3_fixed.py` 确认输出 API独有=0
<!--
AI_CHANGELOG:
- 日期: 2026-02-14
- Prompt: P20260214-003000 — v3 比对不准确,重写为 v3-fixed
- 直接原因: 创建审计记录
- 变更摘要: 新建审计记录文件,记录 v3-fixed 比对的完整变更信息
- 风险与验证: 纯文档,无运行时影响
-->