From 0e51bb711068fcd0cf40f85b80bf02e2d32b2c46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=90=9D=E5=8D=9C?= Date: Tue, 10 Mar 2026 11:59:45 +0000 Subject: [PATCH] feat(admin): subscriptions list links + platform orders count --- .../Admin/SiteSubscriptionController.php | 6 ++-- .../admin/site_subscriptions/index.blade.php | 31 ++++++++++++++++--- .../AdminSiteSubscriptionExportTest.php | 1 + 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/Admin/SiteSubscriptionController.php b/app/Http/Controllers/Admin/SiteSubscriptionController.php index 30a17ce..810ca4a 100644 --- a/app/Http/Controllers/Admin/SiteSubscriptionController.php +++ b/app/Http/Controllers/Admin/SiteSubscriptionController.php @@ -27,7 +27,7 @@ class SiteSubscriptionController extends Controller ]; $query = $this->applyFilters( - SiteSubscription::query()->with(['merchant', 'plan']), + SiteSubscription::query()->with(['merchant', 'plan'])->withCount('platformOrders'), $filters )->orderBy('id'); @@ -44,6 +44,7 @@ class SiteSubscriptionController extends Controller '订阅号', '站点', '套餐', + '关联订单数', '状态', '计费周期', '周期(月)', @@ -81,6 +82,7 @@ class SiteSubscriptionController extends Controller $sub->subscription_no, $sub->merchant?->name ?? '', $sub->plan_name ?: ($sub->plan?->name ?? ''), + (int) ($sub->platform_orders_count ?? 0), $statusText, $sub->billing_cycle ?: '', (int) $sub->period_months, @@ -117,7 +119,7 @@ class SiteSubscriptionController extends Controller ]; $query = $this->applyFilters( - SiteSubscription::query()->with(['merchant', 'plan']), + SiteSubscription::query()->with(['merchant', 'plan'])->withCount('platformOrders'), $filters ); diff --git a/resources/views/admin/site_subscriptions/index.blade.php b/resources/views/admin/site_subscriptions/index.blade.php index aa3358e..532de2f 100644 --- a/resources/views/admin/site_subscriptions/index.blade.php +++ b/resources/views/admin/site_subscriptions/index.blade.php @@ -97,6 +97,7 @@ 开始时间 到期时间 到期状态 + 关联订单数 生效时间 @@ -104,9 +105,23 @@ @forelse($subscriptions as $subscription) {{ $subscription->id }} - {{ $subscription->subscription_no }} - {{ $subscription->merchant?->name ?? '未关联站点' }} - {{ $subscription->plan_name ?: ($subscription->plan?->name ?? '未设置') }} + + {{ $subscription->subscription_no }} + + + @if($subscription->merchant) + {{ $subscription->merchant->name }} + @else + 未关联站点 + @endif + + + @if($subscription->plan) + {{ $subscription->plan_name ?: $subscription->plan->name }} + @else + {{ $subscription->plan_name ?: '未设置' }} + @endif + {{ ($statusLabels[$subscription->status] ?? $subscription->status) }} ({{ $subscription->status }}) {{ $subscription->billing_cycle ?: '-' }} {{ $subscription->period_months }} @@ -129,11 +144,19 @@ @endphp {{ $expiryLabel }} + + @php $cnt = (int) ($subscription->platform_orders_count ?? 0); @endphp + @if($cnt > 0) + {{ $cnt }} + @else + 0 + @endif + {{ optional($subscription->activated_at)->format('Y-m-d H:i:s') ?: '-' }} @empty - 暂无订阅数据,当前阶段先把订阅主表与总台目录立起来,后续再接订阅创建/激活/续费链路。 + 暂无订阅数据,当前阶段先把订阅主表与总台目录立起来,后续再接订阅创建/激活/续费链路。 @endforelse diff --git a/tests/Feature/AdminSiteSubscriptionExportTest.php b/tests/Feature/AdminSiteSubscriptionExportTest.php index bb7d90e..2fbf69a 100644 --- a/tests/Feature/AdminSiteSubscriptionExportTest.php +++ b/tests/Feature/AdminSiteSubscriptionExportTest.php @@ -63,6 +63,7 @@ class AdminSiteSubscriptionExportTest extends TestCase $this->assertStringContainsString('SUB_EXPORT_0001', $content); $this->assertStringContainsString('到期时间', $content); $this->assertStringContainsString('到期状态', $content); + $this->assertStringContainsString('关联订单数', $content); $this->assertStringContainsString('未到期', $content); // 状态导出应为“中文标签 + 原始值”