platform orders: add bmpa_failed_only filter for governance

This commit is contained in:
萝卜
2026-03-13 12:56:59 +00:00
parent e956d465da
commit 77628f68a8
3 changed files with 106 additions and 0 deletions

View File

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