feat(billing): 从订阅详情创建续费订单时绑定 site_subscription_id
This commit is contained in:
@@ -31,6 +31,7 @@ class PlatformOrderController extends Controller
|
||||
$defaults = [
|
||||
'merchant_id' => (int) $request->query('merchant_id', 0),
|
||||
'plan_id' => (int) $request->query('plan_id', 0),
|
||||
'site_subscription_id' => (int) $request->query('site_subscription_id', 0),
|
||||
'order_type' => (string) $request->query('order_type', 'new_purchase'),
|
||||
'quantity' => (int) $request->query('quantity', 1),
|
||||
'discount_amount' => (float) $request->query('discount_amount', 0),
|
||||
@@ -54,6 +55,7 @@ class PlatformOrderController extends Controller
|
||||
$data = $request->validate([
|
||||
'merchant_id' => ['required', 'integer', 'exists:merchants,id'],
|
||||
'plan_id' => ['required', 'integer', 'exists:plans,id'],
|
||||
'site_subscription_id' => ['nullable', 'integer', 'exists:site_subscriptions,id'],
|
||||
'order_type' => ['required', Rule::in(array_keys($this->orderTypeLabels()))],
|
||||
'quantity' => ['required', 'integer', 'min:1', 'max:120'],
|
||||
'discount_amount' => ['nullable', 'numeric', 'min:0'],
|
||||
@@ -80,6 +82,7 @@ class PlatformOrderController extends Controller
|
||||
$order = PlatformOrder::query()->create([
|
||||
'merchant_id' => (int) $data['merchant_id'],
|
||||
'plan_id' => $plan->id,
|
||||
'site_subscription_id' => (int) ($data['site_subscription_id'] ?? 0) ?: null,
|
||||
'created_by_admin_id' => $admin->id,
|
||||
'order_no' => $orderNo,
|
||||
'order_type' => (string) $data['order_type'],
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
<form method="post" action="/admin/platform-orders" class="card form-grid">
|
||||
@csrf
|
||||
|
||||
<input type="hidden" name="site_subscription_id" value="{{ old('site_subscription_id', $defaults['site_subscription_id'] ?? '') }}">
|
||||
|
||||
<label>
|
||||
<span>站点</span>
|
||||
<select name="merchant_id" required>
|
||||
|
||||
@@ -110,6 +110,7 @@
|
||||
$createRenewalOrderUrl = '/admin/platform-orders/create?' . \Illuminate\Support\Arr::query([
|
||||
'merchant_id' => $subscription->merchant_id,
|
||||
'plan_id' => $subscription->plan_id,
|
||||
'site_subscription_id' => $subscription->id,
|
||||
'order_type' => 'renewal',
|
||||
'quantity' => 1,
|
||||
'remark' => '来自订阅:' . $subscription->subscription_no,
|
||||
|
||||
@@ -138,7 +138,7 @@ class AdminSiteSubscriptionShowTest extends TestCase
|
||||
->assertSee('失败原因')
|
||||
->assertSee('查看关联平台订单(按订阅ID精确过滤)')
|
||||
->assertSee('查看可同步订单')
|
||||
->assertSee('/admin/platform-orders/create?merchant_id=' . $merchant->id . '&plan_id=' . $plan->id, false);
|
||||
->assertSee('/admin/platform-orders/create?merchant_id=' . $merchant->id . '&plan_id=' . $plan->id . '&site_subscription_id=' . $sub->id, false);
|
||||
}
|
||||
|
||||
public function test_guest_cannot_open_site_subscription_show_page(): void
|
||||
|
||||
Reference in New Issue
Block a user