From a88a07755bf6f5b3230bc04bbcbb1ad5e5eaad82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=90=9D=E5=8D=9C?= Date: Sun, 15 Mar 2026 00:55:09 +0000 Subject: [PATCH] Subscriptions: add expiry governance block on index --- .../admin/site_subscriptions/index.blade.php | 17 +++++++++ ...criptionIndexExpiryGovernanceBlockTest.php | 38 +++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 tests/Feature/AdminSiteSubscriptionIndexExpiryGovernanceBlockTest.php diff --git a/resources/views/admin/site_subscriptions/index.blade.php b/resources/views/admin/site_subscriptions/index.blade.php index acbb723..e78a0d0 100644 --- a/resources/views/admin/site_subscriptions/index.blade.php +++ b/resources/views/admin/site_subscriptions/index.blade.php @@ -86,6 +86,23 @@ +
+

到期治理

+
按到期时间(ends_at)快速定位需要续费/处理的订阅集合(不改变订阅 status 字段)。
+ + @php + $expiredUrl = $buildQuickFilterUrl(['status' => null, 'expiry' => 'expired']); + $expiring7dUrl = $buildQuickFilterUrl(['status' => null, 'expiry' => 'expiring_7d']); + @endphp + + + +
建议:先处理“7天内到期”续费触达,再处理“已过期”补单或关闭。
+
+

筛选条件

diff --git a/tests/Feature/AdminSiteSubscriptionIndexExpiryGovernanceBlockTest.php b/tests/Feature/AdminSiteSubscriptionIndexExpiryGovernanceBlockTest.php new file mode 100644 index 0000000..2907857 --- /dev/null +++ b/tests/Feature/AdminSiteSubscriptionIndexExpiryGovernanceBlockTest.php @@ -0,0 +1,38 @@ +seed(); + + $this->post('/admin/login', [ + 'email' => 'platform.admin@demo.local', + 'password' => 'Platform@123456', + ])->assertRedirect('/admin'); + } + + public function test_index_should_render_expiry_governance_block_with_quick_links(): void + { + $this->loginAsPlatformAdmin(); + + $res = $this->get('/admin/site-subscriptions'); + $res->assertOk(); + + $res->assertSee('到期治理'); + + // 链接应使用 quick filter:仅 expiry,不附带 status + $res->assertSee('href="/admin/site-subscriptions?expiry=expired"', false); + $res->assertSee('href="/admin/site-subscriptions?expiry=expiring_7d"', false); + + $res->assertSee('已过期'); + $res->assertSee('7天内到期'); + } +}