diff --git a/app/Http/Controllers/Admin/DashboardController.php b/app/Http/Controllers/Admin/DashboardController.php index ec3a919..1eb2b03 100644 --- a/app/Http/Controllers/Admin/DashboardController.php +++ b/app/Http/Controllers/Admin/DashboardController.php @@ -55,6 +55,8 @@ class DashboardController extends Controller 'platform_orders_paid_pending' => PlatformOrder::query() ->where('payment_status', 'paid') ->where('status', 'pending') + // 口径对齐“待生效”语义:排除明确的同步失败(失败单应该去同步失败治理) + ->whereRaw("JSON_EXTRACT(meta, '$.subscription_activation_error.message') IS NULL") ->count(), // 同步失败:沿用平台订单列表口径(meta.subscription_activation_error.message 存在即失败) 'platform_orders_sync_failed' => PlatformOrder::query() diff --git a/tests/Feature/AdminDashboardBillingWorkbenchQuickLinksShouldShowCountsTest.php b/tests/Feature/AdminDashboardBillingWorkbenchQuickLinksShouldShowCountsTest.php index b24b7b5..0aa4b7e 100644 --- a/tests/Feature/AdminDashboardBillingWorkbenchQuickLinksShouldShowCountsTest.php +++ b/tests/Feature/AdminDashboardBillingWorkbenchQuickLinksShouldShowCountsTest.php @@ -86,9 +86,9 @@ class AdminDashboardBillingWorkbenchQuickLinksShouldShowCountsTest extends TestC $res = $this->get('/admin'); $res->assertOk(); - // paid_pending 的定义是 paid + pending,其中包含 sync_failed 那一条,因此预期为 2 + // 待生效口径:paid + pending,但排除“同步失败”(失败应在同步失败集合处理) $res->assertSee('待支付(1)'); - $res->assertSee('待生效(2)'); + $res->assertSee('待生效(1)'); $res->assertSee('同步失败(1)'); } }