From c81c5a1f3937638bcdef4d9fbc517c76cd4824a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=90=9D=E5=8D=9C?= Date: Sun, 15 Mar 2026 01:40:09 +0000 Subject: [PATCH] PlatformOrder: add orderTypeLabel helper --- app/Models/PlatformOrder.php | 14 ++++++++ .../Unit/PlatformOrderOrderTypeLabelTest.php | 34 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 tests/Unit/PlatformOrderOrderTypeLabelTest.php diff --git a/app/Models/PlatformOrder.php b/app/Models/PlatformOrder.php index 51580c2..8f54cb9 100644 --- a/app/Models/PlatformOrder.php +++ b/app/Models/PlatformOrder.php @@ -10,6 +10,20 @@ class PlatformOrder extends Model { use HasFactory; + public function orderTypeLabel(): string + { + $labels = [ + 'new_purchase' => '新购', + 'renewal' => '续费', + 'upgrade' => '升级', + 'downgrade' => '降级', + ]; + + $type = (string) ($this->order_type ?? ''); + + return (string) ($labels[$type] ?? $type); + } + public function receiptTotal(): float { // 优先读扁平字段 payment_summary.total_amount(更稳定、避免遍历 receipts) diff --git a/tests/Unit/PlatformOrderOrderTypeLabelTest.php b/tests/Unit/PlatformOrderOrderTypeLabelTest.php new file mode 100644 index 0000000..8a75252 --- /dev/null +++ b/tests/Unit/PlatformOrderOrderTypeLabelTest.php @@ -0,0 +1,34 @@ +order_type = 'new_purchase'; + $this->assertSame('新购', $o->orderTypeLabel()); + + $o->order_type = 'renewal'; + $this->assertSame('续费', $o->orderTypeLabel()); + + $o->order_type = 'upgrade'; + $this->assertSame('升级', $o->orderTypeLabel()); + + $o->order_type = 'downgrade'; + $this->assertSame('降级', $o->orderTypeLabel()); + } + + public function test_order_type_label_should_fallback_to_code_when_unknown(): void + { + $o = new PlatformOrder(); + $o->order_type = 'something_new'; + + $this->assertSame('something_new', $o->orderTypeLabel()); + } +}