fix(ad): eCPM 上报撞会话唯一约束不再抛 500,按全局口径兜底去重 #85

Merged
marco merged 1 commits from fix/ad-ecpm-dedup-500 into main 2026-06-27 22:42:58 +08:00
Member

create_ecpm_record 撞 uq_ad_ecpm_record_session(只含 ad_session_id、全局唯一)
时,改用与约束同口径的全局查找 _find_by_session_global(仅按 ad_session_id)兜底,
并去掉末尾的 raise。原逻辑兜底用带 user_id 的 find_by_session:不同 user 上报了
同一 ad_session_id 时二次查找仍为 None → raise → 接口 500,违背该接口
best-effort / fire-and-forget 约定(丢一两条不影响业务,穿山甲后台才是结算权威)。
find_by_session 签名与行为不变,另两个调用方(ad_reward、ad.py)不受影响。

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

create_ecpm_record 撞 uq_ad_ecpm_record_session(只含 ad_session_id、全局唯一) 时,改用与约束同口径的全局查找 _find_by_session_global(仅按 ad_session_id)兜底, 并去掉末尾的 raise。原逻辑兜底用带 user_id 的 find_by_session:不同 user 上报了 同一 ad_session_id 时二次查找仍为 None → raise → 接口 500,违背该接口 best-effort / fire-and-forget 约定(丢一两条不影响业务,穿山甲后台才是结算权威)。 find_by_session 签名与行为不变,另两个调用方(ad_reward、ad.py)不受影响。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
zhuzihao added 1 commit 2026-06-27 22:19:49 +08:00
create_ecpm_record 撞 uq_ad_ecpm_record_session(只含 ad_session_id、全局唯一)
时,改用与约束同口径的全局查找 _find_by_session_global(仅按 ad_session_id)兜底,
并去掉末尾的 raise。原逻辑兜底用带 user_id 的 find_by_session:不同 user 上报了
同一 ad_session_id 时二次查找仍为 None → raise → 接口 500,违背该接口
best-effort / fire-and-forget 约定(丢一两条不影响业务,穿山甲后台才是结算权威)。
find_by_session 签名与行为不变,另两个调用方(ad_reward、ad.py)不受影响。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
marco merged commit b4c27f4d88 into main 2026-06-27 22:42:58 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WonderableAI/shaguabijia-app-server#85