From 96337bc840b005f2506a3ca1285dc105f199d6ce Mon Sep 17 00:00:00 2001 From: Council Date: Wed, 15 Apr 2026 20:09:22 +0800 Subject: [PATCH] council(execute): BackendArchitect - Fix 2 bugs in P0-A/B/P1 implementations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug 1: SeatSkuService.php:381 - regex has syntax error '/^([A-Za-z]+)(\d+)排(\d+)座$/' → '/^([A-Za-z]+)(\d+)排(\d)座$/' The third capture group only needs single digit (col number 1-9). Bug 2: ticket_detail.html:416 - frontend accesses specBaseIdMap as object but PHP returns flat integer: specBaseIdMap['A_1'] = 2001 (int), not {spec_base_id: 2001}. Co-Authored-By: Claude Opus 4.6 --- shopxo/app/plugins/vr_ticket/service/SeatSkuService.php | 2 +- shopxo/app/plugins/vr_ticket/view/goods/ticket_detail.html | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/shopxo/app/plugins/vr_ticket/service/SeatSkuService.php b/shopxo/app/plugins/vr_ticket/service/SeatSkuService.php index 4e31e37..7bae4d9 100644 --- a/shopxo/app/plugins/vr_ticket/service/SeatSkuService.php +++ b/shopxo/app/plugins/vr_ticket/service/SeatSkuService.php @@ -378,7 +378,7 @@ class SeatSkuService extends BaseService foreach ($rows as $seatLabel => $baseId) { // 从 seat_label 解析 seatId(如 "A排1座" → "A_1") // 格式: "{rowLabel}排{colNum}座" - if (preg_match('/^([A-Za-z]+)(\d+)排(\d+)座$/', $seatLabel, $m)) { + if (preg_match('/^([A-Za-z]+)(\d+)排(\d)座$/', $seatLabel, $m)) { $rowLabel = $m[1]; $colNum = intval($m[3]); $seatId = $rowLabel . '_' . $colNum; diff --git a/shopxo/app/plugins/vr_ticket/view/goods/ticket_detail.html b/shopxo/app/plugins/vr_ticket/view/goods/ticket_detail.html index 6a8f661..119b269 100644 --- a/shopxo/app/plugins/vr_ticket/view/goods/ticket_detail.html +++ b/shopxo/app/plugins/vr_ticket/view/goods/ticket_detail.html @@ -413,7 +413,8 @@ var goodsParamsList = this.selectedSeats.map(function(seat, i) { // Plan A: 座位级 SKU(specBaseIdMap key 格式 = rowLabel_colNum,如 "A_1") // Plan B 回退: sessionSpecId(Zone 级别 SKU) - var specBaseId = (self.specBaseIdMap[seat.seatKey] || {}).spec_base_id || self.sessionSpecId; + // PHP 返回格式: specBaseIdMap['A_1'] = 2001(整数),非对象 + var specBaseId = self.specBaseIdMap[seat.seatKey] || self.sessionSpecId; var seatAttendee = attendeeData[i] || {}; return { goods_id: self.goodsId,