From 5597a16ccc548cc1151f2ad9125419a24ab0e9b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=90=9D=E5=8D=9C?= Date: Wed, 11 Mar 2026 06:51:39 +0000 Subject: [PATCH] feat: site subscription show add reconcile mismatch orders count link --- .../Controllers/Admin/SiteSubscriptionController.php | 12 ++++++++++++ .../views/admin/site_subscriptions/show.blade.php | 4 ++++ tests/Feature/AdminSiteSubscriptionShowTest.php | 1 + 3 files changed, 17 insertions(+) diff --git a/app/Http/Controllers/Admin/SiteSubscriptionController.php b/app/Http/Controllers/Admin/SiteSubscriptionController.php index 8028459..cbf4075 100644 --- a/app/Http/Controllers/Admin/SiteSubscriptionController.php +++ b/app/Http/Controllers/Admin/SiteSubscriptionController.php @@ -59,6 +59,9 @@ class SiteSubscriptionController extends Controller // 订阅维度:退款不一致订单数(与平台订单列表 refund_inconsistent 口径保持一致) $refundInconsistentOrders = 0; + // 订阅维度:对账不一致订单数(与平台订单列表 reconcile_mismatch 口径保持一致) + $reconcileMismatchOrders = 0; + foreach ($metaOrders as $o) { $meta = $o->meta ?? []; @@ -71,6 +74,13 @@ class SiteSubscriptionController extends Controller $noReceiptOrders++; } + // reconcile_mismatch 口径:支付回执总额 与订单 paid_amount 不一致(按分取整,差额>=0.01) + $receiptCents = (int) round($receiptTotal * 100); + $paidCents = (int) round(((float) ($o->paid_amount ?? 0)) * 100); + if (abs($receiptCents - $paidCents) >= 1) { + $reconcileMismatchOrders++; + } + $refundTotal = (float) $o->refundTotal(); if ($refundTotal > 0) { @@ -94,6 +104,8 @@ class SiteSubscriptionController extends Controller 'total_refunded_amount' => (float) $totalRefundedAmount, // 退款不一致订单(订阅维度) 'refund_inconsistent_orders' => (int) $refundInconsistentOrders, + // 对账不一致订单(订阅维度) + 'reconcile_mismatch_orders' => (int) $reconcileMismatchOrders, // 对账差额:回执总额 - 已付总额(订阅维度) 'reconciliation_delta' => (float) ($totalReceiptAmount - (float) $metaOrders->sum('paid_amount')), ]; diff --git a/resources/views/admin/site_subscriptions/show.blade.php b/resources/views/admin/site_subscriptions/show.blade.php index 40ae8a5..28363bb 100644 --- a/resources/views/admin/site_subscriptions/show.blade.php +++ b/resources/views/admin/site_subscriptions/show.blade.php @@ -219,6 +219,10 @@ ¥{{ number_format($delta, 2) }}
点击差额可跳转:该订阅下「对账不一致」订单
+
+ 对账不一致订单: + {{ $summaryStats['reconcile_mismatch_orders'] ?? 0 }} +
@if(abs($delta) >= 0.01)
提示:差额非 0,可能存在回执金额与订单已付金额不一致。
@else diff --git a/tests/Feature/AdminSiteSubscriptionShowTest.php b/tests/Feature/AdminSiteSubscriptionShowTest.php index b2a34c4..369f9ea 100644 --- a/tests/Feature/AdminSiteSubscriptionShowTest.php +++ b/tests/Feature/AdminSiteSubscriptionShowTest.php @@ -133,6 +133,7 @@ class AdminSiteSubscriptionShowTest extends TestCase ->assertSee('/admin/platform-orders?site_subscription_id=' . $sub->id . '&refund_inconsistent=1', false) ->assertSee('对账差额(回执-已付)') ->assertSee('/admin/platform-orders?site_subscription_id=' . $sub->id . '&reconcile_mismatch=1', false) + ->assertSee('对账不一致订单:') ->assertSee('关联平台订单') ->assertSee('PO_SUB_SHOW_0001') ->assertSee('同步时间')