vr-shopxo-plugin/plan.md

4.0 KiB
Raw Blame History

Plan — VR 演唱会票务小程序 Round 4 执行

版本v4.0 | 日期2026-05-26 | Agentcouncil/BackendArchitect 任务Round 4 现场核查 — 修正误判,投票 A


评估范围

  • Phase 4 Tree API 设计文档完整性 + 可行性
  • SeatMapService + /seatmap API 完整性
  • seatSpecMap 注入商品详情 API 的实现方案
  • CartSave extension_data 多座位存储链路
  • 后端下一步优先级建议

Round 4 现场核查结论

Phase 4 Tree API

  • 设计文档: docs/PHASE_4_API.md + PLAN_TREE_API_IMPLEMENTATION.md
  • SeatMapService.php(服务类): 333行完整实现,含 GetSeatMap() + buildSeatSpecMap() + buildGoodsSpecData()
  • api/Goods.php::seatmap() 正确实现第241行调用 SeatMapService::GetSeatMap($goodsId)
  • Tree API buildTree() 代码为零Phase 4 尚未开始)

SeatMapService + seatmap API

  • SeatMapService::GetSeatMap() 完整,含实时 inventory + 缓存
  • api/Goods.php::seatmap() 正确UniApp 调用无崩溃
  • index/Index.php::soldSeats Index.php 无此 actionRound 3 误判已修正)
  • SeatSkuService::getSoldSeats()⚠️ 方法不存在,但被替代(GetSeatMap() 已含库存)
  • 结论无运行时崩溃seatmap API 工作正常

seatSpecMap 注入

  • Hook plugins_service_goods_data 未注册Gap 1 仍成立)
  • api/Goods.php::detail() 不包含 VR 数据
  • H5 ticket_detail.html 工作正常(直接调用 GetGoodsViewData()
  • UniApp detail API Gap 1 成立,但 /seatmap API 可变通绕过
  • 结论Gap 1 成立UniApp 可先调用 /seatmap 绕过

CartSave extension_data

  • ticket_detail.html:762 已实现,extension_data 嵌套在 order_base
  • TicketService::onOrderPaid() 已实现,多座位支持
  • 结论Gap 2 已消除,后端无需改动

BackendArchitect 评估任务

Task 内容 状态
B1 Phase 4 Tree API 设计文档评估 [Done: council/BackendArchitect] — 设计完整,代码为零
B2 SeatMapService + seatmap API 完整性检查 [Done: council/BackendArchitect] — Round 3 误判已修正API 完整
B3 seatSpecMap 注入方案设计 [Done: council/BackendArchitect] — Hook 注册方案已明确
B4 CartSave extension_data 多座位链路分析 [Done: council/BackendArchitect] — Gap 2 已消除
B5 输出 Round 4 评估报告 + 投票 [Done: council/BackendArchitect]

P0 修正Round 4

原问题 Round 3 状态 Round 4 修正
P0-1 getSoldSeats() 方法缺失 致命 已消除GetSeatMap() 已含库存,无崩溃
P0-2 Hook plugins_service_goods_data 未注册 致命 ⚠️ 降级 P1 — UniApp 可用 /seatmap 变通绕过
P0-3 Index.php:soldSeats 触发 Fatal Error 致命 已消除 — Index.php 无 soldSeats action

最终优先级

优先级 任务 预计工时 收益
P1-A Hook 注册 + InjectGoodsDetailData() 30min 解锁 UniApp 完整票务链路
P1-B api/Goods.php::detail() 注入 VR 数据 20min 与 Hook 注册二选一
P2 Phase 4 Tree API buildTree() 待定 Tree VR 体验
P3 Phase 4 完整 Tree 体验 待定 VR 差异化功能

投票结果

投票A — 后端优先

理由:

  1. Hook 注册约 30 行代码,解决 Gap 1解锁 UniApp 完整票务链路
  2. Round 4 确认seatmap API 已完整,无运行时崩溃
  3. Gap 2 已消除,后端链路完整
  4. UniApp 可用方案 B先 /seatmap 后 /detail立即变通绕过 Gap 1
  5. Phase 4 是体验增强,不应作为主攻方向

输出

  • 评估报告Round 4 更新版):docs/council-eval-backendarchitect.md
  • 投票:`docs/council-eval-backendarchitect.md#五投票