diff --git a/resources/views/admin/site_subscriptions/index.blade.php b/resources/views/admin/site_subscriptions/index.blade.php index 9d58740..5074ce1 100644 --- a/resources/views/admin/site_subscriptions/index.blade.php +++ b/resources/views/admin/site_subscriptions/index.blade.php @@ -38,6 +38,13 @@ // - 拒绝 nested back=(避免 URL 膨胀/绕过) $incomingBack = (string) request()->query('back', ''); $safeBackForLinks = \App\Support\BackUrl::sanitizeForLinks($incomingBack); + + // 用于摘要卡等入口:保留当前 query 并覆盖字段,同时安全透传 back。 + $safeFullUrlWithQuery = function (array $overrides = []) use ($safeBackForLinks) { + return \App\Support\BackUrl::currentPathWithQuery($overrides, $safeBackForLinks); + }; + + $subscriptionIndexUrl = \App\Support\BackUrl::withBack('/admin/site-subscriptions', $safeBackForLinks); @endphp

这里是总台视角的订阅目录页,承接“套餐 -> 订阅 -> 平台订单”的收费主链中间层。

@@ -118,27 +125,39 @@

订阅总数

-
{{ $summaryStats['total_subscriptions'] ?? 0 }}
+

已生效

-
{{ $summaryStats['activated_subscriptions'] ?? 0 }}
+

待生效

-
{{ $summaryStats['pending_subscriptions'] ?? 0 }}
+

已取消

-
{{ $summaryStats['cancelled_subscriptions'] ?? 0 }}
+

已过期(按到期时间)

-
{{ $summaryStats['expired_subscriptions'] ?? 0 }}
+

7天内到期

-
{{ $summaryStats['expiring_7d_subscriptions'] ?? 0 }}
+
diff --git a/tests/Feature/AdminSiteSubscriptionIndexSummaryCardsAreClickableTest.php b/tests/Feature/AdminSiteSubscriptionIndexSummaryCardsAreClickableTest.php new file mode 100644 index 0000000..cc0e64d --- /dev/null +++ b/tests/Feature/AdminSiteSubscriptionIndexSummaryCardsAreClickableTest.php @@ -0,0 +1,40 @@ +seed(); + + $this->post('/admin/login', [ + 'email' => 'platform.admin@demo.local', + 'password' => 'Platform@123456', + ])->assertRedirect('/admin'); + } + + public function test_summary_cards_should_link_to_filtered_sets(): void + { + $this->loginAsPlatformAdmin(); + + $this->get('/admin/site-subscriptions') + ->assertOk() + ->assertSee('订阅总数') + ->assertSee('已生效') + ->assertSee('待生效') + ->assertSee('已取消') + ->assertSee('已过期(按到期时间)') + ->assertSee('7天内到期') + ->assertSee('status=activated', false) + ->assertSee('status=pending', false) + ->assertSee('status=cancelled', false) + ->assertSee('expiry=expired', false) + ->assertSee('expiry=expiring_7d', false); + } +}