feat(backend): F1-6 sprint2 #1 60d 消费迁移到 sandbox_replay

迁移 fdw_queries.get_consumption_60d 到 sandbox_replay.consumption_replay,
沿用 sprint 1 模式: @trace_service + @runtime_aware decorator + 显式
stat_date <= ctx.business_date 上界(与视图过滤双保险),fdw_queries 改
thin wrapper 保持 customer_service 2 处调用兼容。

双口径走查 PASS(member=2799207087163141 黄先生):
- 4a live(today=2026-05-05): 小程序 stat 卡条 60天消费 ¥115(consume_amount_60d=115.36)
- 4b sandbox=2026-04-20: 小程序 stat 卡条 60天消费 ¥89(walkthrough 测试快照 88.88)

unit test sprint1+sprint2 累计 15/15 PASS,无回归。

详见 docs/audit/changes/2026-05-06__f1_6_sprint2_consumption_60d.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Neo
2026-05-06 00:27:13 +08:00
parent 9f1e35d71a
commit d418621951
6 changed files with 212 additions and 35 deletions

View File

@@ -1,16 +1,19 @@
# 审计一览表
> 自动生成于 2026-05-05 22:20:03,请勿手动编辑。
> 自动生成于 2026-05-06 00:23:40,请勿手动编辑。
## 时间线视图
| 日期 | 项目 | 需求摘要 | 变更类型 | 影响模块 | 风险 | 详情 |
|------|------|----------|----------|----------|------|------|
| 2026-05-06 | 项目级 | 2026-05-06 · F1-6 Sprint 2 #1 — 60 天消费迁移到 sandbox_replay | 清理 | 其他 | 未知 | [链接](changes/2026-05-06__f1_6_sprint2_consumption_60d.md) |
| 2026-05-05 | 项目级 | 2026-05-05 · F1-6 Sprint 1 沙箱时光机引擎启动 + get_last_visit_days 试点迁移 | bugfix | 其他 | 未知 | [链接](changes/2026-05-05__f1_6_sprint1_sandbox_replay_kickoff.md) |
| 2026-05-05 | 项目级 | 2026-05-05 — Wave 1 F1-5a 完整走查(应查尽查版) | bugfix | 其他 | 未知 | [链接](changes/2026-05-05__wave1_f1_5a_backend_walkthrough.md) |
| 2026-05-05 | 项目级 | Wave 1 F1-5a — 沙箱 batch-run 接入 runtime_context(MVP + 漂移防御核心) | bugfix | 其他 | 未知 | [链接](changes/2026-05-05__wave1_f1_5a_sandbox_batch_run.md) |
| 2026-05-05 | 项目级 | 2026-05-05 · F1-5b A6 ETL 连接显式 client_encoding=UTF8 防御 | bugfix | 其他 | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_a6_etl_conn_utf8.md) |
| 2026-05-05 | 项目级 | 2026-05-05 · F1-5b BE-1 task-list 403 根因定位 + 修复(B 方案) | bugfix | 其他 | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_be1_task_list_403_root_cause.md) |
| 2026-05-05 | 项目级 | 2026-05-05 · F1-5b BE-3 ai_run_logs runtime 写入回归测试 | 功能 | 其他 | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_be3_run_log_runtime_regression.md) |
| 2026-05-05 | 项目级 | 2026-05-05 · F1-5b D1-D4 P20 SPEC 同步 + audit dashboard 刷新 | 文档 | 其他 | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_d1234_spec_sync.md) |
| 2026-05-05 | 项目级 | 2026-05-05 · F1-5b MP-1 board-finance 储值充值字段复核(false alarm) | bugfix | 其他 | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_mp1_recharge_field_clarification.md) |
| 2026-05-05 | 项目级 | 2026-05-05 · F1-5b MP-2 准备工作 + 沙箱时光机模块 spec | bugfix | 其他 | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_mp2_prep.md) |
| 2026-05-05 | 项目级 | 2026-05-05 · F1-5b MP-3 customer-detail lastService 业务日上界裁剪 | bugfix | 其他 | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_mp3_lastservice_upper_bound.md) |
@@ -286,11 +289,14 @@
| 日期 | 需求摘要 | 变更类型 | 影响模块 | 风险 | 详情 |
|------|----------|----------|----------|------|------|
| 2026-05-06 | 2026-05-06 · F1-6 Sprint 2 #1 — 60 天消费迁移到 sandbox_replay | 清理 | 其他 | 未知 | [链接](changes/2026-05-06__f1_6_sprint2_consumption_60d.md) |
| 2026-05-05 | 2026-05-05 · F1-6 Sprint 1 沙箱时光机引擎启动 + get_last_visit_days 试点迁移 | bugfix | 其他 | 未知 | [链接](changes/2026-05-05__f1_6_sprint1_sandbox_replay_kickoff.md) |
| 2026-05-05 | 2026-05-05 — Wave 1 F1-5a 完整走查(应查尽查版) | bugfix | 其他 | 未知 | [链接](changes/2026-05-05__wave1_f1_5a_backend_walkthrough.md) |
| 2026-05-05 | Wave 1 F1-5a — 沙箱 batch-run 接入 runtime_context(MVP + 漂移防御核心) | bugfix | 其他 | 未知 | [链接](changes/2026-05-05__wave1_f1_5a_sandbox_batch_run.md) |
| 2026-05-05 | 2026-05-05 · F1-5b A6 ETL 连接显式 client_encoding=UTF8 防御 | bugfix | 其他 | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_a6_etl_conn_utf8.md) |
| 2026-05-05 | 2026-05-05 · F1-5b BE-1 task-list 403 根因定位 + 修复(B 方案) | bugfix | 其他 | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_be1_task_list_403_root_cause.md) |
| 2026-05-05 | 2026-05-05 · F1-5b BE-3 ai_run_logs runtime 写入回归测试 | 功能 | 其他 | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_be3_run_log_runtime_regression.md) |
| 2026-05-05 | 2026-05-05 · F1-5b D1-D4 P20 SPEC 同步 + audit dashboard 刷新 | 文档 | 其他 | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_d1234_spec_sync.md) |
| 2026-05-05 | 2026-05-05 · F1-5b MP-1 board-finance 储值充值字段复核(false alarm) | bugfix | 其他 | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_mp1_recharge_field_clarification.md) |
| 2026-05-05 | 2026-05-05 · F1-5b MP-2 准备工作 + 沙箱时光机模块 spec | bugfix | 其他 | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_mp2_prep.md) |
| 2026-05-05 | 2026-05-05 · F1-5b MP-3 customer-detail lastService 业务日上界裁剪 | bugfix | 其他 | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_mp3_lastservice_upper_bound.md) |
@@ -455,11 +461,14 @@
| 日期 | 需求摘要 | 变更类型 | 风险 | 详情 |
|------|----------|----------|------|------|
| 2026-05-06 | 2026-05-06 · F1-6 Sprint 2 #1 — 60 天消费迁移到 sandbox_replay | 清理 | 未知 | [链接](changes/2026-05-06__f1_6_sprint2_consumption_60d.md) |
| 2026-05-05 | 2026-05-05 · F1-6 Sprint 1 沙箱时光机引擎启动 + get_last_visit_days 试点迁移 | bugfix | 未知 | [链接](changes/2026-05-05__f1_6_sprint1_sandbox_replay_kickoff.md) |
| 2026-05-05 | 2026-05-05 — Wave 1 F1-5a 完整走查(应查尽查版) | bugfix | 未知 | [链接](changes/2026-05-05__wave1_f1_5a_backend_walkthrough.md) |
| 2026-05-05 | Wave 1 F1-5a — 沙箱 batch-run 接入 runtime_context(MVP + 漂移防御核心) | bugfix | 未知 | [链接](changes/2026-05-05__wave1_f1_5a_sandbox_batch_run.md) |
| 2026-05-05 | 2026-05-05 · F1-5b A6 ETL 连接显式 client_encoding=UTF8 防御 | bugfix | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_a6_etl_conn_utf8.md) |
| 2026-05-05 | 2026-05-05 · F1-5b BE-1 task-list 403 根因定位 + 修复(B 方案) | bugfix | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_be1_task_list_403_root_cause.md) |
| 2026-05-05 | 2026-05-05 · F1-5b BE-3 ai_run_logs runtime 写入回归测试 | 功能 | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_be3_run_log_runtime_regression.md) |
| 2026-05-05 | 2026-05-05 · F1-5b D1-D4 P20 SPEC 同步 + audit dashboard 刷新 | 文档 | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_d1234_spec_sync.md) |
| 2026-05-05 | 2026-05-05 · F1-5b MP-1 board-finance 储值充值字段复核(false alarm) | bugfix | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_mp1_recharge_field_clarification.md) |
| 2026-05-05 | 2026-05-05 · F1-5b MP-2 准备工作 + 沙箱时光机模块 spec | bugfix | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_mp2_prep.md) |
| 2026-05-05 | 2026-05-05 · F1-5b MP-3 customer-detail lastService 业务日上界裁剪 | bugfix | 未知 | [链接](changes/2026-05-05__wave1_f1_5b_mp3_lastservice_upper_bound.md) |