diff --git a/resources/views/admin/platform_orders/show.blade.php b/resources/views/admin/platform_orders/show.blade.php
index 7d581e8..bb8200a 100644
--- a/resources/views/admin/platform_orders/show.blade.php
+++ b/resources/views/admin/platform_orders/show.blade.php
@@ -61,16 +61,10 @@
}
$refundCount = (int) (data_get($order->meta, 'refund_summary.count') ?? 0);
- $refundTotal = (float) (data_get($order->meta, 'refund_summary.total_amount') ?? 0);
+ $refundTotal = (float) $order->refundTotal();
if ($refundCount <= 0) {
$refundCount = count($refundReceiptsRaw);
}
- if ($refundTotal <= 0) {
- $refundTotal = 0.0;
- foreach ($refundReceiptsRaw as $r) {
- $refundTotal += (float) (data_get($r, 'amount') ?? 0);
- }
- }
@endphp
| 回执数 / 回执总额 | {{ $receiptCount }} / ¥{{ number_format($receiptTotal, 2) }} |
| 退款笔数 / 退款总额 | {{ $refundCount }} / ¥{{ number_format($refundTotal, 2) }} |
@@ -90,6 +84,9 @@
$canFixRefundedButNotEnough = $paidAmountFloat > 0
&& $order->payment_status === 'refunded'
&& (round($refundTotal * 100) + 1) < round($paidAmountFloat * 100);
+
+ // 统一口径:与 refund_inconsistent 筛选一致(模型方法)
+ $isRefundInconsistent = (bool) $order->isRefundInconsistent();
@endphp
@if($canMarkRefunded || $canFixRefundedButNotEnough)
@@ -124,10 +121,12 @@
@endif
- @if($order->payment_status === 'refunded' && ($refundTotal + 0.01) < $paidAmountFloat)
- 提示:当前订单状态为「已退款」,但退款总额小于已付金额,可能存在数据不一致,请核对退款轨迹与订单金额。
- @elseif($order->payment_status !== 'refunded' && $paidAmountFloat > 0 && $refundTotal >= $paidAmountFloat)
- 提示:退款总额已达到/超过已付金额,建议核对是否应将支付状态调整为「已退款」。
+ @if($isRefundInconsistent)
+ @if($order->payment_status === 'refunded')
+ 提示:当前订单状态为「已退款」,但退款总额小于已付金额,可能存在数据不一致,请核对退款轨迹与订单金额。
+ @else
+ 提示:退款总额已达到/超过已付金额,建议核对是否应将支付状态调整为「已退款」。
+ @endif
@endif
@php