diff --git a/resources/views/admin/dashboard.blade.php b/resources/views/admin/dashboard.blade.php index 45a0456..958a2e7 100644 --- a/resources/views/admin/dashboard.blade.php +++ b/resources/views/admin/dashboard.blade.php @@ -16,12 +16,25 @@ ]; $platformOrdersQuickLinks = [ + 'platform_orders' => \App\Support\BackUrl::withBack('/admin/platform-orders', $selfWithoutBack), + + // 平台订单(收费闭环)工作台入口:尽量保持与列表页筛选语义一致。 'unpaid_pending' => \App\Support\BackUrl::withBack('/admin/platform-orders?payment_status=unpaid&status=pending', $selfWithoutBack), // 待生效:paid + pending,并显式锁定 sync_status=unsynced(排除同步失败等异常单) 'paid_pending' => \App\Support\BackUrl::withBack('/admin/platform-orders?payment_status=paid&status=pending&sync_status=unsynced', $selfWithoutBack), // 可同步(工作台口径):只看可同步 + 未同步(排除同步失败等异常单),与工作台统计口径一致。 'syncable_only' => \App\Support\BackUrl::withBack('/admin/platform-orders?syncable_only=1&sync_status=unsynced', $selfWithoutBack), 'sync_failed' => \App\Support\BackUrl::withBack('/admin/platform-orders?sync_status=failed', $selfWithoutBack), + 'renewal_missing_subscription' => \App\Support\BackUrl::withBack('/admin/platform-orders?renewal_missing_subscription=1', $selfWithoutBack), + 'bmpa_failed' => \App\Support\BackUrl::withBack('/admin/platform-orders?bmpa_failed_only=1', $selfWithoutBack), + 'paid_no_receipt' => \App\Support\BackUrl::withBack('/admin/platform-orders?payment_status=paid&receipt_status=none', $selfWithoutBack), + 'reconcile_mismatch' => \App\Support\BackUrl::withBack('/admin/platform-orders?reconcile_mismatch=1', $selfWithoutBack), + 'refund_inconsistent' => \App\Support\BackUrl::withBack('/admin/platform-orders?refund_inconsistent=1', $selfWithoutBack), + ]; + + $subscriptionQuickLinks = [ + 'expiring_7d' => \App\Support\BackUrl::withBack('/admin/site-subscriptions?expiry=expiring_7d', $selfWithoutBack), + 'expired' => \App\Support\BackUrl::withBack('/admin/site-subscriptions?expiry=expired', $selfWithoutBack), ]; @endphp @@ -265,11 +278,11 @@ 待生效({{ (int) ($stats['platform_orders_paid_pending'] ?? 0) }}) 可同步({{ (int) ($stats['platform_orders_syncable'] ?? 0) }}) 同步失败({{ (int) ($stats['platform_orders_sync_failed'] ?? 0) }}) - 续费缺订阅({{ (int) ($stats['platform_orders_renewal_missing_subscription'] ?? 0) }}) - BMPA失败({{ (int) ($stats['platform_orders_bmpa_failed'] ?? 0) }}) - 无回执({{ (int) ($stats['platform_orders_paid_no_receipt'] ?? 0) }}) - 对账不一致({{ (int) ($stats['platform_orders_reconcile_mismatch'] ?? 0) }}) - 退款不一致({{ (int) ($stats['platform_orders_refund_inconsistent'] ?? 0) }}) + 续费缺订阅({{ (int) ($stats['platform_orders_renewal_missing_subscription'] ?? 0) }}) + BMPA失败({{ (int) ($stats['platform_orders_bmpa_failed'] ?? 0) }}) + 无回执({{ (int) ($stats['platform_orders_paid_no_receipt'] ?? 0) }}) + 对账不一致({{ (int) ($stats['platform_orders_reconcile_mismatch'] ?? 0) }}) + 退款不一致({{ (int) ($stats['platform_orders_refund_inconsistent'] ?? 0) }}) @php @@ -338,7 +351,7 @@
{{ $poSyncFailedPct }}%({{ $poSyncFailed }})
- +
BMPA失败
@@ -346,7 +359,7 @@
{{ $poBmpaFailedPct }}%({{ $poBmpaFailed }})
- +
无回执
@@ -354,7 +367,7 @@
{{ $poNoReceiptPct }}%({{ $poNoReceipt }})
- +
续费缺订阅
@@ -362,7 +375,7 @@
{{ $poRenewalMissingPct }}%({{ $poRenewalMissing }})
- +
对账不一致
@@ -370,7 +383,7 @@
{{ $poReconcileMismatchPct }}%({{ $poReconcileMismatch }})
- +
退款不一致
@@ -383,8 +396,8 @@
订阅到期治理:
@php @@ -399,7 +412,7 @@
占比(相对订阅总量 {{ $subTotal }})
- +
7天内到期
@@ -407,7 +420,7 @@
{{ $pctExpiring7d }}%({{ $subExpiring7d }})
- +
已过期
@@ -437,10 +450,7 @@
@@ -462,13 +472,13 @@ || (data_get($po->meta, 'payment_receipts.0.amount') !== null); $fixReceiptUrl = \App\Support\BackUrl::withBackAndFragment('/admin/platform-orders/' . $po->id, $selfWithoutBack, 'add-payment-receipt'); $fixRefundReceiptUrl = \App\Support\BackUrl::withBackAndFragment('/admin/platform-orders/' . $po->id, $selfWithoutBack, 'add-refund-receipt'); - $noReceiptListUrl = \App\Support\BackUrl::withBack('/admin/platform-orders?payment_status=paid&receipt_status=none', $selfWithoutBack); + $noReceiptListUrl = $platformOrdersQuickLinks['paid_no_receipt']; $syncErrMsg = (string) (data_get($po->meta, 'subscription_activation_error.message') ?? ''); $bmpaErrMsg = (string) (data_get($po->meta, 'batch_mark_paid_and_activate_error.message') ?? ''); - $syncFailedListUrl = \App\Support\BackUrl::withBack('/admin/platform-orders?sync_status=failed', $selfWithoutBack); - $bmpaFailedListUrl = \App\Support\BackUrl::withBack('/admin/platform-orders?bmpa_failed_only=1', $selfWithoutBack); + $syncFailedListUrl = $platformOrdersQuickLinks['sync_failed']; + $bmpaFailedListUrl = $platformOrdersQuickLinks['bmpa_failed']; // 扫描行:直达治理锚点(与下方提示块的链接口径保持一致) $scanGoReconcileUrl = \App\Support\BackUrl::withBackAndFragment('/admin/platform-orders/' . $po->id, $selfWithoutBack, 'payment-receipts'); @@ -625,13 +635,10 @@ @endif @if((string) $po->status === 'pending' && (string) $po->payment_status === 'paid' && $po->isReconcileMismatch()) - @php - $reconcileMismatchUrl = \App\Support\BackUrl::withBack('/admin/platform-orders?reconcile_mismatch=1', $selfWithoutBack); - @endphp
对账不一致 - 进入集合 + 进入集合 去对账 @@ -639,13 +646,10 @@
@endif @if($po->isRefundInconsistent()) - @php - $refundInconsistentUrl = \App\Support\BackUrl::withBack('/admin/platform-orders?refund_inconsistent=1', $selfWithoutBack); - @endphp
退款不一致 - 进入集合 + 进入集合 去核对退款 @@ -653,13 +657,10 @@
@endif @if((string) $po->order_type === 'renewal' && empty($po->site_subscription_id)) - @php - $renewalMissingSubscriptionUrl = \App\Support\BackUrl::withBack('/admin/platform-orders?renewal_missing_subscription=1', $selfWithoutBack); - @endphp
续费缺订阅 - 进入集合 + 进入集合 去关联订阅