Files
saasshop/resources/views/admin/site_subscriptions/show.blade.php
2026-03-10 12:29:38 +00:00

155 lines
5.8 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@extends('admin.layouts.app')
@section('title', '订阅详情')
@section('page_title', '订阅详情')
@section('content')
<div class="card mb-20">
<p class="muted muted-tight">
这里是总台视角的订阅详情页,用于运营排查“订阅状态/到期/关联平台订单/同步记录”。
</p>
<div class="grid-4">
<div>
<div class="muted">订阅号</div>
<div class="num-md">{{ $subscription->subscription_no }}</div>
</div>
<div>
<div class="muted">状态</div>
<div class="num-md">{{ ($statusLabels[$subscription->status] ?? $subscription->status) }} <span class="muted">({{ $subscription->status }})</span></div>
</div>
<div>
<div class="muted">站点</div>
<div class="num-md">{{ $subscription->merchant?->name ?? '未关联站点' }}</div>
</div>
<div>
<div class="muted">套餐</div>
<div class="num-md">{{ $subscription->plan_name ?: ($subscription->plan?->name ?? '未设置') }}</div>
</div>
</div>
<div class="grid-4 mt-10">
<div>
<div class="muted">计费周期 / 周期()</div>
<div class="num-md">{{ $subscription->billing_cycle ?: '-' }} / {{ (int) $subscription->period_months }}</div>
</div>
<div>
<div class="muted">金额</div>
<div class="num-md">¥{{ number_format((float) $subscription->amount, 2) }}</div>
</div>
<div>
<div class="muted">开始时间</div>
<div class="num-md">{{ optional($subscription->starts_at)->format('Y-m-d H:i:s') ?: '-' }}</div>
</div>
<div>
<div class="muted">到期时间</div>
<div class="num-md">{{ optional($subscription->ends_at)->format('Y-m-d H:i:s') ?: '-' }}</div>
</div>
</div>
<div class="grid-4 mt-10">
<div>
<div class="muted">到期状态(按到期时间)</div>
<div class="num-md">{{ $expiryLabel }}</div>
</div>
<div>
<div class="muted">试用到期</div>
<div class="num-md">{{ optional($subscription->trial_ends_at)->format('Y-m-d H:i:s') ?: '-' }}</div>
</div>
<div>
<div class="muted">生效时间</div>
<div class="num-md">{{ optional($subscription->activated_at)->format('Y-m-d H:i:s') ?: '-' }}</div>
</div>
<div>
<div class="muted">取消时间</div>
<div class="num-md">{{ optional($subscription->cancelled_at)->format('Y-m-d H:i:s') ?: '-' }}</div>
</div>
</div>
<div class="mt-10">
<a href="/admin/site-subscriptions" class="muted"> 返回订阅列表</a>
@if($subscription->subscription_no)
<span class="muted"></span>
<a href="/admin/platform-orders?keyword={{ urlencode($subscription->subscription_no) }}" class="muted">按订阅号查看平台订单</a>
@endif
</div>
</div>
<div class="grid-4 mb-20">
<div class="card">
<h3>关联订单总数</h3>
<div class="num-md">{{ $summaryStats['total_orders'] ?? 0 }}</div>
</div>
<div class="card">
<h3>已同步</h3>
<div class="num-md">{{ $summaryStats['synced_orders'] ?? 0 }}</div>
</div>
<div class="card">
<h3>同步失败</h3>
<div class="num-md">{{ $summaryStats['failed_orders'] ?? 0 }}</div>
</div>
<div class="card">
<h3>可同步(已支付+已生效+未同步)</h3>
<div class="num-md">{{ $summaryStats['syncable_orders'] ?? 0 }}</div>
</div>
</div>
<div class="card">
<h3>关联平台订单({{ $platformOrders->total() }}</h3>
<table>
<thead>
<tr>
<th>ID</th>
<th>订单号</th>
<th>订单状态</th>
<th>支付状态</th>
<th>应付/已付</th>
<th>下单时间</th>
<th>生效时间</th>
<th>同步状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
@forelse($platformOrders as $order)
@php
$syncedId = (int) data_get($order->meta, 'subscription_activation.subscription_id', 0);
$syncErr = (string) (data_get($order->meta, 'subscription_activation_error.message') ?? '');
if ($syncedId > 0) {
$syncStatus = '已同步';
} elseif ($syncErr !== '') {
$syncStatus = '同步失败';
} else {
$syncStatus = '未同步';
}
@endphp
<tr>
<td>{{ $order->id }}</td>
<td><a href="/admin/platform-orders/{{ $order->id }}">{{ $order->order_no }}</a></td>
<td>{{ $order->status }}</td>
<td>{{ $order->payment_status }}</td>
<td>¥{{ number_format((float) $order->payable_amount, 2) }} / ¥{{ number_format((float) $order->paid_amount, 2) }}</td>
<td>{{ optional($order->placed_at)->format('Y-m-d H:i:s') ?: '-' }}</td>
<td>{{ optional($order->activated_at)->format('Y-m-d H:i:s') ?: '-' }}</td>
<td>
{{ $syncStatus }}
@if($syncStatus === '同步失败')
<span class="muted">{{ mb_substr($syncErr, 0, 30) }}</span>
@endif
</td>
<td>
<a href="/admin/platform-orders/{{ $order->id }}">详情</a>
</td>
</tr>
@empty
<tr>
<td colspan="9" class="muted">暂无关联平台订单。</td>
</tr>
@endforelse
</tbody>
</table>
<div class="pagination-wrap">{{ $platformOrders->links() }}</div>
</div>
@endsection