bindbox-game/.trae/documents/用户头衔体系与权益设计.md
邹方成 8141a47690
Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 39s
feat(称号系统): 新增称号管理功能与抽奖效果集成
- 新增系统称号模板与效果配置表及相关CRUD接口
- 实现用户称号分配与抽奖效果应用逻辑
- 优化抽奖接口支持用户ID参数以应用称号效果
- 新增称号管理前端页面与分配功能
- 修复Windows时区错误与JSON字段初始化问题
- 移除无用管理接口代码并更新文档说明
2025-11-16 11:37:40 +08:00

41 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 奖品双倍头衔设计补充
## 目标
- 为“头衔”新增一种权益:抽奖命中后有一定概率将奖励倍数提升(默认双倍)。
## 模型与配置
- `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道具卡)相乘并≤总封顶。
- 封顶与每日上限有效;审计记录完整。
确认后,我将把该效果纳入头衔体系的实现与抽奖流程接入。