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

@@ -33,10 +33,12 @@ F1-6 沙箱时光机阶段 B 启动模块。
from app.services.sandbox_replay._decorator import runtime_aware
from app.services.sandbox_replay.consumption_replay import (
get_consumption_60d as get_consumption_60d_replay,
get_last_visit_days as get_last_visit_days_replay,
)
__all__ = [
"runtime_aware",
"get_last_visit_days_replay",
"get_consumption_60d_replay",
]