From c6c30cb6ae304671d04508e2218b65d532306742 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=90=9D=E5=8D=9C?= Date: Tue, 10 Mar 2026 12:54:23 +0000 Subject: [PATCH] feat(admin): platform orders filter by subscription id --- .../Admin/PlatformOrderController.php | 7 ++ .../admin/platform_orders/index.blade.php | 6 ++ tests/Feature/AdminPlatformOrderTest.php | 91 +++++++++++++++++++ 3 files changed, 104 insertions(+) diff --git a/app/Http/Controllers/Admin/PlatformOrderController.php b/app/Http/Controllers/Admin/PlatformOrderController.php index 8f4861e..0e0a0ec 100644 --- a/app/Http/Controllers/Admin/PlatformOrderController.php +++ b/app/Http/Controllers/Admin/PlatformOrderController.php @@ -26,6 +26,8 @@ class PlatformOrderController extends Controller 'payment_status' => trim((string) $request->query('payment_status', '')), 'merchant_id' => trim((string) $request->query('merchant_id', '')), 'plan_id' => trim((string) $request->query('plan_id', '')), + // 精确过滤:订阅ID(用于从订阅详情页跳转到平台订单列表时锁定范围) + 'site_subscription_id' => trim((string) $request->query('site_subscription_id', '')), 'fail_only' => (string) $request->query('fail_only', ''), 'synced_only' => (string) $request->query('synced_only', ''), 'sync_status' => trim((string) $request->query('sync_status', '')), @@ -219,6 +221,8 @@ class PlatformOrderController extends Controller 'payment_status' => trim((string) $request->query('payment_status', '')), 'merchant_id' => trim((string) $request->query('merchant_id', '')), 'plan_id' => trim((string) $request->query('plan_id', '')), + // 精确过滤:订阅ID(用于从订阅详情页跳转到平台订单列表时锁定范围) + 'site_subscription_id' => trim((string) $request->query('site_subscription_id', '')), 'fail_only' => (string) $request->query('fail_only', ''), 'synced_only' => (string) $request->query('synced_only', ''), 'sync_status' => trim((string) $request->query('sync_status', '')), @@ -333,6 +337,7 @@ class PlatformOrderController extends Controller 'payment_status' => trim((string) $request->input('payment_status', '')), 'merchant_id' => trim((string) $request->input('merchant_id', '')), 'plan_id' => trim((string) $request->input('plan_id', '')), + 'site_subscription_id' => trim((string) $request->input('site_subscription_id', '')), 'fail_only' => (string) $request->input('fail_only', ''), 'synced_only' => (string) $request->input('synced_only', ''), 'sync_status' => trim((string) $request->input('sync_status', '')), @@ -458,6 +463,7 @@ class PlatformOrderController extends Controller 'payment_status' => trim((string) $request->input('payment_status', '')), 'merchant_id' => trim((string) $request->input('merchant_id', '')), 'plan_id' => trim((string) $request->input('plan_id', '')), + 'site_subscription_id' => trim((string) $request->input('site_subscription_id', '')), 'fail_only' => (string) $request->input('fail_only', ''), 'synced_only' => (string) $request->input('synced_only', ''), 'sync_status' => trim((string) $request->input('sync_status', '')), @@ -514,6 +520,7 @@ class PlatformOrderController extends Controller ->when($filters['payment_status'] !== '', fn (Builder $builder) => $builder->where('payment_status', $filters['payment_status'])) ->when(($filters['merchant_id'] ?? '') !== '', fn (Builder $builder) => $builder->where('merchant_id', (int) $filters['merchant_id'])) ->when(($filters['plan_id'] ?? '') !== '', fn (Builder $builder) => $builder->where('plan_id', (int) $filters['plan_id'])) + ->when(($filters['site_subscription_id'] ?? '') !== '', fn (Builder $builder) => $builder->where('site_subscription_id', (int) $filters['site_subscription_id'])) ->when(($filters['fail_only'] ?? '') !== '', function (Builder $builder) { // 只看同步失败:meta.subscription_activation_error.message 存在即视为失败 $builder->whereRaw("JSON_EXTRACT(meta, '$.subscription_activation_error.message') IS NOT NULL"); diff --git a/resources/views/admin/platform_orders/index.blade.php b/resources/views/admin/platform_orders/index.blade.php index 2097416..b79c170 100644 --- a/resources/views/admin/platform_orders/index.blade.php +++ b/resources/views/admin/platform_orders/index.blade.php @@ -42,6 +42,8 @@ + +