修复:补齐收益明细广告网络来源 #179
Reference in New Issue
Block a user
Delete Branch "codex/ad-revenue-detail-adn"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
本次改动
ad_session_id回填展示侧 ADN用户 + trace_id + eCPM候选网络唯一时安全回填验证
专项测试 4 passed,覆盖不同 ADN 明细及唯一/歧义回填场景。
🤖 review-pr 深审结论
🟢 通过,质量高 — 从展示记录回填发奖记录缺失的 ADN,归因谨慎、有测试。
核心设计:发奖记录(S2S 回调 / 历史信息流)常缺实际填充 ADN,用同 user 的展示记录
AdEcpmRecord回填。关键是宁缺勿错:_unique_ad_source仅在候选指向唯一 ADN 时回填,多候选(歧义)→ 留空不猜,避免错误归因。一个看似不对称、实则正确的点:激励视频回填(
impression_by_session)直接按(user_id, ad_session_id)取、未做唯一性检查,信息流则做了。查证数据模型后确认这是对的 ——AdEcpmRecord.ad_session_id有唯一约束uq_ad_ecpm_record_session,激励视频每次一个唯一 session;信息流一整场复用同一 session(多条),故只有信息流需要唯一性检查 +(trace_id, ecpm)回退。其它:每条
sub_rewards/reward_detail各自保留自己的 ADN(聚合父行可能多 ADN),配对前端 #81;批量IN查询、无 N+1;测试覆盖唯一 vs 歧义、每条明细独立 ADN。小 nit(非阻断):激励视频回填无「多展示」测试 —— 不过
ad_session_id唯一约束已保证不会多条,实际不需要,仅测试对称性。review-pr 自动深审 · 完整仓 worktree 上下文