diff --git a/resources/views/admin/platform_orders/index.blade.php b/resources/views/admin/platform_orders/index.blade.php index a743191..b61a916 100644 --- a/resources/views/admin/platform_orders/index.blade.php +++ b/resources/views/admin/platform_orders/index.blade.php @@ -301,6 +301,7 @@ 同步时间 失败原因 最近批量同步 + 最近批量生效 操作 @@ -390,6 +391,37 @@ - @endif + + @php + // 优先使用扁平字段 meta.batch_mark_activated(便于筛选/统计,也避免遍历 audit) + $batchMarkActivated = (array) (data_get($order->meta, 'batch_mark_activated', []) ?? []); + $batchMarkAt = (string) (data_get($batchMarkActivated, 'at') ?? ''); + $batchMarkAdminId = data_get($batchMarkActivated, 'admin_id'); + + // 兼容旧数据:若尚未写入 batch_mark_activated,则回退从 meta.audit[] 中取最近一次批量生效记录 + $audit2 = (array) (data_get($order->meta, 'audit', []) ?? []); + $lastBatchMark = null; + if ($batchMarkAt === '' && count($audit2) > 0) { + foreach (array_reverse($audit2) as $item) { + if ((string) data_get($item, 'action') === 'batch_mark_activated') { + $lastBatchMark = $item; + break; + } + } + } + + if ($batchMarkAt === '' && $lastBatchMark) { + $batchMarkAt = (string) (data_get($lastBatchMark, 'at') ?? ''); + $batchMarkAdminId = data_get($lastBatchMark, 'admin_id'); + } + @endphp + @if($batchMarkAt !== '') +
{{ $batchMarkAt }}
+
管理员:{{ $batchMarkAdminId ?: '-' }}
+ @else + - + @endif + @php $canActivate = ($order->payment_status === 'paid') && ($order->status === 'activated'); diff --git a/tests/Feature/AdminPlatformOrderTest.php b/tests/Feature/AdminPlatformOrderTest.php index 13bb7a1..739d8cc 100644 --- a/tests/Feature/AdminPlatformOrderTest.php +++ b/tests/Feature/AdminPlatformOrderTest.php @@ -33,6 +33,7 @@ class AdminPlatformOrderTest extends TestCase ->assertSee('平台订单列表') ->assertSee('失败原因') ->assertSee('最近批量同步') + ->assertSee('最近批量生效') ->assertSee('最近24小时批量同步过') ->assertSee('可同步订单') ->assertSee('近24小时批量同步') @@ -230,6 +231,11 @@ class AdminPlatformOrderTest extends TestCase 'synced_at' => now()->toDateTimeString(), 'admin_id' => 1, ], + 'batch_mark_activated' => [ + 'at' => '2026-03-10 00:00:01', + 'admin_id' => 1, + 'scope' => 'filtered', + ], 'audit' => [ [ 'action' => 'batch_activate_subscription', @@ -244,6 +250,7 @@ class AdminPlatformOrderTest extends TestCase $this->get('/admin/platform-orders') ->assertOk() ->assertSee('2026-03-10 00:00:00') + ->assertSee('2026-03-10 00:00:01') ->assertSee('管理员:1'); // 最近24小时批量同步筛选:构造一条近24h,一条超过24h