refactor(admin): 增加AdminFlash::warning并让BatchDispatchWarning复用
This commit is contained in:
@@ -24,4 +24,37 @@ class AdminFlash
|
||||
|
||||
return $payload;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array{warning:string, warning_link_href?:string, warning_link_label?:string, warning_copy_text?:string, warning_copy_label?:string}
|
||||
*/
|
||||
public static function warning(
|
||||
string $message,
|
||||
string $linkHref = '',
|
||||
string $linkLabel = '查看',
|
||||
string $copyText = '',
|
||||
string $copyLabel = '复制',
|
||||
): array {
|
||||
$message = (string) $message;
|
||||
$linkHref = trim((string) $linkHref);
|
||||
$linkLabel = trim((string) $linkLabel);
|
||||
$copyText = trim((string) $copyText);
|
||||
$copyLabel = trim((string) $copyLabel);
|
||||
|
||||
$payload = [
|
||||
'warning' => $message,
|
||||
];
|
||||
|
||||
if ($linkHref !== '') {
|
||||
$payload['warning_link_href'] = $linkHref;
|
||||
$payload['warning_link_label'] = $linkLabel !== '' ? $linkLabel : '查看';
|
||||
}
|
||||
|
||||
if ($copyText !== '') {
|
||||
$payload['warning_copy_text'] = $copyText;
|
||||
$payload['warning_copy_label'] = $copyLabel !== '' ? $copyLabel : '复制';
|
||||
}
|
||||
|
||||
return $payload;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,22 +18,19 @@ class BatchDispatchWarning
|
||||
|
||||
$msg = '检测到刚刚已提交过同一批次的' . $actionLabel . '任务(1 分钟内)。为避免重复投递,本次未再次提交。';
|
||||
|
||||
$payload = [
|
||||
'warning' => $msg,
|
||||
];
|
||||
|
||||
if ($runId === '') {
|
||||
return $payload;
|
||||
return AdminFlash::warning($msg);
|
||||
}
|
||||
|
||||
$short = RunId::short($runId, $batchType === 'bmpa' ? 7 : 6, 4);
|
||||
$payload['warning'] = '检测到刚刚已提交过同一批次的' . $actionLabel . '任务(1 分钟内,run_id=' . $short . ')。为避免重复投递,本次未再次提交。';
|
||||
$msg = '检测到刚刚已提交过同一批次的' . $actionLabel . '任务(1 分钟内,run_id=' . $short . ')。为避免重复投递,本次未再次提交。';
|
||||
|
||||
$payload['warning_link_href'] = '/admin/platform-batches/show?type=' . $batchType . '&run_id=' . urlencode($runId);
|
||||
$payload['warning_link_label'] = '进入上次批次复盘';
|
||||
$payload['warning_copy_text'] = $runId;
|
||||
$payload['warning_copy_label'] = '复制run_id';
|
||||
|
||||
return $payload;
|
||||
return AdminFlash::warning(
|
||||
$msg,
|
||||
'/admin/platform-batches/show?type=' . $batchType . '&run_id=' . urlencode($runId),
|
||||
'进入上次批次复盘',
|
||||
$runId,
|
||||
'复制run_id',
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
29
tests/Unit/AdminFlashWarningPayloadTest.php
Normal file
29
tests/Unit/AdminFlashWarningPayloadTest.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Unit;
|
||||
|
||||
use App\Support\AdminFlash;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class AdminFlashWarningPayloadTest extends TestCase
|
||||
{
|
||||
public function test_warning_should_return_message_only_when_no_link_and_no_copy(): void
|
||||
{
|
||||
$p = AdminFlash::warning('warn');
|
||||
|
||||
$this->assertSame('warn', (string) ($p['warning'] ?? ''));
|
||||
$this->assertArrayNotHasKey('warning_link_href', $p);
|
||||
$this->assertArrayNotHasKey('warning_copy_text', $p);
|
||||
}
|
||||
|
||||
public function test_warning_should_include_link_and_copy_when_provided(): void
|
||||
{
|
||||
$p = AdminFlash::warning('warn', '/admin/x', '查看', 'ABC', '复制run_id');
|
||||
|
||||
$this->assertSame('warn', (string) ($p['warning'] ?? ''));
|
||||
$this->assertSame('/admin/x', (string) ($p['warning_link_href'] ?? ''));
|
||||
$this->assertSame('查看', (string) ($p['warning_link_label'] ?? ''));
|
||||
$this->assertSame('ABC', (string) ($p['warning_copy_text'] ?? ''));
|
||||
$this->assertSame('复制run_id', (string) ($p['warning_copy_label'] ?? ''));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user