From 27935f113db3750fe7a225eaca97d17ec1f3828b Mon Sep 17 00:00:00 2001 From: tikkhun Date: Fri, 21 Nov 2025 11:48:13 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=AE=A2=E5=8D=95=E6=9C=8D=E5=8A=A1):=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AE=A2=E9=98=85=E7=9B=B8=E5=85=B3=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=88=B0=E8=AE=A2=E5=8D=95=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在订单查询结果中添加 isSubscription 标志和 related 订阅信息字段,以便前端展示订单的订阅状态和关联订阅详情 --- src/service/order.service.ts | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/service/order.service.ts b/src/service/order.service.ts index ba23cc3..780071d 100644 --- a/src/service/order.service.ts +++ b/src/service/order.service.ts @@ -643,6 +643,37 @@ export class OrderService { o.payment_method as payment_method, cs.order_count as order_count, cs.total_spent as total_spent, + CASE WHEN EXISTS ( + SELECT 1 FROM subscription s + WHERE s.siteId = o.siteId AND s.parent_id = o.externalOrderId + ) THEN 1 ELSE 0 END AS isSubscription, + ( + SELECT COALESCE( + JSON_ARRAYAGG( + JSON_OBJECT( + 'id', s.id, + 'externalSubscriptionId', s.externalSubscriptionId, + 'status', s.status, + 'currency', s.currency, + 'total', s.total, + 'billing_period', s.billing_period, + 'billing_interval', s.billing_interval, + 'customer_id', s.customer_id, + 'customer_email', s.customer_email, + 'parent_id', s.parent_id, + 'start_date', s.start_date, + 'trial_end', s.trial_end, + 'next_payment_date', s.next_payment_date, + 'end_date', s.end_date, + 'line_items', s.line_items, + 'meta_data', s.meta_data + ) + ), + JSON_ARRAY() + ) + FROM subscription s + WHERE s.siteId = o.siteId AND s.parent_id = o.externalOrderId + ) AS related, COALESCE( JSON_ARRAYAGG( CASE WHEN s.id IS NOT NULL THEN JSON_OBJECT(