feat(platform-orders): 列表展示最近批量生效信息
This commit is contained in:
@@ -301,6 +301,7 @@
|
||||
<th>同步时间</th>
|
||||
<th>失败原因</th>
|
||||
<th>最近批量同步</th>
|
||||
<th>最近批量生效</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -390,6 +391,37 @@
|
||||
<span class="muted">-</span>
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@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 !== '')
|
||||
<div>{{ $batchMarkAt }}</div>
|
||||
<div class="muted">管理员:{{ $batchMarkAdminId ?: '-' }}</div>
|
||||
@else
|
||||
<span class="muted">-</span>
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@php
|
||||
$canActivate = ($order->payment_status === 'paid') && ($order->status === 'activated');
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user