终审发邮件

This commit is contained in:
chengxl
2025-09-02 14:15:01 +08:00
parent 91c233f0b9
commit 03649cf5cb

View File

@@ -33,6 +33,13 @@ class Finalreview extends Base
Email: {journal_email}<br>
Website: {website}'
],
'editor' => [
'email_subject' => 'Final decision for manuscript - {accept_sn}',
'email_content' => '
Dear Editor,<br><br>
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"]);