feat(admin-dashboard): add scanline governance summary for recent orders

This commit is contained in:
萝卜
2026-03-16 16:35:10 +08:00
parent 98004a0a1c
commit 1768d6bddc
3 changed files with 115 additions and 0 deletions

View File

@@ -320,6 +320,16 @@
$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);
// 运营扫描用的“治理状态摘要”(不替代下方的治理提示入口,只用于快速判断)
$receiptStatusText = $hasReceiptEvidence ? '有' : '无';
$reconcileStatusText = $hasReceiptEvidence ? ($po->isReconcileMismatch() ? '不一致' : '一致') : '-';
$refundStatusText = $po->isRefundInconsistent() ? '异常' : '正常';
$syncStatusText = $syncErrMsg !== '' ? '失败' : '正常';
$bmpaStatusText = $bmpaErrMsg !== '' ? '失败' : '正常';
$subscriptionStatusText = ((string) $po->order_type === 'renewal')
? (empty($po->site_subscription_id) ? '缺' : '有')
: '-';
// 运营提效:失败原因较短时,提供“一键进入同原因集合”链接(避免复制粘贴)。
$FAILED_REASON_KEYWORD_MAX_LEN = 80;
$syncReasonUrl = '';
@@ -346,6 +356,19 @@
<span class="muted"></span>
{{ (string) (optional($po->plan)->name ?: ((int) ($po->plan_id ?? 0) > 0 ? ('套餐#' . (int) $po->plan_id) : '-')) }}
</div>
<div class="muted muted-xs adm-order-scanline" data-role="recent-platform-order-scanline">
<span class="adm-order-scanitem" title="支付回执证据payment_summary/payment_receipts">回执:<strong>{{ $receiptStatusText }}</strong></span>
<span class="adm-order-scansep"></span>
<span class="adm-order-scanitem" title="回执金额 vs 已付金额(仅在有回执证据时判断)">对账:<strong>{{ $reconcileStatusText }}</strong></span>
<span class="adm-order-scansep"></span>
<span class="adm-order-scanitem" title="退款金额与支付状态一致性">退款:<strong>{{ $refundStatusText }}</strong></span>
<span class="adm-order-scansep"></span>
<span class="adm-order-scanitem" title="订阅激活同步subscription_activation_error">同步:<strong>{{ $syncStatusText }}</strong></span>
<span class="adm-order-scansep"></span>
<span class="adm-order-scanitem" title="批量标记已付并激活batch_mark_paid_and_activate_error">BMPA<strong>{{ $bmpaStatusText }}</strong></span>
<span class="adm-order-scansep"></span>
<span class="adm-order-scanitem" title="续费单订阅关联site_subscription_id">订阅:<strong>{{ $subscriptionStatusText }}</strong></span>
</div>
</td>
<td>¥{{ number_format((float) $po->payable_amount, 2) }}</td>
<td>