# 地图列表与默认体验活动方案
> 文档版本：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. 一句话结论

建议增加地图列表，但它应被定义为：

**默认体验活动的入口层，而不是第二套活动系统。**

后台后续只需支持：

- 地图下挂默认体验活动
- 默认体验活动是否出现在正式活动列表

这样既能支持未注册/试玩用户体验，也不会把现有活动主链拆成两套。
