feat(admin): platform orders filter by subscription id

This commit is contained in:
萝卜
2026-03-10 12:54:23 +00:00
parent cb3cc18d5d
commit c6c30cb6ae
3 changed files with 104 additions and 0 deletions

View File

@@ -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");