[Issue B] GetGoodsViewData 单模板模式导致多模板商品数据损坏 #16

Closed
opened 2026-04-20 13:47:19 +00:00 by sileya-ai · 0 comments

概述

GetGoodsViewData 只取 vrGoodsConfig 的第一个配置块,多模板商品编辑时:

  1. 第一个模板有效、第二个无效 → 第二个无效块被忽略
  2. 第一个模板无效、第二个有效 → 整体返回 null(第一个无效导致整体失败)
  3. 写回 DB 时只写 [config](单元素),可能覆盖其他有效配置块

根因

SeatSkuService.php 第 368 行:$config = $vrGoodsConfig[0](只取第一个)
第 386-388 行写回时:只写 [config](单元素),而非全部有效配置

修复方案

修改:遍历所有配置块,清理无效块后再处理

SeatSkuService.php GetGoodsViewData 方法内:

  1. 遍历所有配置块,过滤出有效的 config 块
  2. 若全部无效,返回 null
  3. 取第一个有效配置块用于前端展示
  4. 写回 DB 时写全部有效配置块

参考资料

  • reviews/council-ghost-spec-BackendArchitect.md(第 368-393 行分析)
  • reports/GHOST_SPEC_INVESTIGATION_REPORT.md(独立验证)
  • reviews/council-ghost-spec-summary.md
## 概述 GetGoodsViewData 只取 vrGoodsConfig 的第一个配置块,多模板商品编辑时: 1. 第一个模板有效、第二个无效 → 第二个无效块被忽略 2. 第一个模板无效、第二个有效 → 整体返回 null(第一个无效导致整体失败) 3. 写回 DB 时只写 [config](单元素),可能覆盖其他有效配置块 ## 根因 SeatSkuService.php 第 368 行:$config = $vrGoodsConfig[0](只取第一个) 第 386-388 行写回时:只写 [config](单元素),而非全部有效配置 ## 修复方案 ### 修改:遍历所有配置块,清理无效块后再处理 SeatSkuService.php GetGoodsViewData 方法内: 1. 遍历所有配置块,过滤出有效的 config 块 2. 若全部无效,返回 null 3. 取第一个有效配置块用于前端展示 4. 写回 DB 时写全部有效配置块 ### 参考资料 - reviews/council-ghost-spec-BackendArchitect.md(第 368-393 行分析) - reports/GHOST_SPEC_INVESTIGATION_REPORT.md(独立验证) - reviews/council-ghost-spec-summary.md
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#16
There is no content yet.