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 + +
+ 已过期({{ $summaryStats['expired_subscriptions'] ?? 0 }}) + 7天内到期({{ $summaryStats['expiring_7d_subscriptions'] ?? 0 }}) +
+ +
建议:先处理“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天内到期'); + } +}