From 03649cf5cb0956bda77b6c4f4ef0d0261fa9c4dc Mon Sep 17 00:00:00 2001 From: chengxl Date: Tue, 2 Sep 2025 14:15:01 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=88=E5=AE=A1=E5=8F=91=E9=82=AE=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/controller/Finalreview.php | 61 ++++++++++++++++++++-- 1 file changed, 58 insertions(+), 3 deletions(-) diff --git a/application/api/controller/Finalreview.php b/application/api/controller/Finalreview.php index f968d6f..0f88385 100644 --- a/application/api/controller/Finalreview.php +++ b/application/api/controller/Finalreview.php @@ -33,6 +33,13 @@ class Finalreview extends Base Email: {journal_email}
Website: {website}' ], + 'editor' => [ + + 'email_subject' => 'Final decision for manuscript - {accept_sn}', + 'email_content' => ' + Dear Editor,

+ Please check the final decision for manuscript ID [{accept_sn}].' + ] ]; //投稿系统地址 private $sTouGaoUrl = "https://submission.tmrjournals.com/"; @@ -377,18 +384,66 @@ class Finalreview extends Base $suggest_for_editor = empty($aParam['suggest_for_editor']) ? '' : $aParam['suggest_for_editor']; $suggest_for_author = empty($aParam['suggest_for_author']) ? '' : $aParam['suggest_for_author']; $aUpdate = ['state' => $iState,'update_time' => time(),'review_time' => time(),'suggest_for_editor' => $suggest_for_editor,'suggest_for_author' => $suggest_for_author]; + $aUpdate['is_anonymous'] = empty($aParam['is_anonymous']) ? 2 : $aParam['is_anonymous'];//是否匿名 } - + //判断更新参数 if(empty($aUpdate)){ return json_encode(['status' => 7,'msg' => 'Illegal request']); } //数据库更新 - $aUpdate['is_anonymous'] = empty($aParam['is_anonymous']) ? 2 : $aParam['is_anonymous']; $aWhere = ['id' => $iId]; $result = Db::name('article_reviewer_final')->where($aWhere)->limit(1)->update($aUpdate); if(!$result){ - json_encode(['status' => 8,'msg' => "Review failed"]); + return json_encode(['status' => 8,'msg' => "Review failed"]); + } + + //发送邮件 + if(in_array($iState, [1,2,3])){//有审核结果发送邮件提醒编辑 + //查询文章所属期刊 + $aWhere = ['article_id' => $iArticleId]; + $aArticle = Db::name('article')->field('journal_id,state,accept_sn')->where($aWhere)->find(); + $iJournalId = empty($aArticle['journal_id']) ? 0 : $aArticle['journal_id'];//期刊ID + //邮件发送 + //数据准备-查询期刊信息 + $aWhere = ['journal_id' => $iJournalId,'state' => 0]; + $aJournal = Db::name('journal')->field('title,issn,editorinchief,zname,abbr,alias,email,epassword,website,editor_id')->where($aWhere)->find(); + $email = empty($aJournal['email']) ? '' : $aJournal['email']; + if(!empty($email)){ + //数据准备-获取邮件模版 + $aEmailConfig= empty($this->aEmailConfig['editor']) ? [] : $this->aEmailConfig['editor']; + //数据准备-邮件内容替换 + $aSearch = [ + '{accept_sn}' => empty($aArticle['accept_sn']) ? '' : $aArticle['accept_sn'],//accept_sn + ]; + //邮件标题 + $title = str_replace(array_keys($aSearch), array_values($aSearch),$aEmailConfig['email_subject']); + //邮件内容变量替换 + $content = str_replace(array_keys($aSearch), array_values($aSearch), $aEmailConfig['email_content']); + //带模版的邮件内容 + $pre = \think\Env::get('emailtemplete.pre'); + $net = \think\Env::get('emailtemplete.net'); + $net1 = str_replace("{{email}}",trim($email),$net); + $content=$pre.$content.$net1; + //发送邮件邮箱配置 + $memail = empty($aJournal['email']) ? '' : $aJournal['email']; + $mpassword = empty($aJournal['epassword']) ? '' : $aJournal['epassword']; + //期刊标题 + $from_name = empty($aJournal['title']) ? '' : $aJournal['title']; + + //发送邮件 + $aResult = sendEmail($email,$title,$from_name,$content,$memail,$mpassword); + $iStatus = empty($aResult['status']) ? 1 : $aResult['status']; + $iIsSuccess = $iStatus == 1 ? 1 : 2; + $sMsg = empty($aResult['data']) ? $iIsSuccess : $aResult['data']; + + //添加邮件发送日志 + $editor_id = empty($aJournal['editor_id']) ? 0 : $aJournal['editor_id']; + $aEmailLog = ['article_id' => $iArticleId,'art_rev_id' => $iId,'reviewer_id' => $editor_id,'type' => 5,'email' => $email,'content' => $content,'create_time' => time(),'is_success' => $iIsSuccess,'msg' => $sMsg]; + $oReviewer = new \app\common\Reviewer; + $iId = $oReviewer->addLog($aEmailLog); + } + } //返回结果 return json_encode(['status' => 1,'msg' => "Reviewed successfully"]);