79 lines
2.3 KiB
Markdown
79 lines
2.3 KiB
Markdown
# Phase 2 — 计划与当前状态
|
||
|
||
> 版本:v3.0 | 日期:2026-04-20 | 状态:实现准备就绪
|
||
> 关联 Issue:#13
|
||
> 关联文档:`docs/VR_GOODS_CONFIG_SPEC.md`(v3.0 JSON 格式,已确认)
|
||
|
||
---
|
||
|
||
## ⚠️ v3.0 核心变更摘要
|
||
|
||
- 新增 `template_snapshot` 字段(发布时从 `vr_seat_templates.seat_map` 读取并存储)
|
||
- `selected_sections` 保持对象格式 `{ room_id: ["A","B"] }`
|
||
- `spec_base_id_map` 不入库,GetGoodsViewData 从 `goods_spec_base.extends->seat_key` 动态构建
|
||
- 现有前端编辑体验**完全不受影响**(前端只提交选择项)
|
||
|
||
完整规格见 `docs/VR_GOODS_CONFIG_SPEC.md`。
|
||
|
||
---
|
||
|
||
## 一、vr_goods_config v3.0 结构(已确认)
|
||
|
||
```json
|
||
{
|
||
"version": 3.0,
|
||
"template_id": 4,
|
||
"selected_rooms": ["room_id_xxx"],
|
||
"selected_sections": { "room_id_xxx": ["A", "B"] },
|
||
"sessions": [{ "start": "15:00", "end": "16:59" }],
|
||
"template_snapshot": {
|
||
"venue": { ... },
|
||
"rooms": [{ "id": "...", "name": "...", "map": [...], "sections": [...], "seats": {...} }]
|
||
}
|
||
}
|
||
```
|
||
|
||
详细字段说明见 `docs/VR_GOODS_CONFIG_SPEC.md` 第一章。
|
||
|
||
---
|
||
|
||
## 二、实现顺序(Issue #13)
|
||
|
||
### Step 1:AdminGoodsSaveHandle — 保存时填充 template_snapshot
|
||
|
||
在 `save_thing_end` 时机,BatchGenerate 之前:
|
||
1. 用 `template_id` 读取 `vr_seat_templates.seat_map`(最新数据)
|
||
2. 按 `selected_rooms` 过滤(只存用户选中的房间)
|
||
3. 填充 `config.template_snapshot`
|
||
|
||
### Step 2:BatchGenerate — 写入 extends
|
||
|
||
insertGetId 中加入 `extends.seat_key = roomId_rowLabel_colNum`
|
||
|
||
### Step 3:GetGoodsViewData — 重写
|
||
|
||
- 读 `vr_goods_config[0]`,透传 `template_snapshot`
|
||
- 从 `goods_spec_base.extends` 动态构建 `spec_base_id_map`
|
||
- `selected_sections` 适配对象格式
|
||
- `goods_spec_data` 按场次聚合
|
||
|
||
### Step 4:ticket_detail.html JS — seatKey 格式
|
||
|
||
```javascript
|
||
// 改为带 roomId:
|
||
var seatKey = seat.roomId + '_' + seat.rowLabel + '_' + seat.colNum;
|
||
var specBaseId = self.specBaseIdMap[seatKey] || 0;
|
||
```
|
||
|
||
---
|
||
|
||
## 三、Phase 2 当前状态
|
||
|
||
| 任务 | 状态 |
|
||
|------|------|
|
||
| 模板渲染 | ✅ 正常 |
|
||
| 票务 footer | ✅ 已精简 |
|
||
| Issue #13 实现(v3.0 落地) | ⚠️ 待动手 |
|
||
| 核销 API | ❌ 未开始 |
|
||
| 后台 4 控制器联调 | ❌ 未开始 |
|