40 lines
1.3 KiB
PHP
40 lines
1.3 KiB
PHP
<?php
|
||
|
||
namespace App\Support;
|
||
|
||
class BatchDispatchWarning
|
||
{
|
||
/**
|
||
* @return array{warning:string, warning_link_href?:string, warning_link_label?:string, warning_copy_text?:string, warning_copy_label?:string}
|
||
*/
|
||
public static function build(
|
||
string $actionLabel,
|
||
string $runId,
|
||
string $batchType,
|
||
): array {
|
||
$actionLabel = trim((string) $actionLabel);
|
||
$runId = trim((string) $runId);
|
||
$batchType = trim((string) $batchType);
|
||
|
||
$msg = '检测到刚刚已提交过同一批次的' . $actionLabel . '任务(1 分钟内)。为避免重复投递,本次未再次提交。';
|
||
|
||
$payload = [
|
||
'warning' => $msg,
|
||
];
|
||
|
||
if ($runId === '') {
|
||
return $payload;
|
||
}
|
||
|
||
$short = RunId::short($runId, $batchType === 'bmpa' ? 7 : 6, 4);
|
||
$payload['warning'] = '检测到刚刚已提交过同一批次的' . $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;
|
||
}
|
||
}
|