收费工作台(快捷治理)
聚焦收费闭环的日常治理入口:订单 → 订阅 → 套餐。
平台订单快捷筛选(只保留“点完能做事”的治理入口):
高级筛选(少用,默认收起)
@php
$poTotal = (int) ($stats['platform_orders'] ?? 0);
$poSyncFailed = (int) ($stats['platform_orders_sync_failed'] ?? 0);
$poBmpaFailed = (int) ($stats['platform_orders_bmpa_failed'] ?? 0);
$poNoReceipt = (int) ($stats['platform_orders_paid_no_receipt'] ?? 0);
$poRenewalMissing = (int) ($stats['platform_orders_renewal_missing_subscription'] ?? 0);
$poReconcileMismatch = (int) ($stats['platform_orders_reconcile_mismatch'] ?? 0);
$poRefundInconsistent = (int) ($stats['platform_orders_refund_inconsistent'] ?? 0);
$poSyncFailedPct = $poTotal > 0 ? min(100, max(0, round(($poSyncFailed / $poTotal) * 100, 1))) : 0;
$poBmpaFailedPct = $poTotal > 0 ? min(100, max(0, round(($poBmpaFailed / $poTotal) * 100, 1))) : 0;
$poNoReceiptPct = $poTotal > 0 ? min(100, max(0, round(($poNoReceipt / $poTotal) * 100, 1))) : 0;
$poRenewalMissingPct = $poTotal > 0 ? min(100, max(0, round(($poRenewalMissing / $poTotal) * 100, 1))) : 0;
$poReconcileMismatchPct = $poTotal > 0 ? min(100, max(0, round(($poReconcileMismatch / $poTotal) * 100, 1))) : 0;
$poRefundInconsistentPct = $poTotal > 0 ? min(100, max(0, round(($poRefundInconsistent / $poTotal) * 100, 1))) : 0;
@endphp
@php
$poUnpaidPending = (int) ($stats['platform_orders_unpaid_pending'] ?? 0);
$poPaidPending = (int) ($stats['platform_orders_paid_pending'] ?? 0);
$poSyncable = (int) ($stats['platform_orders_syncable'] ?? 0);
$poUnpaidPendingPct = $poTotal > 0 ? min(100, max(0, round(($poUnpaidPending / $poTotal) * 100, 1))) : 0;
$poPaidPendingPct = $poTotal > 0 ? min(100, max(0, round(($poPaidPending / $poTotal) * 100, 1))) : 0;
$poSyncablePct = $poTotal > 0 ? min(100, max(0, round(($poSyncable / $poTotal) * 100, 1))) : 0;
@endphp
订阅到期治理:
@php
$subTotal = (int) ($stats['site_subscriptions'] ?? 0);
$subExpiring7d = (int) ($stats['site_subscriptions_expiring_7d'] ?? 0);
$subExpired = (int) ($stats['site_subscriptions_expired'] ?? 0);
$pctExpiring7d = $subTotal > 0 ? min(100, max(0, round(($subExpiring7d / $subTotal) * 100, 1))) : 0;
$pctExpired = $subTotal > 0 ? min(100, max(0, round(($subExpired / $subTotal) * 100, 1))) : 0;
@endphp
说明:这里先把收费主链的高频治理入口收敛到仪表盘;后续再补趋势/排行的真实聚合。
平台定位(运营版)
只保留“看完知道下一步做什么”的北极星指标与治理积压。
@php
$ops = $platformOpsOverview ?? [];
$opsLinks = (array) ($ops['links'] ?? []);
$paidRevenue30d = (float) ($ops['paid_revenue_30d'] ?? 0);
$activePaidMerchants = (int) ($ops['active_paid_merchants'] ?? 0);
$renewalRate30d = (float) ($ops['renewal_success_rate_30d'] ?? 0);
$renewalSuccess30d = (int) ($ops['renewal_success_30d'] ?? 0);
$renewalCreated30d = (int) ($ops['renewal_created_30d'] ?? 0);
$ordersTotal7d = (int) ($ops['orders_total_7d'] ?? 0);
$funnelUnpaidPending7d = (int) ($ops['funnel_unpaid_pending_7d'] ?? 0);
$funnelPaid7d = (int) ($ops['funnel_paid_7d'] ?? 0);
$funnelPaidActivated7d = (int) ($ops['funnel_paid_activated_7d'] ?? 0);
$goBmpa = (int) ($ops['govern_bmpa_processable'] ?? 0);
$goSyncable = (int) ($ops['govern_syncable'] ?? 0);
$goSyncFailed = (int) ($ops['govern_sync_failed'] ?? 0);
@endphp
@php
// 北极星指标图形化:给运营“规模感/健康感”,但不引入额外分类维度。
$merchantsTotal = (int) ($stats['merchants'] ?? 0);
$pctActivePaidMerchants = $merchantsTotal > 0 ? min(100, max(0, round(($activePaidMerchants / $merchantsTotal) * 100, 1))) : 0;
@endphp
@php
$den = max(1, $ordersTotal7d);
$pctUnpaidPending = $den > 0 ? min(100, max(0, round(($funnelUnpaidPending7d / $den) * 100, 1))) : 0;
$pctPaid = $den > 0 ? min(100, max(0, round(($funnelPaid7d / $den) * 100, 1))) : 0;
$pctPaidActivated = $den > 0 ? min(100, max(0, round(($funnelPaidActivated7d / $den) * 100, 1))) : 0;
// 待处理治理:以平台订单总量作为分母,给一个“规模感”(不要求精确经营含义)。
$poTotalForOps = (int) ($stats['platform_orders'] ?? 0);
$denOps = max(1, $poTotalForOps);
$pctGoBmpa = $poTotalForOps > 0 ? min(100, max(0, round(($goBmpa / $denOps) * 100, 1))) : 0;
$pctGoSyncable = $poTotalForOps > 0 ? min(100, max(0, round(($goSyncable / $denOps) * 100, 1))) : 0;
$pctGoSyncFailed = $poTotalForOps > 0 ? min(100, max(0, round(($goSyncFailed / $denOps) * 100, 1))) : 0;
@endphp
@php
// 平台健康预警:原因型风险(点进去有明确动作:补回执/对账/核对退款)。
$riskNoReceipt = (int) ($stats['platform_orders_paid_no_receipt'] ?? 0);
$riskReconcileMismatch = (int) ($stats['platform_orders_reconcile_mismatch'] ?? 0);
$riskRefundInconsistent = (int) ($stats['platform_orders_refund_inconsistent'] ?? 0);
$pctRiskNoReceipt = $poTotalForOps > 0 ? min(100, max(0, round(($riskNoReceipt / $denOps) * 100, 1))) : 0;
$pctRiskReconcileMismatch = $poTotalForOps > 0 ? min(100, max(0, round(($riskReconcileMismatch / $denOps) * 100, 1))) : 0;
$pctRiskRefundInconsistent = $poTotalForOps > 0 ? min(100, max(0, round(($riskRefundInconsistent / $denOps) * 100, 1))) : 0;
// 异常积压:点进去要做“治理修复/补关联/重试”。
$exBmpaFailed = (int) ($stats['platform_orders_bmpa_failed'] ?? 0);
$exRenewalMissing = (int) ($stats['platform_orders_renewal_missing_subscription'] ?? 0);
$pctExBmpaFailed = $poTotalForOps > 0 ? min(100, max(0, round(($exBmpaFailed / $denOps) * 100, 1))) : 0;
$pctExRenewalMissing = $poTotalForOps > 0 ? min(100, max(0, round(($exRenewalMissing / $denOps) * 100, 1))) : 0;
@endphp
更多异常积压(少用)
异常型治理:批量失败 / 续费缺订阅等。
BMPA失败
{{ $pctExBmpaFailed }}%({{ $exBmpaFailed }})
续费缺订阅
{{ $pctExRenewalMissing }}%({{ $exRenewalMissing }})