# 奖品双倍头衔设计补充

## 目标
- 为“头衔”新增一种权益：抽奖命中后有一定概率将奖励倍数提升（默认双倍）。

## 模型与配置
- `system_title_effects.effect_type = DRAW_REWARD_DOUBLE_CHANCE`
- `params_json` 示例：
  - `multiplier_x1000`: 2000（默认2x，允许配置3x等）
  - `chance_x1000`: 150（表示15%）
  - `max_multiplier_cap_x1000`: 3000（总倍数上限，例如≤3x）
  - `limit_per_day`: null 或数值（每日最多触发次数）
  - `applicable_activities/issues`: 作用范围限定列表
- 叠加策略：
  - 概率合并：`p_total = 1 - Π(1 - p_i)`，并设置上限（如≤50%）。
  - 倍数合并：与其他“奖励倍数”效果（如道具卡）相乘，最终倍数受 `max_multiplier_cap_x1000` 封顶。

## 抽奖流程接入
- 触发点：`DRAW_EXECUTE` 阶段，在完成“中奖项选择”之后执行一次“是否倍增”的伯努利试验。
- 步骤：
  1. EffectEngine 汇总用户激活头衔的 `DRAW_REWARD_DOUBLE_CHANCE`，计算 `p_total` 与期望倍数（通常为2x）。
  2. 使用抽奖同一随机源或受控RNG进行试验，命中则将当前中奖奖励按倍数提升。
  3. 将结果写入 `activity_draw_effects.reward_multiplier_x1000`，并记录 `source_type=TITLE`、`source_id=title_id`、命中与否、概率参数。
  4. 回执与发奖按倍数后的值结算（库存/道具类型按现有规则处理）。

## 审计与风控
- 落盘：在抽奖效果表记录每次试验的参数与结果，便于复核与分析。
- 上限：概率与倍数均受可配置总封顶约束，防止过度放大。
- 并发：同一抽奖回合仅进行一次合并后的试验，避免重复计算。

## 管理端与前端
- 管理端在“头衔效果”配置表单中提供：倍数、概率、封顶、作用范围、每日上限等字段。
- 用户端抽奖页面展示“我的双倍概率与倍数”提示；在中奖结果处标注“头衔加成（双倍）”。

## 测试与验收
- 用例：
  - 单头衔15%双倍 → 约15%回合出现倍增且倍数=2x。
  - 多头衔概率合并（10%与20%）→ 总概率约28%，倍数与其他倍数效果（如1.5x道具卡）相乘并≤总封顶。
  - 封顶与每日上限有效；审计记录完整。

确认后，我将把该效果纳入头衔体系的实现与抽奖流程接入。