hasOne('Engineer', 'id', 'engineer_id', [], 'LEFT')->setEagerlyType(0);
}
public static function getMessageAttr($value, $data)
{
if ($data['message_type'] == 0 || $data['message_type'] == 3) {
return [
'original' => $value,
'html' => "
{$value}
"
];
} elseif ($data['message_type'] == 1) {
$value = cdnurl($value, true);
return [
'original' => $value,
'html' => ""
];
} elseif ($data['message_type'] == 2) {
// 文件地址可能是完整的url,可能是cdn的url
// 此处只能计算本地文件的大小
$domain = cdnurl('', true);
if (strpos($value, $domain) !== false) {
$value = str_replace($domain, '', $value);
}
$filePath = str_replace('/', DS, ROOT_PATH . 'public' . $value);
if (!file_exists($filePath)) {
$fileExt = General::getFileExtension($value);
$fileSize = false;
} else {
$fileObj = new \think\File($filePath);
$fileExt = $fileObj->getExtension();
$fileSize = $fileObj->getSize();
unset($fileObj);
}
$fileSize = $fileSize ? General::formatFileSize($fileSize) : __('Unknown size');
$value = cdnurl($value, true);
$imgIconUrl = url('index/workorder/icon', ['suffix' => $fileExt], true, true);
$fileName = __('%s file', [$fileExt]);
$textHtml = <<
HTML;
return [
'original' => [
'url' => $value,
'ext' => $fileExt,
'size' => $fileSize
],
'html' => $textHtml
];
} elseif ($data['message_type'] == 4) {
return [
'original' => $data['id'],
'html' => "" . __('Confidential information is hidden') . "
"
];
}
}
}