diff --git a/app/Http/Controllers/Admin/SiteSubscriptionController.php b/app/Http/Controllers/Admin/SiteSubscriptionController.php index 6a8c422..9dc3297 100644 --- a/app/Http/Controllers/Admin/SiteSubscriptionController.php +++ b/app/Http/Controllers/Admin/SiteSubscriptionController.php @@ -21,12 +21,34 @@ class SiteSubscriptionController extends Controller $subscription->loadMissing(['merchant', 'plan']); - $platformOrders = PlatformOrder::query() - ->where('site_subscription_id', $subscription->id) + $platformOrdersQuery = PlatformOrder::query() + ->where('site_subscription_id', $subscription->id); + + $platformOrders = (clone $platformOrdersQuery) ->latest('id') ->paginate(10) ->withQueryString(); + // 可治理摘要:订阅下的订单同步情况 + $summaryStats = [ + 'total_orders' => (clone $platformOrdersQuery)->count(), + 'synced_orders' => (clone $platformOrdersQuery) + ->whereRaw("JSON_EXTRACT(meta, '$.subscription_activation.subscription_id') IS NOT NULL") + ->count(), + 'failed_orders' => (clone $platformOrdersQuery) + ->whereRaw("JSON_EXTRACT(meta, '$.subscription_activation_error.message') IS NOT NULL") + ->count(), + 'unsynced_orders' => (clone $platformOrdersQuery) + ->whereRaw("JSON_EXTRACT(meta, '$.subscription_activation.subscription_id') IS NULL") + ->whereRaw("JSON_EXTRACT(meta, '$.subscription_activation_error.message') IS NULL") + ->count(), + 'syncable_orders' => (clone $platformOrdersQuery) + ->where('payment_status', 'paid') + ->where('status', 'activated') + ->whereRaw("JSON_EXTRACT(meta, '$.subscription_activation.subscription_id') IS NULL") + ->count(), + ]; + $endsAt = $subscription->ends_at; $expiryLabel = '无到期'; if ($endsAt) { @@ -42,6 +64,7 @@ class SiteSubscriptionController extends Controller return view('admin.site_subscriptions.show', [ 'subscription' => $subscription, 'platformOrders' => $platformOrders, + 'summaryStats' => $summaryStats, 'statusLabels' => $this->statusLabels(), 'expiryLabel' => $expiryLabel, ]); diff --git a/resources/views/admin/site_subscriptions/show.blade.php b/resources/views/admin/site_subscriptions/show.blade.php index e13ea13..722be19 100644 --- a/resources/views/admin/site_subscriptions/show.blade.php +++ b/resources/views/admin/site_subscriptions/show.blade.php @@ -75,6 +75,25 @@ +