From 0ec255ed60147ff6139753365b981370aa6a9ac6 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Tue, 19 Nov 2024 18:39:24 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Models/ProjectTaskContent.php | 15 ++++++++++----- app/Tasks/EmailNoticeTask.php | 3 ++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app/Models/ProjectTaskContent.php b/app/Models/ProjectTaskContent.php index 8c947769a..4087dd671 100644 --- a/app/Models/ProjectTaskContent.php +++ b/app/Models/ProjectTaskContent.php @@ -53,8 +53,8 @@ class ProjectTaskContent extends AbstractModel $array = $this->toArray(); $array['content'] = file_get_contents($filePath) ?: ''; if ($array['content']) { - $replace = Base::fillUrl('uploads/task'); - $array['content'] = str_replace('{{RemoteURL}}uploads/task', $replace, $array['content']); + $replace = Base::fillUrl('uploads'); + $array['content'] = str_replace('{{RemoteURL}}uploads', $replace, $array['content']); } return $array; } @@ -84,9 +84,14 @@ class ProjectTaskContent extends AbstractModel $content = str_replace($matchs[0][$key], ']+)(\\\\?["\'][^>]*?>)/i'; - $replacement = '$1{{RemoteURL}}$3$4'; - $content = preg_replace($pattern, $replacement, $content); + preg_match_all('/(]*?src=\\\\?["\'])(https?:\/\/[^\/]+\/)(uploads\/[^\s"\'>]+)(\\\\?["\'][^>]*?>)/i', $content, $matches); + foreach ($matches[0] as $key => $fullMatch) { + $filePath = public_path($matches[3][$key]); + if (file_exists($filePath)) { + $replacement = $matches[1][$key] . '{{RemoteURL}}' . $matches[3][$key] . $matches[4][$key]; + $content = str_replace($fullMatch, $replacement, $content); + } + } // $filePath = $path . md5($content); $publicPath = public_path($filePath); diff --git a/app/Tasks/EmailNoticeTask.php b/app/Tasks/EmailNoticeTask.php index 415a63e9a..c409db084 100644 --- a/app/Tasks/EmailNoticeTask.php +++ b/app/Tasks/EmailNoticeTask.php @@ -223,7 +223,8 @@ class EmailNoticeTask extends AbstractTask // 添加对话内容 $content .= view('email.unread', [ 'type' => 'content', - 'dialogUrl' => config("app.url") . "/manage/messenger?dialog_id={$dialogId}", + 'dialogUrl' => '', // 不显示回复消息按钮 + // 'dialogUrl' => config("app.url") . "/manage/messenger?dialog_id={$dialogId}", 'dialogName' => trim($dialogName), 'title' => Doo::translate(sprintf('%d条未读信息', count($items))), 'button' => Doo::translate('回复消息'),