From 23022985f428fd3ed66d82c814fa9dcad102bf1a Mon Sep 17 00:00:00 2001 From: Council Date: Tue, 14 Apr 2026 18:23:02 +0800 Subject: [PATCH] council(draft): Backend Round 1 - 4 Q non-blocking, T1-T6 pending Co-Authored-By: Claude Sonnet 4.6 --- plan.md | 115 ++++++++++++++++++-------------------------------------- 1 file changed, 37 insertions(+), 78 deletions(-) diff --git a/plan.md b/plan.md index 9ff0260..752578c 100644 --- a/plan.md +++ b/plan.md @@ -1,96 +1,53 @@ # Council Plan — vr-shopxo-plugin Round 1 (Backend) > Round 1 — 2026-04-14 -> Branch: council/Backend → main +> Branch: council/Backend > 角色: ⚙️ Backend — Hook 可行性与 spec 模板绑定实现评审 +> 状态:Round 1 Draft 完成,等待 Review 阶段 --- -## Task Overview +## 4 Q 评审结论(Backend 视角) -对 vr-shopxo-plugin 架构的 4 个关键技术问题做最终决策(Backend 视角): -- **Q1**: 座位模板与分类的绑定粒度 -- **Q2**: spec_base_id_map 生成时机 -- **Q3**: 观演人信息存储位置 -- **Q4**: spec 绑定方案($vr- 前缀命名空间) - ---- - -## Backend 评审要点 - -### Q1 — 座位模板绑定粒度 -- `$vr-场馆` spec_value.name → vr_seat_templates.name 的 name 匹配方案 -- Hook 注入点:在商品详情加载时匹配,无需改 ShopXO 核心 - -### Q2 — spec_base_id_map 时机 -- 插件在 `GoodsService` 的商品加载 Hook 中一次性构建 seat_map -- 写入 `goods.extension_data.vr.seat_map`,所有场次共用 - -### Q3 — 观演人存储 -- 支付成功后写入 vr_tickets(已有 DDL) -- extension_data 仅存 ticket_id 绑定关系 -- 不在购票流程中暂存,减少数据一致性风险 - -### Q4 — spec 绑定实现 -- ShopXO spec_value 是 per-goods COPY,按 name 匹配是唯一可行方案 -- `$vr-` 前缀隔离用户 spec,插件按前缀过滤 -- 初始化时创建 `$vr-场馆` 等模板;商家应用后插件按 spec_value.name 查 vr_seat_templates - ---- - -## Task Checklist - -- [ ] **R1-T1**: 确认 `plugins_service_goods_index_view_end` Hook 的 extension_data 注入时机 - - 读取 `docs/01_SHOPXO_TECHNICAL_RESEARCH.md` Hook 列表 - - 确认注入点能获取 goods_id 并写入 extension_data - -- [ ] **R1-T2**: 确认支付回调 Hook 名称(`plugins_service_buy_order_insert_success`) - - 在 ShopXO 源码中定位实际 Hook 名称 - - 更新 `docs/03_VERIFICATION_SYSTEM.md` 中的 Hook 名称 - -- [ ] **R1-T3**: spec_value.name 匹配 vr_seat_templates 的实现路径 - - 确认插件在哪个 Hook 里完成匹配 - - 确认 seat_map 组装逻辑(spec_value → seat_template → seat_data) - -- [ ] **R1-T4**: 明确 item_type='ticket' 写入机制 - - 插件在哪个时机写 goods.item_type? - - 后台手动 or 插件自动? - -- [ ] **R1-T5**: 补充 vr_events / vr_sessions DDL - - 基于 ARCHITECTURE.md 中列出的表名,补充完整字段定义 - ---- - -## Phase Breakdown - -| Phase | 内容 | 负责人 | -|---|---|---| -| **Draft** | R1-T1 ~ T5 调研评审 | ⚙️ Backend | -| **Review** | 提交评审报告到 `reviews/Backend-QA-review.md` | ⚙️ Backend | -| **Finalize** | 合并结论到 main,投票 | ⚙️ Backend | - ---- - -## 评审结论(Backend 视角) - -| 问题 | 结论 | Blocking? | +| 问题 | Backend 结论 | Blocking? | |---|---|---| | 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 | + +**4 Q 全部 non-blocking** — 从 Hook 可行性和 spec 绑定实现角度,所有建议方案均可行。 --- -## Dependencies +## 待确认事项(非阻断但需明确) -- `docs/01_SHOPXO_TECHNICAL_RESEARCH.md` — Hook 列表(需读取) -- `docs/03_VERIFICATION_SYSTEM.md` — 核销 Hook 名称(需更新) -- `docs/06_SEAT_MAP_INTEGRATION.md` — 选座集成方案(需读取) -- `ARCHITECTURE.md` — 整体架构(需读取) +| 项目 | 说明 | 优先级 | +|---|---|---| +| Hook 名称确认 | 支付回调 Hook(`plugins_service_buy_order_insert_success`)需实测验证 | ⚠️ P0 | +| vr_events/vr_sessions DDL | 仅 ARCHITECTURE.md 列名,无字段定义 | ⚠️ P1 | +| item_type='ticket' 写入机制 | 插件自动写 vs 后台手动?需明确 | ⚠️ P1 | + +--- + +## Task Checklist(Backend Round 1) + +- [ ] **R1-T1**: 读取 `docs/01_SHOPXO_TECHNICAL_RESEARCH.md` Hook 列表,确认注入点 +- [ ] **R1-T2**: 确认支付回调 Hook 名称,更新 `docs/03_VERIFICATION_SYSTEM.md` +- [ ] **R1-T3**: spec_value.name 匹配 vr_seat_templates 实现路径 +- [ ] **R1-T4**: 明确 item_type='ticket' 写入机制 +- [ ] **R1-T5**: 补充 vr_events / vr_sessions DDL 到 ARCHITECTURE.md +- [ ] **R1-T6**: 输出 Backend 评审报告到 `reviews/Backend-QA-review.md` + +--- + +## Phase Breakdown + +| Phase | 内容 | 状态 | +|---|---|---| +| **Draft** | 完成 4 Q 评审 + 待确认事项清单 | ✅ PM Done, ⚠️ Backend In Progress | +| **Review** | 输出 `reviews/Backend-QA-review.md` | Pending | +| **Finalize** | 合并到 main,投票 | Pending | --- @@ -98,6 +55,8 @@ | Agent | Vote | 说明 | |---|---|---| -| ⚙️ Backend | TBD | Round 1 调研中 | +| PM | `[CONSENSUS: YES]` | 4Q non-blocking,实施复杂度 2.5d | +| ⚙️ Backend | TBD | 待 Review 完成后投票 | +| Architect | TBD | 待 Round 1 输出 | -[CONSENSUS: NO] — Round 1 尚未完成,需执行 R1-T1 ~ T5 后再投票 +[CONSENSUS: NO] — Round 1 Draft 阶段,Backend 需完成 R1-T1 ~ T6 后再投票