diff --git a/.gitignore b/.gitignore index b70e211..452c557 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,9 @@ shopxo/public/adminufgeyw.php # 强制追踪 vr_ticket 插件的 database 目录(全局 gitignore 的 database 规则过宽) !shopxo/app/plugins/vr_ticket/database/ + +#插件目录 +.agent/ +.claude/ +.gitnexus/ +graphify-out/ diff --git a/docs/DEVELOPMENT_LOG.md b/docs/DEVELOPMENT_LOG.md index 3d4da50..c332ec9 100644 --- a/docs/DEVELOPMENT_LOG.md +++ b/docs/DEVELOPMENT_LOG.md @@ -778,3 +778,88 @@ if (empty($room['id'])) { - ✅ antigravity 测试通过(基本没问题) - ✅ 西莉雅代码审查通过(读取优先级 + 防御层双重保障) - ✅ 多模板模式修复验证 + +--- + +## 2026-04-25 至 2026-04-27 B端核销冲刺(周末完成) + +### 分支状态 +- 分支:`feat/b-verification-clean`(从 `feat/b-verification` 合并而来) +- HEAD:`cd0e70e9d remove: 座位模板页面和控制器(被场馆配置覆盖)` +### 本次提交记录(a873aac14 → cd0e70e9d) + +| Commit | 说明 | +|--------|------| +| `cd0e70e9d` | remove: 座位模板页面和控制器(被场馆配置覆盖) | +| `a5b2d00c8` | fix(admin): visitor_name→real_name, verify_status, TicketVerify GET handler, input filter null→s | +| `6fae40698` | docs: 强化经验#4 — 插件视图路径 view/{group}/ 结构图解 | +| `51bcc207f` | fix(admin): MyView路径 admin/view→view/admin(7处修正) | +| `6c18dd38f` | docs: 追加经验#19 — AdminSidebarInit items vs item 属性名陷阱 | +| `44553442e` | fix(admin): 修复菜单注册项属性名 item→items(ShopXO sidebar 渲染器期望 items 复数) | +| `23d2b2f7b` | fix(B): TicketVerify M-05修复(verifier_id从session) + 新增TicketStats API | +| `c93cc1134` | feat(B): B端核销功能合入(session key + $this->admin 修正) | +| `a873aac14` | docs: Phase B plan + README status update | + +### 未提交变更(Working Directory) + +> 用户要求只写文档不修改代码,以下变更在本地工作区,尚未 commit。 + +**Admin.php(input 过滤器 + 短码自动识别):** +- `input('xxx', '', null, 'trim')` → `input('xxx', '', '', 'trim')` 修复 null→空字符串问题 +- TicketVerify 新增 `verifyByShortCode()` 分支逻辑:长度 < 20 且不含连字符视为短码 + +**视图 UI 统一升级(5个文件):** +- 所有 admin 页面统一改为 `.page-title` 大标题风格(icon + 标题 + 底部分隔线) +- ticket/list.html:搜索表单改为 POST + `form-validation` + 搜索按钮 loading 状态 + 重置按钮 +- ticket/verify.html:**核心重写** — 统计栏初始值 `-`(不再显示「加载中...」)+ form-validation submit-ajax 模式 + ShopXO 原生 submit-ajax 回调 +- verification/list.html:搜索表单 POST 化 + 表格包裹 panel + 统计条数 +- verifier/list.html:搜索表单 POST 化 + 启用/禁用改用 ShopXO `submit-ajax`(不再用 onclick 手动 ajax) +- setup.html:UI 标题更新 +- venue/list.html:移除顶部「插件全局设置」工具栏按钮 + +### Phase B 完成度 + +| 子项 | 状态 | 说明 | +|------|------|------| +| B0-1 Admin.php 权限校验 | ✅ 完成 | session('admin_id') 校验 | +| B0-2 verifier_id session来源 | ✅ 完成 | M-05 已修复 | +| B0-3 ALTER TABLE bug | ✅ 完成 | B端合入时已修 | +| B1-1 扫码核销页面 | ✅ 可用 | verify.html 基本可用,大量细节待修 | +| B1-2 电子票列表 | ✅ 可用 | list.html 已可用 | +| B1-3 票详情 | ✅ 可用 | detail.html 已生成 | +| B2-1 核销员管理 | ✅ 可用 | verifier/list.html + save.html | +| B2-2 核销记录 | ✅ 可用 | verification/list.html | +| B2-3 座位模板管理 | ✅ 已移除 | 被场馆配置覆盖,无需独立页面 | + +### 关键修复记录 + +**TicketVerify 短码自动识别(Admin.php):** +```php +$is_short_code = (strlen($ticket_code) < 20 && strpos($ticket_code, '-') === false); +if ($is_short_code) { + $result = TicketService::verifyByShortCode($ticket_code, $verifier_id); +} else { + $result = TicketService::verifyTicket($ticket_code, $verifier_id); +} +``` + +**ShopXO form-validation submit-ajax(verify.html):** +- 原:手动 `$.ajax()` + `$('#verify-form').on('submit', e.preventDefault)` +- 新:`