diff --git a/app/Http/Controllers/Admin/PlatformOrderController.php b/app/Http/Controllers/Admin/PlatformOrderController.php index 9c1e91d..d7223c4 100644 --- a/app/Http/Controllers/Admin/PlatformOrderController.php +++ b/app/Http/Controllers/Admin/PlatformOrderController.php @@ -7,6 +7,7 @@ use App\Http\Controllers\Controller; use App\Models\Merchant; use App\Models\Plan; use App\Models\PlatformOrder; +use App\Models\SiteSubscription; use App\Support\SubscriptionActivationService; use Illuminate\Database\Eloquent\Builder; use Illuminate\Http\RedirectResponse; @@ -39,9 +40,16 @@ class PlatformOrderController extends Controller 'remark' => (string) $request->query('remark', ''), ]; + $siteSubscription = null; + $siteSubscriptionId = (int) ($defaults['site_subscription_id'] ?? 0); + if ($siteSubscriptionId > 0) { + $siteSubscription = SiteSubscription::query()->with(['merchant', 'plan'])->find($siteSubscriptionId); + } + return view('admin.platform_orders.form', [ 'merchants' => $merchants, 'plans' => $plans, + 'siteSubscription' => $siteSubscription, 'billingCycleLabels' => $this->billingCycleLabels(), 'orderTypeLabels' => $this->orderTypeLabels(), 'defaults' => $defaults, diff --git a/resources/views/admin/platform_orders/form.blade.php b/resources/views/admin/platform_orders/form.blade.php index f2d202d..373a555 100644 --- a/resources/views/admin/platform_orders/form.blade.php +++ b/resources/views/admin/platform_orders/form.blade.php @@ -7,6 +7,16 @@

用于总台运营手工创建一笔平台订单(演示/补单/线下收款录入)。

创建后可在「平台订单」列表中继续推进:标记支付并生效 → 同步订阅(形成最小收费闭环)。

+ + @if(($siteSubscription ?? null) && $siteSubscription->id) +
+
本订单将关联订阅:
+
+ {{ $siteSubscription->subscription_no }} + (订阅ID:{{ $siteSubscription->id }}) +
+
+ @endif
diff --git a/tests/Feature/AdminPlatformOrderCreateTest.php b/tests/Feature/AdminPlatformOrderCreateTest.php index d576b8b..6b634f5 100644 --- a/tests/Feature/AdminPlatformOrderCreateTest.php +++ b/tests/Feature/AdminPlatformOrderCreateTest.php @@ -47,6 +47,46 @@ class AdminPlatformOrderCreateTest extends TestCase $res->assertSee('创建订单'); } + public function test_platform_admin_can_open_create_platform_order_form_with_site_subscription_hint(): void + { + $this->loginAsPlatformAdmin(); + + $merchant = Merchant::query()->firstOrFail(); + + $plan = Plan::query()->create([ + 'code' => 'create_order_plan_01b', + 'name' => '创建订单测试套餐(订阅联动)', + 'billing_cycle' => 'monthly', + 'price' => 100, + 'list_price' => 100, + 'status' => 'active', + 'sort' => 10, + 'published_at' => now(), + ]); + + $sub = \App\Models\SiteSubscription::query()->create([ + 'merchant_id' => $merchant->id, + 'plan_id' => $plan->id, + 'status' => 'activated', + 'source' => 'manual', + 'subscription_no' => 'SUB_CREATE_ORDER_HINT_0001', + 'plan_name' => $plan->name, + 'billing_cycle' => 'monthly', + 'period_months' => 1, + 'amount' => 88, + 'starts_at' => now()->subDays(2), + 'ends_at' => now()->addDays(20), + 'activated_at' => now()->subDays(2), + ]); + + $res = $this->get('/admin/platform-orders/create?site_subscription_id=' . $sub->id); + + $res->assertOk(); + $res->assertSee('本订单将关联订阅:'); + $res->assertSee('SUB_CREATE_ORDER_HINT_0001'); + $res->assertSee('/admin/site-subscriptions/' . $sub->id); + } + public function test_platform_admin_can_create_platform_order_and_see_it_in_show_page(): void { $this->loginAsPlatformAdmin();