Neo
d418621951
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>
2026-05-06 00:27:13 +08:00
..
2026-05-05 15:14:29 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-04-20 06:32:07 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-02-19 08:35:13 +08:00
2026-04-20 06:32:07 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:39:13 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:35:42 +08:00
2026-04-06 01:05:06 +08:00
2026-04-20 06:35:42 +08:00
2026-04-20 06:32:58 +08:00
2026-05-04 02:30:19 +08:00
2026-04-20 06:32:58 +08:00
2026-04-20 06:48:27 +08:00
2026-05-04 02:30:19 +08:00
2026-05-04 02:30:19 +08:00
2026-05-04 02:30:19 +08:00
2026-05-04 02:30:19 +08:00
2026-04-22 21:56:46 +08:00
2026-05-02 03:11:39 +08:00
2026-05-04 02:30:19 +08:00
2026-05-04 02:30:19 +08:00
2026-05-04 02:30:19 +08:00
2026-05-02 03:11:39 +08:00
2026-05-03 21:08:13 +08:00
2026-05-04 02:30:19 +08:00
2026-05-04 07:36:20 +08:00
2026-05-04 09:46:27 +08:00
2026-05-05 00:30:10 +08:00
2026-05-04 07:42:51 +08:00
2026-05-04 08:10:57 +08:00
2026-05-04 08:12:12 +08:00
2026-05-04 09:54:35 +08:00
2026-05-05 23:53:19 +08:00
2026-05-05 11:53:08 +08:00
2026-05-05 03:01:48 +08:00
2026-05-05 22:11:43 +08:00
2026-05-05 18:43:35 +08:00
2026-05-05 19:17:19 +08:00
2026-05-05 22:21:24 +08:00
2026-05-05 18:43:54 +08:00
2026-05-05 22:12:22 +08:00
2026-05-05 18:43:08 +08:00
2026-05-05 19:17:02 +08:00
2026-05-05 18:43:08 +08:00
2026-05-05 19:17:19 +08:00
2026-05-05 19:16:47 +08:00
2026-05-05 19:16:47 +08:00
2026-05-05 15:01:51 +08:00
2026-05-05 02:03:43 +08:00
2026-05-05 02:03:20 +08:00
2026-05-06 00:27:13 +08:00