# 小游戏测试报告样本

用于说明报告格式及字段提取规则。

## 报告示例

```
=== 保底抽奖完整测试报告 ===
项目: 小游戏测试
用户: 12274（1）| market: wechat
活动: 蜜桃冻冻 | act_id: 32 | 活动中心id: 886
活动配置id: guaranteed_turntable_32
活动入口id: 10489
活动时间: 2025-04-29 06:00:00 ~ 2026-04-23 23:59:59
代币道具: item_id=140213 | item_type=27
苹果兑换比例: 10苹果 = 1代币

【用户校验】✅
【活动校验】✅

【抽奖明细】
第1次  2026-04-14 15:20:07  金币  花费:1代币  type:1  item_id:0  奖励数量:300
第2次  2026-04-14 15:20:23  一滩薯饼  花费:3代币  type:12  item_id:21458  奖励数量:1
第3次  2026-04-14 15:20:45  蛇崽一败涂地  花费:8代币  type:30  item_id:50427  奖励数量:1
第4次  2026-04-14 15:27:08  爱吃瓜子  花费:12代币  type:12  item_id:21457  奖励数量:1
第5次  2026-04-14 15:28:00  蜜桃甜心  花费:24代币  type:31  item_id:60317  奖励数量:1
第6次  2026-04-14 15:28:10  心愿瓶  花费:68代币  type:28  item_id:0  奖励数量:5
第7次  2026-04-14 15:28:20  彩虹泡泡  花费:98代币  type:26  item_id:30323  奖励数量:1
第8次  2026-04-14 15:28:30  娃娃币  花费:140代币  type:17  item_id:0  奖励数量:300
第9次  2026-04-14 15:28:30  蜜桃冻冻  花费:140代币  type:2  item_id:12679  奖励数量:1

【结论】共抽 9 次 | 奖池已抽完 ✅ | 大奖保底未触发 ❌（Apollo big_reward type=42 深海之歌未出现）| 奖品不重复 ✅
==============================
```

## 字段提取规则

| 字段 | 报告原文 | 提取值 |
|------|---------|--------|
| 项目 | `项目: 小游戏测试` | 小游戏测试 → project_id=13 |
| 用户 ID | `用户: 12274（1）` | 12274（括号内数字为序号，忽略） |
| market | `market: wechat` | wechat |
| **#account_id** | 用户 + market 拼接 | `wechat_12274` |
| act_id | `act_id: 32` | 32（可作为 activity_id 参考） |
| 活动入口id | `活动入口id: 10489` | 10489（对应埋点中的 activity_id） |
| 代币 item_id | `代币道具: item_id=140213` | 140213 |
| 代币 item_type | `代币道具: item_type=27` | 27 |
| 苹果兑换比例 | `10苹果 = 1代币` | 苹果数 = 代币数 × 10 |

## #account_id 拼接规则（小游戏专用）

```
#account_id = {market}_{用户ID}
示例：wechat_12274
```

## 抽奖明细字段说明

| 字段 | 含义 | 对应埋点属性 |
|------|------|------------|
| 时间 | 抽奖发生时间 | `#event_time` |
| `花费:N代币` | 本次消耗代币数 | `cost_amount` |
| `type:N` | 奖励类型 | `item_type` / `currency_type` |
| `item_id:N` | 奖励道具 ID | `reward_id` |
| `奖励数量:N` | 奖励获得数量 | `reward_num` |

---

## 预期事件取数规则

### 1. ActivityLottery（每次抽奖触发一条）

| 属性 | 取值规则 |
|------|---------|
| `#event_time` | 抽奖明细中的时间戳 |
| `#account_id` | `{market}_{用户ID}`，示例：`wechat_12274` |
| `item_id` | 代币道具的 item_id（报告头部 `代币道具: item_id=N`） |
| `cost_amount` | 本次抽奖花费的代币数（`花费:N代币`） |
| `reward_id` | 奖励道具的 item_id（`item_id:N`，无道具时为 0） |
| `item_type` | 奖励道具的类型（`type:N`） |
| `reward_num` | 奖励数量（`奖励数量:N`） |

### 2. CurrencyConsume + ActivityCurrencyGain（每次抽奖消耗代币时触发）

抽奖消耗代币 → 需先兑换苹果为代币，两个事件配套出现：

| 事件 | 属性 | 取值规则 |
|------|------|---------|
| `CurrencyConsume` | `amount` | 本次抽奖花费的苹果数 = `cost_amount × 苹果兑换比例`（示例：花费 10 代币 → 消耗 100 苹果） |
| `ActivityCurrencyGain` | `item_id` | 代币道具的 item_id |
| `ActivityCurrencyGain` | `amount` | 本次抽奖花费的代币数（`cost_amount`） |

### 3. 获得奖励事件（根据奖励 type 分流）

| 奖励 type | 触发事件 | 属性取值 |
|----------|---------|---------|
| `1` / `7` / `18` | `CurrencyGain` | `amount` = 奖励数量；`currency_type` = 奖励 type |
| `15` / `17` / `19` / `28` | `ActivityCurrencyGain` | `item_id` = 奖励 item_id（无道具则为 0）；`amount` = 奖励数量 |
| 其他 type | `GoodsGain` | `item_id` = 奖励 item_id；`item_type` = 奖励 type；`item_name` = 奖励名称；`amount` = 奖励数量 |

---

## 示例：按抽奖明细推导预期事件

以报告示例第1次抽奖为例：
> 第1次  2026-04-14 15:20:07  金币  花费:1代币  type:1  item_id:0  奖励数量:300

| 事件 | 预期属性 |
|------|---------|
| `ActivityLottery` | `#event_time`=2026-04-14 15:20:07, `#account_id`=wechat_12274, `item_id`=140213, `cost_amount`=1, `reward_id`=0, `item_type`=1, `reward_num`=300 |
| `CurrencyConsume` | `amount`=10（1代币 × 10） |
| `ActivityCurrencyGain` | `item_id`=140213, `amount`=1 |
| `CurrencyGain` | `amount`=300, `currency_type`=1（type=1 属于货币类） |

以第6次抽奖为例：
> 第6次  2026-04-14 15:28:10  心愿瓶  花费:68代币  type:28  item_id:0  奖励数量:5

| 事件 | 预期属性 |
|------|---------|
| `ActivityLottery` | `#event_time`=2026-04-14 15:28:10, `#account_id`=wechat_12274, `item_id`=140213, `cost_amount`=68, `reward_id`=0, `item_type`=28, `reward_num`=5 |
| `CurrencyConsume` | `amount`=680（68代币 × 10） |
| `ActivityCurrencyGain`（消耗代币） | `item_id`=140213, `amount`=68 |
| `ActivityCurrencyGain`（获得奖励） | `item_id`=0, `amount`=5（type=28 属于 ActivityCurrencyGain 分流） |

以第3次抽奖为例：
> 第3次  2026-04-14 15:20:45  蛇崽一败涂地  花费:8代币  type:30  item_id:50427  奖励数量:1

| 事件 | 预期属性 |
|------|---------|
| `ActivityLottery` | `#event_time`=2026-04-14 15:20:45, `#account_id`=wechat_12274, `item_id`=140213, `cost_amount`=8, `reward_id`=50427, `item_type`=30, `reward_num`=1 |
| `CurrencyConsume` | `amount`=80（8代币 × 10） |
| `ActivityCurrencyGain`（消耗代币） | `item_id`=140213, `amount`=8 |
| `GoodsGain` | `item_id`=50427, `item_type`=30, `item_name`=蛇崽一败涂地, `amount`=1（其他 type 走 GoodsGain） |
