diff --git a/app/Http/Controllers/Admin/PlatformOrderController.php b/app/Http/Controllers/Admin/PlatformOrderController.php index 06b8b7e..a42c283 100644 --- a/app/Http/Controllers/Admin/PlatformOrderController.php +++ b/app/Http/Controllers/Admin/PlatformOrderController.php @@ -262,6 +262,8 @@ class PlatformOrderController extends Controller 'batch_synced_24h' => (string) $request->query('batch_synced_24h', ''), // 批次号筛选:用于队列批量同步 run_id 追溯 'batch_activation_run_id' => trim((string) $request->query('batch_activation_run_id', '')), + // 批量 BMPA 批次号筛选(run_id 追溯) + 'batch_bmpa_run_id' => trim((string) $request->query('batch_bmpa_run_id', '')), // 只看最近 24 小时批量“标记支付并生效(BMPA)”过的订单(可治理追踪) 'batch_mark_paid_and_activate_24h' => (string) $request->query('batch_mark_paid_and_activate_24h', ''), // 只看最近 24 小时批量“仅标记为已生效”过的订单(可治理追踪) @@ -1296,6 +1298,8 @@ class PlatformOrderController extends Controller 'batch_synced_24h' => (string) $request->query('batch_synced_24h', ''), // 批次号筛选:用于队列批量同步 run_id 追溯 'batch_activation_run_id' => trim((string) $request->query('batch_activation_run_id', '')), + // 批量 BMPA 批次号筛选(run_id 追溯) + 'batch_bmpa_run_id' => trim((string) $request->query('batch_bmpa_run_id', '')), // 只看最近 24 小时批量“标记支付并生效(BMPA)”过的订单(可治理追踪) 'batch_mark_paid_and_activate_24h' => (string) $request->query('batch_mark_paid_and_activate_24h', ''), // 只看最近 24 小时批量“仅标记为已生效”过的订单(可治理追踪) @@ -2459,6 +2463,20 @@ class PlatformOrderController extends Controller $builder->whereRaw("JSON_UNQUOTE(JSON_EXTRACT(meta, '$.batch_activation.run_id')) = ?", [$runId]); } }) + ->when(($filters['batch_bmpa_run_id'] ?? '') !== '', function (Builder $builder) use ($filters) { + // 按批次号筛选:用于批量 BMPA run_id 追溯 + $runId = trim((string) ($filters['batch_bmpa_run_id'] ?? '')); + if ($runId === '') { + return; + } + + $driver = $builder->getQuery()->getConnection()->getDriverName(); + if ($driver === 'sqlite') { + $builder->whereRaw("JSON_EXTRACT(meta, '$.batch_mark_paid_and_activate.run_id') = ?", [$runId]); + } else { + $builder->whereRaw("JSON_UNQUOTE(JSON_EXTRACT(meta, '$.batch_mark_paid_and_activate.run_id')) = ?", [$runId]); + } + }) ->when(($filters['batch_mark_paid_and_activate_24h'] ?? '') !== '', function (Builder $builder) { // 只看最近 24 小时批量“标记支付并生效(BMPA)”过的订单(基于 meta.batch_mark_paid_and_activate.at) $since = now()->subHours(24)->format('Y-m-d H:i:s'); diff --git a/resources/views/admin/platform_orders/index.blade.php b/resources/views/admin/platform_orders/index.blade.php index ef42841..610bfad 100644 --- a/resources/views/admin/platform_orders/index.blade.php +++ b/resources/views/admin/platform_orders/index.blade.php @@ -471,7 +471,8 @@ 最近24小时批量同步过 - + +