Files
shaguabijia-app-server/docs/api/compare-milestone-claim.md
T
ouzhou da7ce69494 feat(ad): eCPM 上报接口 + 冷却策略解耦纯函数 + savings JSONB 跨库修复 (#8)
- 新增 POST /api/v1/ad/ecpm-report:激励视频展示后客户端上报本次 eCPM,落 ad_ecpm_record 做内部收益统计(model/repository/schema/alembic 迁移 + 接口文档)
- 看广告冷却策略抽到 app/core/ad_cooldown.py 纯函数;ad_reward.today_status 只取数据,换策略只改这一处
- savings.dishes 改 JSON().with_variant(JSONB,"postgresql"):SQLite 无 visit_JSONB 会让 create_all 编译崩,修复后测试套件恢复

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

---------

Co-authored-by: OuYingJun1024 <1034284404@qq.com>
Reviewed-on: #8
Co-authored-by: ouzhou <ouzhou@wonderable.ai>
Co-committed-by: ouzhou <ouzhou@wonderable.ai>
2026-06-01 22:23:15 +08:00

1.3 KiB
Raw Blame History

POST /api/v1/compare/milestones/{milestone}/claim — 领取比价战绩里程碑奖励

所属:比价记录组(前缀 /api/v1/compare | 鉴权:Bearer | ← 返回 API 索引

领取某一档(第 milestone 次)的金币奖励,真实入账金币钱包。领取记录写 comparison_milestone_claim((user_id, milestone) 唯一)+ grant_coins 同一事务原子提交, 每档只能领一次。进度口径见 milestones 进度接口

入参

  • 路径参数 milestone(int):档位序号,1..6(= RECORD_MILESTONES 长度)。

出参

响应 200

字段 类型 说明
milestone int 本次领取的档位序号
coin_awarded int 本次发放金币
coin_balance int 领奖后金币余额
{ "milestone": 1, "coin_awarded": 120, "coin_balance": 29087 }

错误

  • 401 未鉴权
  • 404 档位越界(unknown milestone,milestone < 1 或 > 档位总数)
  • 409 该档还没解锁(milestone locked,成功比价次数 < milestone)
  • 409 该档已领过(milestone already claimed)

说明

  • 领取金币后,客户端应刷新钱包余额(GET /api/v1/wallet/account)与本档状态。
  • 幂等:重复领同一档返回 409 且不会重复发金币(唯一约束 + 领取前查重)。