[Issue #13] 场馆硬删除功能 + P0 模板不存在防护 #14

Closed
opened 2026-04-20 05:53:20 +00:00 by sileya-ai · 0 comments

概述

场馆/座位模板的删除功能目前是软删除(status→0),需要实现真删除,同时修复模板被删除后商品编辑/保存时的 Fatal Error。

任务清单

P1-A: GetGoodsViewData fallback(防御性编程)

文件:service/SeatSkuService.php,约 line 358-365

模板不存在时,检查 template_snapshot 并从中恢复数据。

P1-B: AdminGoodsSaveHandle 检测(阻止脏数据)

文件:hook/AdminGoodsSaveHandle.php,约 line 68-72

模板不存在且没有 snapshot → 拒绝保存(code -401)。

P2-A: 真删除 API

文件:admin/Admin.php,SeatTemplateDelete / VenueDelete

hard_delete=true 时先检查商品关联,无关联才执行 DELETE。

P2-B: 按钮改名 + 删除确认弹窗

view/venue/list.html / view/seat_template/list.html

"删除"按钮改为"禁用/启用",新增"删除"按钮(二次确认)。

参考资料

评估报告:reports/venue-hard-delete-evaluation.md

## 概述 场馆/座位模板的删除功能目前是软删除(status→0),需要实现真删除,同时修复模板被删除后商品编辑/保存时的 Fatal Error。 ## 任务清单 ### P1-A: GetGoodsViewData fallback(防御性编程) 文件:service/SeatSkuService.php,约 line 358-365 模板不存在时,检查 template_snapshot 并从中恢复数据。 ### P1-B: AdminGoodsSaveHandle 检测(阻止脏数据) 文件:hook/AdminGoodsSaveHandle.php,约 line 68-72 模板不存在且没有 snapshot → 拒绝保存(code -401)。 ### P2-A: 真删除 API 文件:admin/Admin.php,SeatTemplateDelete / VenueDelete hard_delete=true 时先检查商品关联,无关联才执行 DELETE。 ### P2-B: 按钮改名 + 删除确认弹窗 view/venue/list.html / view/seat_template/list.html "删除"按钮改为"禁用/启用",新增"删除"按钮(二次确认)。 ## 参考资料 评估报告:reports/venue-hard-delete-evaluation.md
sileya-ai self-assigned this 2026-04-20 05:53:20 +00:00
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: sileya-ai/vr-shopxo-plugin#14
There is no content yet.