2026-04-14 10:21:06 +00:00
|
|
|
|
# Council Plan — vr-shopxo-plugin Round 1 (Backend)
|
2026-04-14 05:45:33 +00:00
|
|
|
|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
> Round 1 — 2026-04-14
|
|
|
|
|
|
> Branch: council/Backend → main
|
|
|
|
|
|
> 角色: ⚙️ Backend — Hook 可行性与 spec 模板绑定实现评审
|
2026-04-14 05:45:33 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
## Task Overview
|
2026-04-14 05:45:49 +00:00
|
|
|
|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
对 vr-shopxo-plugin 架构的 4 个关键技术问题做最终决策(Backend 视角):
|
|
|
|
|
|
- **Q1**: 座位模板与分类的绑定粒度
|
|
|
|
|
|
- **Q2**: spec_base_id_map 生成时机
|
|
|
|
|
|
- **Q3**: 观演人信息存储位置
|
|
|
|
|
|
- **Q4**: spec 绑定方案($vr- 前缀命名空间)
|
2026-04-14 06:10:59 +00:00
|
|
|
|
|
2026-04-14 05:45:49 +00:00
|
|
|
|
---
|
|
|
|
|
|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
## Backend 评审要点
|
2026-04-14 06:10:59 +00:00
|
|
|
|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
### Q1 — 座位模板绑定粒度
|
|
|
|
|
|
- `$vr-场馆` spec_value.name → vr_seat_templates.name 的 name 匹配方案
|
|
|
|
|
|
- Hook 注入点:在商品详情加载时匹配,无需改 ShopXO 核心
|
2026-04-14 06:10:59 +00:00
|
|
|
|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
### Q2 — spec_base_id_map 时机
|
|
|
|
|
|
- 插件在 `GoodsService` 的商品加载 Hook 中一次性构建 seat_map
|
|
|
|
|
|
- 写入 `goods.extension_data.vr.seat_map`,所有场次共用
|
2026-04-14 06:10:59 +00:00
|
|
|
|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
### Q3 — 观演人存储
|
|
|
|
|
|
- 支付成功后写入 vr_tickets(已有 DDL)
|
|
|
|
|
|
- extension_data 仅存 ticket_id 绑定关系
|
|
|
|
|
|
- 不在购票流程中暂存,减少数据一致性风险
|
2026-04-14 05:45:49 +00:00
|
|
|
|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
### Q4 — spec 绑定实现
|
|
|
|
|
|
- ShopXO spec_value 是 per-goods COPY,按 name 匹配是唯一可行方案
|
|
|
|
|
|
- `$vr-` 前缀隔离用户 spec,插件按前缀过滤
|
|
|
|
|
|
- 初始化时创建 `$vr-场馆` 等模板;商家应用后插件按 spec_value.name 查 vr_seat_templates
|
2026-04-14 05:45:49 +00:00
|
|
|
|
|
2026-04-14 06:09:56 +00:00
|
|
|
|
---
|
2026-04-14 05:45:49 +00:00
|
|
|
|
|
2026-04-14 06:09:56 +00:00
|
|
|
|
## Task Checklist
|
2026-04-14 05:45:49 +00:00
|
|
|
|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
- [ ] **R1-T1**: 确认 `plugins_service_goods_index_view_end` Hook 的 extension_data 注入时机
|
|
|
|
|
|
- 读取 `docs/01_SHOPXO_TECHNICAL_RESEARCH.md` Hook 列表
|
|
|
|
|
|
- 确认注入点能获取 goods_id 并写入 extension_data
|
2026-04-14 05:45:49 +00:00
|
|
|
|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
- [ ] **R1-T2**: 确认支付回调 Hook 名称(`plugins_service_buy_order_insert_success`)
|
|
|
|
|
|
- 在 ShopXO 源码中定位实际 Hook 名称
|
|
|
|
|
|
- 更新 `docs/03_VERIFICATION_SYSTEM.md` 中的 Hook 名称
|
2026-04-14 05:45:49 +00:00
|
|
|
|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
- [ ] **R1-T3**: spec_value.name 匹配 vr_seat_templates 的实现路径
|
|
|
|
|
|
- 确认插件在哪个 Hook 里完成匹配
|
|
|
|
|
|
- 确认 seat_map 组装逻辑(spec_value → seat_template → seat_data)
|
2026-04-14 05:47:12 +00:00
|
|
|
|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
- [ ] **R1-T4**: 明确 item_type='ticket' 写入机制
|
|
|
|
|
|
- 插件在哪个时机写 goods.item_type?
|
|
|
|
|
|
- 后台手动 or 插件自动?
|
2026-04-14 06:09:56 +00:00
|
|
|
|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
- [ ] **R1-T5**: 补充 vr_events / vr_sessions DDL
|
|
|
|
|
|
- 基于 ARCHITECTURE.md 中列出的表名,补充完整字段定义
|
2026-04-14 05:45:33 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-04-14 05:52:25 +00:00
|
|
|
|
## Phase Breakdown
|
2026-04-14 05:47:12 +00:00
|
|
|
|
|
2026-04-14 06:10:59 +00:00
|
|
|
|
| Phase | 内容 | 负责人 |
|
|
|
|
|
|
|---|---|---|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
| **Draft** | R1-T1 ~ T5 调研评审 | ⚙️ Backend |
|
|
|
|
|
|
| **Review** | 提交评审报告到 `reviews/Backend-QA-review.md` | ⚙️ Backend |
|
|
|
|
|
|
| **Finalize** | 合并结论到 main,投票 | ⚙️ Backend |
|
2026-04-14 05:45:33 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
## 评审结论(Backend 视角)
|
2026-04-14 05:45:33 +00:00
|
|
|
|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
| 问题 | 结论 | Blocking? |
|
2026-04-14 05:47:12 +00:00
|
|
|
|
|---|---|---|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
| Q1 座位模板绑定粒度 | `$vr-场馆` spec_value.name → seat_template.name 按名字匹配 ✅ | Non-blocking |
|
|
|
|
|
|
| Q2 seat_map 时机 | 商品加载 Hook 中一次性构建,写入 extension_data ✅ | Non-blocking |
|
|
|
|
|
|
| Q3 观演人存储 | vr_tickets(支付后)+ extension_data 绑定关系 ✅ | Non-blocking |
|
|
|
|
|
|
| Q4 spec 绑定方案 | `$vr-` 前缀命名空间 + 按 name 匹配,是唯一可行方案 ✅ | Non-blocking |
|
|
|
|
|
|
| Hook 名称待确认 | 支付回调 Hook 名称需实测验证 | ⚠️ Blocking |
|
|
|
|
|
|
| vr_events/vr_sessions DDL | 缺失,需补充 | ⚠️ Non-blocking |
|
|
|
|
|
|
| item_type 写入机制 | 需明确(手动/自动) | ⚠️ Non-blocking |
|
2026-04-14 05:45:49 +00:00
|
|
|
|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Dependencies
|
|
|
|
|
|
|
|
|
|
|
|
- `docs/01_SHOPXO_TECHNICAL_RESEARCH.md` — Hook 列表(需读取)
|
|
|
|
|
|
- `docs/03_VERIFICATION_SYSTEM.md` — 核销 Hook 名称(需更新)
|
|
|
|
|
|
- `docs/06_SEAT_MAP_INTEGRATION.md` — 选座集成方案(需读取)
|
|
|
|
|
|
- `ARCHITECTURE.md` — 整体架构(需读取)
|
2026-04-14 06:10:59 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
## Voting
|
2026-04-14 06:10:59 +00:00
|
|
|
|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
| Agent | Vote | 说明 |
|
2026-04-14 06:10:59 +00:00
|
|
|
|
|---|---|---|
|
2026-04-14 10:21:06 +00:00
|
|
|
|
| ⚙️ Backend | TBD | Round 1 调研中 |
|
|
|
|
|
|
|
|
|
|
|
|
[CONSENSUS: NO] — Round 1 尚未完成,需执行 R1-T1 ~ T5 后再投票
|