diff --git a/shopxo/app/plugins/vr_ticket/service/BaseService.php b/shopxo/app/plugins/vr_ticket/service/BaseService.php index 1b86970..2ae9c1a 100644 --- a/shopxo/app/plugins/vr_ticket/service/BaseService.php +++ b/shopxo/app/plugins/vr_ticket/service/BaseService.php @@ -116,7 +116,8 @@ class BaseService if (empty($goods)) { return false; } - return !empty($goods['venue_data']) || ($goods['item_type'] ?? '') === 'ticket'; + // 严格:只检查 item_type 字段,避免因 goods 表无 venue_data 列导致所有商品都通过检查的问题 + return ($goods['item_type'] ?? '') === 'ticket'; } /** diff --git a/shopxo/app/plugins/vr_ticket/service/TicketService.php b/shopxo/app/plugins/vr_ticket/service/TicketService.php index 18b0a96..e988c7f 100644 --- a/shopxo/app/plugins/vr_ticket/service/TicketService.php +++ b/shopxo/app/plugins/vr_ticket/service/TicketService.php @@ -112,6 +112,10 @@ class TicketService extends BaseService // 逐个生成票(每个订单明细行 = 一张票) $count = 0; foreach ($order_goods as $og) { + // 过滤非票务商品(如果被上面的循环 continue 跳过了,就不会有 _parsed_spec_name) + if (!isset($og['_parsed_spec_name'])) { + continue; + } $ticket_id = self::issueTicket($order, $og); if ($ticket_id > 0) { $count++;