一、模块定位
冠军皮肤奖励模块是足球季活动的惊喜奖励,激励用户在活动期间坚持学习并参与投票。助威球队最终夺冠且完课达标的用户,100% 获得专属冠军皮肤装扮。
关于活动整体背景和全局规则,请见 足球季活动全局。
二、功能需求清单
2.1 冠军皮肤展示
- 活动页面展示冠军皮肤预览图,激发用户参与动力
- 奖品上明确标注提示文案:"需完课10次"
- 明确告知获取条件,让用户了解"努力 + 运气"的双重机制
2.2 我的奖品列表展示
- 在"我的奖品"列表中,冠军皮肤始终显示(活动开始即展示)
- 未达标状态下,冠军皮肤置灰显示(不可用状态)
- 置灰的冠军皮肤下方展示两个条件的完成进度:
| 条件 | 展示形式 | 说明 |
|---|
| 条件1:助威球队夺冠 | 文字状态 | 显示"助威球队夺冠"或"助威球队未夺冠" |
| 条件2:完课数 | 进度条 | 显示当前完课数/目标数(如 "7/10"),配合进度条可视化 |
- 当两个条件均满足时,冠军皮肤变为正常显示(非置灰),标记为已获得
2.3 获取条件判定
用户需同时满足以下两个条件才能获得冠军皮肤:
| 条件 | 说明 |
|---|
| 条件一:完课达标 | 活动期间累计完课 ≥ 10 节(多学科累计计算) |
| 条件二:投中冠军 | 活动期间至少有一次投票投给了最终夺冠的球队 |
- 条件1判定逻辑:只要用户在活动期间任意一天助威过某支球队,该球队最终夺冠,且用户完课 ≥ 10 次,即可获得皮肤
- 完课数据从其他系统获取,详见 完课数据模块
- 投票数据来自本系统投票记录,详见 投票模块
2.4 奖励发放
- 冠军皮肤不通过抽奖获得,而是活动结束后系统自动判定达标用户
- 皮肤不限制总数,所有达标用户均可获得
- 达标用户名单由系统导出,由后端同事手动发放装扮
- 详见 发奖与数据导出模块
三、业务规则与约束
3.1 条件判定规则
| 规则 | 说明 |
|---|
| 完课计算范围 | 活动期间(6 月 15 日 - 7 月 20 日)内的完课数据 |
| 完课学科 | 多学科累计计算,不限单一学科 |
| 完课阈值 | 累计完课 ≥ 10 节(即至少 10 节) |
| 投票判定范围 | 活动期间任意一天投过冠军球队即满足 |
| 是否需连续完课 | 不需要连续,累计即可 |
| 进度条展示 | 完课数 < 10 时显示进度条,达到 10 后显示已达标 |
3.2 前置条件
- 用户必须在活动期间有投票记录
- 完课数据由外部系统提供,存在数据延迟风险
3.3 边界场景
| 场景 | 处理方式 |
|---|
| 用户完课恰好 10 节 | 达标(需 ≥ 10 节) |
| 用户投过多支球队,其中包含冠军队 | 满足条件(只要有一次投中即可) |
| 完课数据因延迟未及时更新 | 活动结束后统一结算,以最终数据为准 |
| 用户从未投票但完课达标 | 不发放(两个条件缺一不可) |
| 用户投中冠军但完课 0 节 | 不发放 |
| 用户完课达标但球队未夺冠 | 不发放,置灰显示未达标原因 |
| 活动期间用户每天都换球队投票 | 只要其中有一支球队最终夺冠即可 |