|
|
@@ -60,7 +60,9 @@ class JobRun extends ModelCore
|
|
|
'status_color',
|
|
|
'runtime_formatted',
|
|
|
'job_class',
|
|
|
- 'desc_short'
|
|
|
+ 'desc_short',
|
|
|
+ 'job_parameters',
|
|
|
+ 'job_parameters_short'
|
|
|
];
|
|
|
|
|
|
//attrlist start
|
|
|
@@ -228,7 +230,81 @@ class JobRun extends ModelCore
|
|
|
if (!$this->desc) {
|
|
|
return '';
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
return mb_strlen($this->desc) > 100 ? mb_substr($this->desc, 0, 100) . '...' : $this->desc;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取任务参数
|
|
|
+ */
|
|
|
+ public function getJobParametersAttribute(): string
|
|
|
+ {
|
|
|
+ if (!$this->payload) {
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+
|
|
|
+ // 尝试解析payload
|
|
|
+ $payload = $this->payload;
|
|
|
+
|
|
|
+ // 如果是字符串,尝试反序列化
|
|
|
+ if (is_string($payload)) {
|
|
|
+ // 去掉外层引号
|
|
|
+ $payload = trim($payload, '"');
|
|
|
+
|
|
|
+ // 尝试反序列化PHP数组
|
|
|
+ if (strpos($payload, 'a:') === 0) {
|
|
|
+ try {
|
|
|
+ $unserialized = unserialize($payload);
|
|
|
+ if (is_array($unserialized)) {
|
|
|
+ $payload = $unserialized;
|
|
|
+ }
|
|
|
+ } catch (\Exception) {
|
|
|
+ // 反序列化失败,保持原样
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 尝试JSON解码
|
|
|
+ $decoded = json_decode($payload, true);
|
|
|
+ if (json_last_error() === JSON_ERROR_NONE) {
|
|
|
+ $payload = $decoded;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (is_array($payload)) {
|
|
|
+ $params = [];
|
|
|
+
|
|
|
+ foreach ($payload as $key => $value) {
|
|
|
+ if ($key === 'runtime') {
|
|
|
+ $params['运行时间'] = round($value, 3) . 's';
|
|
|
+ } else {
|
|
|
+ $params[$key] = is_scalar($value) ? $value : json_encode($value);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (empty($params)) {
|
|
|
+ return '无参数';
|
|
|
+ }
|
|
|
+
|
|
|
+ $result = [];
|
|
|
+ foreach ($params as $key => $value) {
|
|
|
+ $result[] = "{$key}: {$value}";
|
|
|
+ }
|
|
|
+
|
|
|
+ return implode(', ', $result);
|
|
|
+ }
|
|
|
+
|
|
|
+ return $payload ?: '无参数';
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取简化的任务参数(用于列表显示)
|
|
|
+ */
|
|
|
+ public function getJobParametersShortAttribute(): string
|
|
|
+ {
|
|
|
+ $params = $this->job_parameters;
|
|
|
+ if (mb_strlen($params) > 50) {
|
|
|
+ return mb_substr($params, 0, 50) . '...';
|
|
|
+ }
|
|
|
+ return $params;
|
|
|
+ }
|
|
|
}
|