vr-shopxo-plugin/plan.md

78 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# plan.md — backend-reviewer Round 1
## 角色
🔐 **backend-reviewer**:数据库与后端安全专家
---
## 文档评审结论docs/01_SHOPXO_TECHNICAL_RESEARCH.md
### SQL 设计部分
| 检查项 | 结论 | 说明 |
|---|---|---|
| vr_tickets 表 DDL | ❌ 缺失 | 文档中无任何 CREATE TABLE 语句 |
| vr_events 表 DDL | ❌ 缺失 | 同上 |
| vr_sessions 表 DDL | ❌ 缺失 | 同上 |
| vr_seats / vr_orders 表 | ❌ 缺失 | 同上 |
| ShopXO 原生表sxo_*)分析 | ✅ 充分 | 充分覆盖 sxo_order / sxo_goods_spec_base 等核心表 |
| 索引策略 | ⚠️ 需补充 | 文档未提及 vr 插件表索引设计 |
| 外键约束与级联策略 | ⚠️ 需补充 | 未覆盖 |
### 安全审查部分
| 检查项 | 结论 | 说明 |
|---|---|---|
| SQL 注入防御 | ✅ 通过 | 使用 ThinkPHP Db 类自动绑定参数,未发现拼接 SQL |
| BuyService 原子扣库存 | ✅ 通过 | WHERE inventory >= N + dec() 原子操作,事务回滚机制安全 |
| QR 码生成逻辑 | ⚠️ 需补充 | base64 编码方式安全但未分析QR payload 是否含 PII、暴力枚举风险 |
| 核销码可预测性 | ⚠️ 未分析 | sxo_order_extraction_code 的 code 字段生成算法未知 |
| 订单扩展字段安全 | ⚠️ 未分析 | extension_data JSON 存储需防注入 |
| 权限控制 | ⚠️ 未覆盖 | 核销 API 的 admin 权限校验链未验证 |
---
## 任务清单
- [ ] **Task-1**: 定义 vr_events场次表、vr_sessions座位表、vr_tickets票券表、vr_orders票务订单表完整 DDL含主键/索引/外键
- `[Claimed: council/backend-reviewer]`
- [ ] **Task-2**: 分析 BuyService OrderInsertHandle 原子扣库存逻辑,输出安全审查报告
- `[Claimed: council/backend-reviewer]`
- [ ] **Task-3**: QR 码生成逻辑注入风险分析payload 构造 + 暴力枚举防护)
- `[Claimed: council/backend-reviewer]`
- [ ] **Task-4**: 核销 API 权限链审查admin 端鉴权路径)
- `[Claimed: council/backend-reviewer]`
- [ ] **Task-5**: 将审查结论写入 `reviews/backend-reviewer-on-docs.md`
- `[Claimed: council/backend-reviewer]`
---
## 执行计划
### Phase 1 — DraftRound 2
1. 从 shopxo-evaluator worktree 读取 BuyService.php 源码OrderInsertHandle 部分)
2. 读取 sxo_order_extraction_code 生成逻辑
3. 读取核销 API admin 鉴权逻辑
4. 起草 vr_* 表 DDL 初稿
### Phase 2 — ReviewRound 3
5. 合并 arch-reviewer 的 ARCHITECTURE.md 审查意见(若与数据库设计交叉)
6. 完整 review 所有发现,写入 reviews/
### Phase 3 — FinalizeRound 4
7. 将最终 DDL + 安全报告 merge 入 main
8. 投票
---
## 依赖
- arch-reviewerARCHITECTURE.md 中若有数据库层设计,需同步
- ticket-reviewer核销系统设计文档中若定义了表结构需对齐
- 其他 round 2 执行,无跨 Agent 阻塞依赖
---
## 投票
`[CONSENSUS: NO]` — 文档缺少 vr_* 插件表 DDL 定义,安全审查不完整,**不能开始编码**。需先完成表结构设计和安全评审。