推进活动系统最小成品闭环与游客体验

This commit is contained in:
2026-04-07 19:05:18 +08:00
parent 1a6008449e
commit 6cd16f08dd
102 changed files with 16087 additions and 3556 deletions

View File

@@ -0,0 +1,292 @@
# 地图列表与默认体验活动方案
> 文档版本v1.0
> 最后更新2026-04-07 14:35:00
本文档用于定义“地图列表”这条产品线如何与现有活动系统协同工作,重点解决以下问题:
- 是否需要独立的地图列表入口
- 默认体验活动如何挂在地图/地点下
- 默认体验活动是否必须出现在正式活动列表
- 后台应如何支持这套关系
本文档的核心原则是:
**地图列表是体验入口层,不是第二套业务内核。**
也就是说:
- 正式业务主链仍然是 `Event -> Release -> Launch -> Session`
- 地图列表只是帮助用户从“地点/地图”进入默认体验活动
---
## 1. 总体结论
建议增加一条独立的:
- `地图列表`
它主要面向:
- 未注册用户
- 想快速试玩的用户
- 先看地点/地图,再决定是否体验的用户
但这条线不应重新发明一套“体验配置系统”,而应继续复用现有:
- `Event`
- `EventRelease`
- `Launch`
- `Session`
默认体验活动只是:
- 一类特殊的 `Event`
- 可以挂在 `Place / MapAsset`
- 可以选择是否出现在正式活动列表
---
## 2. 基本对象关系
建议继续沿用当前对象模型:
- `Place`
- `MapAsset`
- `Event`
在此基础上,补一层关系:
- `defaultExperienceEvents[]`
可理解为:
- 一个地点下可有多张地图
- 一张地图下可挂 `0 ~ N` 个默认体验活动
默认体验活动本身不需要新建特殊业务对象,仍然是 `Event`
---
## 3. 默认体验活动的定义
默认体验活动建议继续用 `Event` 承载,但补充两个活动级属性:
### 3.1 `isDefaultExperience`
- 类型:`boolean`
- 含义:该活动是否属于默认体验活动
### 3.2 `showInEventList`
- 类型:`boolean`
- 含义:该活动是否出现在正式活动列表中
这样就能支持以下场景:
1. 正式活动
- `isDefaultExperience = false`
- `showInEventList = true`
2. 纯地图体验活动
- `isDefaultExperience = true`
- `showInEventList = false`
3. 既是体验又允许出现在活动列表
- `isDefaultExperience = true`
- `showInEventList = true`
4. 当前不开放的体验活动
- 活动未 active
- 或未挂到地图
---
## 4. 产品入口建议
建议前台保留两条入口:
### 4.1 活动列表
面向正式活动。
默认只展示:
- `showInEventList = true`
不要求把所有默认体验活动都混进去。
### 4.2 地图列表
面向“先选地图/地点,再试玩”活动。
流程建议:
1. 首页进入 `地图列表`
2. 用户看到地点/地图卡片
3. 点进地图详情
4. 查看该地图下挂的默认体验活动
5. 点某个体验活动进入现有:
- 活动详情页
- 准备页
- 地图页
也就是说:
**地图列表负责入口分发,活动主链仍复用现有链路。**
---
## 5. 地图列表页建议
地图列表页第一阶段建议尽量简单。
### 每张地图卡片最小字段
- 地点名称
- 地图名称
- 地图预览图
- 简短描述
- 是否存在默认体验活动
- 默认体验数量
### 当前不必一开始就做
- 复杂筛选
- 复杂排序
- 地图标签系统
- 地图收藏
---
## 6. 地图详情页建议
地图详情页建议承担:
- 地图介绍
- 地图预览
- 默认体验活动列表
### 默认体验活动列表显示建议
每条体验活动可显示:
- 标题
- 副标题
- 玩法类型
- 当前状态
- 进入体验 CTA
如果该地图当前没有默认体验活动,应明确显示:
- `当前暂无体验活动`
不要整块隐藏。
---
## 7. 后台支持建议
后台后续应支持:
### 7.1 地图下挂体验活动
最少应支持:
- 一张地图可挂 `0 ~ N` 个默认体验活动
- 一个默认体验活动可绑定到某张地图
### 7.2 活动可见性控制
后台应能控制:
- 是否默认体验
- 是否出现在正式活动列表
也就是:
- `isDefaultExperience`
- `showInEventList`
### 7.3 不要求每种玩法都挂默认体验
后台不应把“默认体验活动”做成强制项。
可以是:
- 不挂
- 只挂顺序赛
- 只挂积分赛
- 顺序赛 + 积分赛都挂
这应由地图、运营目标和活动阶段决定,而不是系统硬约束。
---
## 8. 与现有活动系统的关系
这套方案必须继续遵守:
- 默认体验活动仍然是 `Event`
- 仍然要有 `EventRelease`
- 仍然通过 `play / launch / session` 进入
- 仍然遵守 `canLaunch`
不要为地图体验活动单独发明:
- 新的 launch 入口
- 新的 session 类型
- 新的结果体系
否则会把主链拆坏。
---
## 9. 推荐实施顺序
建议按以下顺序推进:
### 第一步
先把后台和对象关系定好:
- 地图可挂默认体验活动
- 活动可配置是否在活动列表出现
### 第二步
前台做:
- 地图列表页
- 地图详情页
### 第三步
地图详情页里的默认体验活动继续复用现有:
- 活动详情页
- 准备页
- 地图页
### 第四步
再决定是否补:
- 地图筛选
- 推荐体验
- 地图封面优化
---
## 10. 一句话结论
建议增加地图列表,但它应被定义为:
**默认体验活动的入口层,而不是第二套活动系统。**
后台后续只需支持:
- 地图下挂默认体验活动
- 默认体验活动是否出现在正式活动列表
这样既能支持未注册/试玩用户体验,也不会把现有活动主链拆成两套。