# 每日签到接口

**daily_checkin**

每日签到的 `list` / `detail` / `claim` 走通用活动接口（`kind=daily_checkin`，详见 [活动接口](400_promotion.md)）。周期为连续签到的天数窗口，断签或周期结束自动开新周期。等级按近 7 日滚动有效投注计算，同日签到后升档可补领差额；同档或降档不能重复领取。

> 详情及红点中的近 7 日滚动投注（`cycle_bet_amount` / `level` / `can_be_collected`）由「前 6 个自然日」与「今日」两段合成：前 6 日投注最多滞后约 15 分钟，今日投注最多滞后约 10 秒；领取接口始终按实时投注判定，不受影响。

---

## 活动详情字段 {#detail}

通用接口 `GET /promotion/daily_checkin/detail` 的 `data` 字段：

字段 | 类型 | 说明
---|---|---
content | string | 活动说明
bet_multiple | number | 打码倍数
level_thresholds | list<number\> | 等级阈值（按本周期累计 `valid_bet` 命中等级 1～6）
rewards | list<number\>\> | 奖励矩阵 `rewards[level-1][day_index]`
can_be_collected | bool | 是否可立即签到（启用 + 近 7 日滚动有效投注达到等级 1 以上 + 当前等级高于今日已领取最高等级）。同日签到后升档可补领；活动入口红点使用此最新字段
level | number | 当前等级（1～6）
day_index | number | 本次将要写入的日索引（从 0 开始）
cycle_start_date | string | 本周期起点自然日（`2006-01-02`）
cycle_bet_amount | number | 本周期累计有效投注（用于等级判定）
today_bet_amount | number | 今日有效投注
today_claimed_level | number | 本周期当日已领取的最高等级；未领取为 `0`
claimed_days | list<number\> | 本周期已签的 `day_index` 列表

---

## 状态码

`gamePayload` 返回 `status` 字段：

- `0` 无（默认）
- `1` 今日可签（仍受"今日有投注"约束）
- `2` 今日已签

---

## 签到 {#claim}

通用接口 `POST /promotion/daily_checkin/claim`。

**输入:** `{}`

**输出:**

字段 | 类型 | 说明
---|---|---
amount | number | 首次领取为 `rewards[level-1][day_index]`；同日升档补领为当前等级奖励减去当日已领最高等级奖励，最低为 `0`
level | number | 实际入账等级
day_index | number | 本次签到的日索引
cycle_start_date | string | 本周期起点（`2006-01-02`）
