diff --git a/app/Http/Controllers/Admin/PlatformOrderController.php b/app/Http/Controllers/Admin/PlatformOrderController.php
index d333611..e0a5c71 100644
--- a/app/Http/Controllers/Admin/PlatformOrderController.php
+++ b/app/Http/Controllers/Admin/PlatformOrderController.php
@@ -138,6 +138,8 @@ class PlatformOrderController extends Controller
// 精确过滤:订阅ID(用于从订阅详情页跳转到平台订单列表时锁定范围)
'site_subscription_id' => trim((string) $request->query('site_subscription_id', '')),
'fail_only' => (string) $request->query('fail_only', ''),
+ // 只看批量“标记支付并生效”失败:meta.batch_mark_paid_and_activate_error.message 存在
+ 'bmpa_failed_only' => (string) $request->query('bmpa_failed_only', ''),
'synced_only' => (string) $request->query('synced_only', ''),
'sync_status' => trim((string) $request->query('sync_status', '')),
'keyword' => trim((string) $request->query('keyword', '')),
@@ -819,6 +821,8 @@ class PlatformOrderController extends Controller
// 精确过滤:订阅ID(用于从订阅详情页跳转到平台订单列表时锁定范围)
'site_subscription_id' => trim((string) $request->query('site_subscription_id', '')),
'fail_only' => (string) $request->query('fail_only', ''),
+ // 只看批量“标记支付并生效”失败:meta.batch_mark_paid_and_activate_error.message 存在
+ 'bmpa_failed_only' => (string) $request->query('bmpa_failed_only', ''),
'synced_only' => (string) $request->query('synced_only', ''),
'sync_status' => trim((string) $request->query('sync_status', '')),
'keyword' => trim((string) $request->query('keyword', '')),
@@ -1533,6 +1537,10 @@ class PlatformOrderController extends Controller
// 只看同步失败:meta.subscription_activation_error.message 存在即视为失败
$builder->whereRaw("JSON_EXTRACT(meta, '$.subscription_activation_error.message') IS NOT NULL");
})
+ ->when(($filters['bmpa_failed_only'] ?? '') !== '', function (Builder $builder) {
+ // 只看批量“标记支付并生效”失败:meta.batch_mark_paid_and_activate_error.message 存在即视为失败
+ $builder->whereRaw("JSON_EXTRACT(meta, '$.batch_mark_paid_and_activate_error.message') IS NOT NULL");
+ })
->when(($filters['synced_only'] ?? '') !== '', function (Builder $builder) {
// 只看已同步:meta.subscription_activation.subscription_id 存在即视为已同步
$builder->whereRaw("JSON_EXTRACT(meta, '$.subscription_activation.subscription_id') IS NOT NULL");
diff --git a/resources/views/admin/platform_orders/index.blade.php b/resources/views/admin/platform_orders/index.blade.php
index 832c29d..932c779 100644
--- a/resources/views/admin/platform_orders/index.blade.php
+++ b/resources/views/admin/platform_orders/index.blade.php
@@ -93,6 +93,10 @@
只看同步失败
+