docs: 补充 template_snapshot 前端vs后端职责说明 + 更新 Issue #13 进度
parent
bbea35d837
commit
98bd6a52cf
|
|
@ -583,3 +583,20 @@ c894e7018 fix: 复制 ShopXO public 模板
|
||||||
- Step 2:BatchGenerate 写入 extends.seat_key
|
- Step 2:BatchGenerate 写入 extends.seat_key
|
||||||
- Step 3:GetGoodsViewData 重写
|
- Step 3:GetGoodsViewData 重写
|
||||||
- Step 4:ticket_detail.html JS seatKey 格式更新
|
- Step 4:ticket_detail.html JS seatKey 格式更新
|
||||||
|
|
||||||
|
### 13.6 AdminGoodsSaveHandle template_snapshot 填充逻辑澄清
|
||||||
|
|
||||||
|
**template_snapshot 的前端职责 vs 后端职责**:
|
||||||
|
- **前端**(Admin 编辑页打开时):用 `template_id` 读最新 vr_seat_templates,填充 `template_snapshot` 到表单数据,一并提交
|
||||||
|
- **后端**(AdminGoodsSaveHandle save_thing_end):检测 `template_snapshot` 是否缺失,若缺失则从 vr_seat_templates 读表填充,再写回 goods 表,然后 BatchGenerate
|
||||||
|
|
||||||
|
这意味着:
|
||||||
|
- `template_snapshot` 主要由**前端**在编辑页加载时填充
|
||||||
|
- 后端只是兜底(兼容旧商品、或前端未传的情况)
|
||||||
|
- BatchGenerate 仍读 `vr_seat_templates` 表(实时数据),不受 template_snapshot 影响
|
||||||
|
- 前端展示用 `template_snapshot`,SKU 生成用 `vr_seat_templates`(数据层和展示层分离)
|
||||||
|
|
||||||
|
**提交**:
|
||||||
|
```
|
||||||
|
bbea35d83 feat(AdminGoodsSaveHandle): 保存时自动填充 template_snapshot
|
||||||
|
```
|
||||||
|
|
|
||||||
|
|
@ -104,10 +104,26 @@ key = 房间 ID,value = 该房间选中的分区字符数组。为什么用对
|
||||||
4. BatchGenerate 生成 SKU
|
4. BatchGenerate 生成 SKU
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### template_snapshot 的前端职责 vs 后端职责
|
||||||
|
|
||||||
|
**前端职责(Admin 编辑页)**:
|
||||||
|
- 用户打开新建/编辑页时,前端用 `template_id` 读取**最新** `vr_seat_templates`
|
||||||
|
- 将 `venue` + `rooms` 快照填入 `template_snapshot`,随表单一起提交
|
||||||
|
- 编辑过程中模板变化了?以打开页面时的快照为准,**不重新读**(避免不确定性)
|
||||||
|
|
||||||
|
**后端职责(AdminGoodsSaveHandle)**:
|
||||||
|
- 检测 `template_snapshot` 是否缺失,若缺失则从 `vr_seat_templates` 读表填充(兜底)
|
||||||
|
- 将填充后的完整 config 写回 `goods.vr_goods_config`
|
||||||
|
- 再执行 `BatchGenerate` 生成 SKU
|
||||||
|
|
||||||
|
**数据层分离**:
|
||||||
|
- `template_snapshot` → **前端渲染用**(展示层)
|
||||||
|
- `vr_seat_templates` 实时读取 → **BatchGenerate 生成 SKU**(数据层)
|
||||||
|
|
||||||
### 现有前端兼容性
|
### 现有前端兼容性
|
||||||
|
|
||||||
- 前端只提交 `selected_rooms` / `selected_sections` / `sessions`,**不提交 `template_snapshot`**
|
- 前端在编辑页加载时填充 `template_snapshot` 并提交
|
||||||
- `template_snapshot` 由后端在保存时自动填充
|
- `AdminGoodsSaveHandle` 若检测到未传则自动填充(兜底),完全透明
|
||||||
- 现有商品编辑体验**完全不受影响**
|
- 现有商品编辑体验**完全不受影响**
|
||||||
|
|
||||||
### template_snapshot 的作用
|
### template_snapshot 的作用
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue