Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 39s
- 新增系统称号模板与效果配置表及相关CRUD接口 - 实现用户称号分配与抽奖效果应用逻辑 - 优化抽奖接口支持用户ID参数以应用称号效果 - 新增称号管理前端页面与分配功能 - 修复Windows时区错误与JSON字段初始化问题 - 移除无用管理接口代码并更新文档说明
41 lines
2.3 KiB
Markdown
41 lines
2.3 KiB
Markdown
# 奖品双倍头衔设计补充
|
||
|
||
## 目标
|
||
- 为“头衔”新增一种权益:抽奖命中后有一定概率将奖励倍数提升(默认双倍)。
|
||
|
||
## 模型与配置
|
||
- `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道具卡)相乘并≤总封顶。
|
||
- 封顶与每日上限有效;审计记录完整。
|
||
|
||
确认后,我将把该效果纳入头衔体系的实现与抽奖流程接入。 |