diff --git a/resources/views/admin/site_subscriptions/show.blade.php b/resources/views/admin/site_subscriptions/show.blade.php index 1d09a54..eeb9c89 100644 --- a/resources/views/admin/site_subscriptions/show.blade.php +++ b/resources/views/admin/site_subscriptions/show.blade.php @@ -26,6 +26,22 @@ }; @endphp +@php + // 用于构建“保留当前上下文”的订阅列表跳转链接(从订阅详情跳回列表后可一键返回本订阅详情) + $subscriptionShowSelf = '/' . ltrim(request()->path(), '/'); + $subscriptionShowQuery = request()->query(); + unset($subscriptionShowQuery['back']); + if (count($subscriptionShowQuery) > 0) { + $subscriptionShowSelf .= '?' . \Illuminate\Support\Arr::query($subscriptionShowQuery); + } + + $makeSubscriptionIndexUrl = function (array $query) use ($subscriptionShowSelf) { + $query = $query + ['back' => $subscriptionShowSelf]; + + return '/admin/site-subscriptions?' . \Illuminate\Support\Arr::query($query); + }; +@endphp +

这里是总台视角的订阅详情页,用于运营排查“订阅状态/到期/关联平台订单/同步记录”。 @@ -44,7 +60,7 @@

站点
@if($subscription->merchant) - {{ $subscription->merchant->name }} + {{ $subscription->merchant->name }} @else 未关联站点 @endif @@ -55,7 +71,7 @@
@php $planName = $subscription->plan_name ?: ($subscription->plan?->name ?? '未设置'); @endphp @if($subscription->plan) - {{ $planName }} + {{ $planName }} @else {{ $planName }} @endif diff --git a/tests/Feature/AdminSiteSubscriptionShowMerchantPlanLinksContainBackTest.php b/tests/Feature/AdminSiteSubscriptionShowMerchantPlanLinksContainBackTest.php new file mode 100644 index 0000000..49c13ad --- /dev/null +++ b/tests/Feature/AdminSiteSubscriptionShowMerchantPlanLinksContainBackTest.php @@ -0,0 +1,76 @@ +seed(); + + $this->post('/admin/login', [ + 'email' => 'platform.admin@demo.local', + 'password' => 'Platform@123456', + ])->assertRedirect('/admin'); + } + + public function test_show_page_merchant_and_plan_links_should_contain_back_to_subscription_show(): void + { + $this->loginAsPlatformAdmin(); + + $merchant = Merchant::query()->firstOrFail(); + + $plan = Plan::query()->create([ + 'code' => 'sub_show_merchant_plan_back_test', + 'name' => '订阅详情商家/套餐 back 链接测试套餐', + 'billing_cycle' => 'monthly', + 'price' => 10, + 'list_price' => 10, + 'status' => 'active', + 'sort' => 10, + 'published_at' => now(), + ]); + + $sub = SiteSubscription::query()->create([ + 'merchant_id' => $merchant->id, + 'plan_id' => $plan->id, + 'status' => 'activated', + 'source' => 'manual', + 'subscription_no' => 'SUB_SHOW_MERCHANT_PLAN_BACK_0001', + 'plan_name' => $plan->name, + 'billing_cycle' => $plan->billing_cycle, + 'period_months' => 1, + 'amount' => 10, + 'starts_at' => now()->subDay(), + 'ends_at' => now()->addMonth(), + 'activated_at' => now()->subDay(), + ]); + + $res = $this->get('/admin/site-subscriptions/' . $sub->id); + $res->assertOk(); + + $back = '/admin/site-subscriptions/' . $sub->id; + + $expectedMerchantUrl = '/admin/site-subscriptions?' . Arr::query([ + 'merchant_id' => $merchant->id, + 'back' => $back, + ]); + + $expectedPlanUrl = '/admin/site-subscriptions?' . Arr::query([ + 'plan_id' => $plan->id, + 'back' => $back, + ]); + + $res->assertSee($expectedMerchantUrl, false); + $res->assertSee($expectedPlanUrl, false); + } +}