Add batch BMPA retry syncable link on batch show page

This commit is contained in:
萝卜
2026-03-18 02:44:36 +08:00
parent 9fc6049243
commit df8774c2ae
3 changed files with 16 additions and 0 deletions

View File

@@ -134,6 +134,14 @@ class PlatformBatchController extends Controller
'bmpa_failed_only' => '1',
]), $safeBackForLinks, 'filters');
// 本批次可同步重试:用于处理“批量 BMPA 后仍未同步订阅”的订单(例如同步暂时失败/后续补救)。
// 口径batch_bmpa_run_id + syncable_only=1 + sync_status=unsynced
$governanceLinks['retry_syncable'] = BackUrl::withBackAndFragment('/admin/platform-orders?' . \Illuminate\Support\Arr::query([
'batch_bmpa_run_id' => $runId,
'syncable_only' => '1',
'sync_status' => 'unsynced',
]), $safeBackForLinks, 'filters');
// 本批次可再次尝试:对齐仪表盘/列表的“真正可BMPA处理集合”口径。
$governanceLinks['retry_processable'] = BackUrl::withBackAndFragment('/admin/platform-orders?' . \Illuminate\Support\Arr::query([
'batch_bmpa_run_id' => $runId,

View File

@@ -135,6 +135,10 @@
<span class="muted"></span>
<a class="link" href="{{ $governanceLinks['retry_syncable'] }}">本批次可同步重试</a>
@endif
@if(($governanceLinks['retry_syncable'] ?? '') !== '')
<span class="muted"></span>
<a class="link" href="{{ $governanceLinks['retry_syncable'] }}">本批次可同步重试</a>
@endif
@if(($governanceLinks['retry_processable'] ?? '') !== '')
<span class="muted"></span>
<a class="link" href="{{ $governanceLinks['retry_processable'] }}">本批次可再次尝试可BMPA处理</a>

View File

@@ -91,6 +91,10 @@ class AdminPlatformBatchShowPageShouldRenderForBmpaTest extends TestCase
$this->assertStringContainsString('bmpa_error_keyword=', $html);
$this->assertStringContainsString(urlencode('模拟失败:订单不是待处理+未支付'), $html);
// 治理入口本批次可同步重试batch_bmpa_run_id + syncable_only=1 + sync_status=unsynced
$this->assertStringContainsString('syncable_only=1', $html);
$this->assertStringContainsString('sync_status=unsynced', $html);
// 治理入口本批次可再次尝试可BMPA处理
$this->assertStringContainsString('bmpa_processable_only=1', $html);
}