From 5edaf57bf7bb7fba38d2f225b4fd357dc676399e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=90=9D=E5=8D=9C?= Date: Fri, 13 Mar 2026 21:08:52 +0000 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E8=B4=A6=E6=98=8E=E7=BB=86=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=EF=BC=9A=E8=AE=A2=E5=8D=95=E6=91=98=E8=A6=81=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=20receipt=5Ftotal/refund=5Ftotal/delta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/PlatformOrderController.php | 16 ++++++++++++++++ .../AdminPlatformOrderExportLedgerTest.php | 5 +++++ 2 files changed, 21 insertions(+) diff --git a/app/Http/Controllers/Admin/PlatformOrderController.php b/app/Http/Controllers/Admin/PlatformOrderController.php index e0ea3ec..83c167c 100644 --- a/app/Http/Controllers/Admin/PlatformOrderController.php +++ b/app/Http/Controllers/Admin/PlatformOrderController.php @@ -457,6 +457,22 @@ class PlatformOrderController extends Controller fputcsv($out, ['payment_status', (string) ($order->payment_status ?? '')]); fputcsv($out, ['payable_amount', number_format((float) ($order->payable_amount ?? 0), 2, '.', '')]); fputcsv($out, ['paid_amount', number_format((float) ($order->paid_amount ?? 0), 2, '.', '')]); + + // 汇总字段:对账/退款快速口径 + $receiptTotal = 0.0; + foreach ($paymentReceipts as $r) { + $receiptTotal += (float) (data_get($r, 'amount') ?? 0); + } + $refundTotal = 0.0; + foreach ($refundReceipts as $r) { + $refundTotal += (float) (data_get($r, 'amount') ?? 0); + } + $delta = $receiptTotal - (float) ($order->paid_amount ?? 0); + + fputcsv($out, ['receipt_total', number_format($receiptTotal, 2, '.', '')]); + fputcsv($out, ['refund_total', number_format($refundTotal, 2, '.', '')]); + fputcsv($out, ['reconcile_delta', number_format($delta, 2, '.', '')]); + fputcsv($out, ['placed_at', (string) (optional($order->placed_at)->format('Y-m-d H:i:s') ?? '')]); fputcsv($out, ['paid_at', (string) (optional($order->paid_at)->format('Y-m-d H:i:s') ?? '')]); fputcsv($out, ['activated_at', (string) (optional($order->activated_at)->format('Y-m-d H:i:s') ?? '')]); diff --git a/tests/Feature/AdminPlatformOrderExportLedgerTest.php b/tests/Feature/AdminPlatformOrderExportLedgerTest.php index 6d4674f..4a67bba 100644 --- a/tests/Feature/AdminPlatformOrderExportLedgerTest.php +++ b/tests/Feature/AdminPlatformOrderExportLedgerTest.php @@ -108,6 +108,11 @@ class AdminPlatformOrderExportLedgerTest extends TestCase $this->assertStringContainsString("merchant_id,{$merchant->id}", $content2); $this->assertStringContainsString('payment_status,unpaid', $content2); $this->assertStringContainsString('site_subscription_id,', $content2); + + // 对账/退款汇总字段 + $this->assertStringContainsString('receipt_total,10.00', $content2); + $this->assertStringContainsString('refund_total,1.00', $content2); + $this->assertStringContainsString('reconcile_delta,10.00', $content2); } public function test_show_page_should_render_export_ledger_link(): void