356d6e52b9
签到加成(boost): - 新增 signin_boost_record 表(user+date 唯一)+ POST /api/v1/signin/boost - signin 状态/结算逻辑调整 信息流广告结算: - 新增 ad_feed_reward_record 表(client_event_id 幂等)+ POST /api/v1/ad/feed-reward - ad_feed_reward 模型/repo、ad schema、按 ecpm/时长结算金币 金币数值:core/rewards.py 数值调整、config_schema/admin config 适配 迁移 coin_reward_phase1(down_revision pstat3growth);测试 + API/DB 文档同步 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.2 KiB
1.2 KiB
ad_feed_reward_record — 信息流广告奖励记录
点位 2 的奖励记录。每条记录对应客户端完成的一次信息流广告展示/播放事件。
字段
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
id |
Integer | PK | 自增主键 |
client_event_id |
String(64) | UNIQUE, NOT NULL | 客户端幂等事件 id |
user_id |
Integer | FK → user.id, index, NOT NULL |
用户 |
reward_date |
String(10) | index, NOT NULL | 北京时间日期 YYYY-MM-DD |
duration_seconds |
Integer | NOT NULL | 实际展示/播放秒数 |
unit_count |
Integer | NOT NULL | duration_seconds // 10 得到的奖励份数 |
ecpm_raw |
String(32) | NOT NULL | 客户端上报 eCPM 原始值 |
adn |
String(32) | nullable | 实际投放 ADN |
slot_id |
String(64) | nullable | 实际展示代码位 |
coin |
Integer | NOT NULL | 实发金币,capped 时为 0 |
status |
String(16) | NOT NULL | granted / capped |
created_at |
DateTime | index, NOT NULL | 创建时间 |
约束
UNIQUE(client_event_id):同一完成事件重试不重复发奖。
关联
- 入账时写
coin_transaction.biz_type=feed_ad_reward,ref_id=client_event_id。