feat(platform-orders): 摘要卡增加无回执订单数并补快捷筛选入口

This commit is contained in:
萝卜
2026-03-10 22:47:26 +00:00
parent 829a418d3b
commit f82ceec166
2 changed files with 18 additions and 2 deletions

View File

@@ -282,7 +282,16 @@ class PlatformOrderController extends Controller
'partially_refunded_orders' => (clone $baseQuery)->where('payment_status', 'partially_refunded')->count(),
'refunded_orders' => (clone $baseQuery)->where('payment_status', 'refunded')->count(),
'total_refunded_amount' => $totalRefundedAmount,
'receipt_orders' => (clone $baseQuery)->whereRaw("JSON_EXTRACT(meta, '$.payment_receipts[0].amount') IS NOT NULL")->count(),
'receipt_orders' => (clone $baseQuery)
->where(function (Builder $q) {
$q->whereRaw("JSON_EXTRACT(meta, '$.payment_summary.total_amount') IS NOT NULL")
->orWhereRaw("JSON_EXTRACT(meta, '$.payment_receipts[0].amount') IS NOT NULL");
})
->count(),
'no_receipt_orders' => (clone $baseQuery)
->whereRaw("JSON_EXTRACT(meta, '$.payment_summary.total_amount') IS NULL")
->whereRaw("JSON_EXTRACT(meta, '$.payment_receipts[0].amount') IS NULL")
->count(),
'total_receipt_amount' => $totalReceiptAmount,
// 对账差额:回执总额 - 订单已付总额(当前筛选范围)
'reconciliation_delta' => (float) ($totalReceiptAmount - $totalPaidAmount),

View File

@@ -25,6 +25,8 @@
<span class="muted"></span>
<a href="/admin/platform-orders?payment_status=refunded" class="muted">已退款</a>
<span class="muted"></span>
<a href="/admin/platform-orders?receipt_status=none" class="muted">无回执</a>
<span class="muted"></span>
<a href="/admin/platform-orders?reconcile_mismatch=1" class="muted">对账不一致</a>
</div>
</div>
@@ -144,7 +146,12 @@
<div class="card">
<h3>有回执订单 / 回执总额</h3>
<div class="metric-number">{{ $summaryStats['receipt_orders'] ?? 0 }} / ¥{{ number_format((float) ($summaryStats['total_receipt_amount'] ?? 0), 2) }}</div>
<div class="muted muted-xs">基于 meta.payment_summary.total_amount(缺省回退汇总)</div>
<div class="muted muted-xs">有回执口径:payment_summary.total_amount 存在或 payment_receipts 有记录</div>
</div>
<div class="card">
<h3>无回执订单</h3>
<div class="metric-number">{{ $summaryStats['no_receipt_orders'] ?? 0 }}</div>
<div class="muted muted-xs"> payment_summary 且无 payment_receipts</div>
</div>
<div class="card">
<h3>对账差额</h3>