[ 'title' => 'Submission Received', 'content' => 'Your manuscript(ID: {#accept_sn#}) has been successfully submitted.
The editorial office is conducting an initial assessment. You will be notified once the review process begins.' ],//'投稿成功', 2 => [ 'title' => 'Manuscript Under Review', 'content' => 'Your manuscript is now under review.
Manuscript (ID: {#accept_sn#}) has been sent to peer reviewers for evaluation. You will be notified once a review decision becomes available.' ],//'稿件进入审稿', 3 => [ 'title' => 'Declined for Publication', 'content' => 'Editorial decision issued.
After evaluation, your manuscript(ID: {#accept_sn#}) has not been accepted for publication. Please refer to the decision letter for details and reviewer comments.' ],//'退稿通知', 4 => [ 'title' => 'Revision Requested', 'content' => 'Revision requested.
Editors/reviewers have requested revisions to your manuscript(ID: {#accept_sn#}). Please review the comments and submit your revised version within the required timeframe.' ],//'退修通知', 5 => [ 'title' => 'Accepted for Publication', 'content' => 'Revision requested.
Editors/reviewers have requested revisions to your manuscript(ID: {#accept_sn#}). Please review the comments and submit your revised version within the required timeframe.' ],//'录用通知', 6 => [ 'title' => 'APC Payment Required', 'content' => 'APC payment required.
Your manuscript(ID: {#accept_sn#}) has reached the payment stage. Please complete the Article Processing Charge (APC) to proceed with publication processing.' ],//'缴费提醒', 7 => [ 'title' => 'Proofreading Confirmation Required', 'content' => 'Proofs ready for review.
Your manuscript(ID: {#accept_sn#}) proof is available. Please check and confirm carefully within 48 hours.' ],//'校对通知', 8 => [ 'title' => 'Manuscript Published Online', 'content' => 'Your article is now published online!
The final version of your manuscript(ID: {#accept_sn#}) is available on the journal website. Thank you for publishing with us.' ],//'发表通知', 9 => [ 'title' => 'APC Update', 'content' => 'APC update applied.
The Article Processing Charge for your manuscript(ID: {#accept_sn#}) has been adjusted. Please check the updated payment details in your submission dashboard.' ],//'稿费修改', 10 => [ 'title' => 'Review Invitation(ID: {#accept_sn#})', 'content' => 'Review invitation received.
You are invited to review a manuscript (ID: {#accept_sn#}). Please accept or decline the invitation via your reviewer dashboard.' ],//'审稿通知', 11 => [ 'title' => 'Review Invitation Reminder', 'content' => 'Reminder: Review invitation pending.
You have a pending review invitation (ID: {#accept_sn#}). Kindly respond at your earliest convenience.' ],//'审稿提醒', 12 => [ 'title' => 'Review Report Reminder', 'content' => 'Reminder: Review report due.
Thank you for accepting the review (ID: {#accept_sn#}). Please submit your review report to help us proceed with the editorial decision.' ],//'审稿报告提交', 13 => [ 'title' => 'Re-review Invitation', 'content' => 'Re-review request received.
A revised version of manuscript (ID: {#accept_sn#}) is available for your follow-up assessment. Please access the reviewer dashboard to proceed.' ],//'复审邀请', 14 => [ 'title' => 'Re-review Reminder', 'content' => 'Reminder: Re-review pending.
Your follow-up review for manuscript (ID: {#accept_sn#}) is still pending. We would appreciate your evaluation at your earliest convenience.' ],//'复审提醒', 15 => [ 'title' => 'Review Closed', 'content' => 'Review assignment closed.
Your review for manuscript (ID: {#accept_sn#}) is no longer required. Thank you for your support and contribution to the journal.' ],//审稿关闭提醒 ]; private $aField = ['article_id','user_id','type','title','content','is_read','create_time','update_user_id','update_time']; /** * 站内信息添加 */ public function add($aParam = []){ //获取参数 $aParam = empty($aParam) ? [] : $aParam; //必填参数验证 $iType = empty($aParam['type']) ? 0 : $aParam['type']; $iArticleId = empty($aParam['article_id']) ? 0 : $aParam['article_id']; if(empty($iArticleId) || empty($iType) || empty($aParam['user_id'])){ return ['status' => 2, 'msg' => 'Parameter is empty article title/message type/user_id']; } if($iType == 2){//验证是否插入 $aMessages = $this->get($aParam); if(!empty($aMessages['data'])){ return ['status' => 3, 'msg' => 'The review reminder has been sent']; } } //根据类型获取消息内容 $aMessagesType = $this->aMessagesType; $aMessagesTypeInfo = empty($aMessagesType[$iType]) ? [] : $aMessagesType[$iType]; if(empty($aMessagesTypeInfo)){ return ['status' => 4, 'msg' => 'Message content not found']; } //获取表字段 进行字段赋值 $aField = $this->aField; $aInsert = []; foreach ($aField as $key => $value) { if(empty($aParam[$value])){ continue; } $aInsert[$value] = $aParam[$value]; } //获取稿件号 $sAcceptSn = empty($aParam['accept_sn']) ? '' : $aParam['accept_sn']; $aInsert['title'] = str_replace('{#accept_sn#}', $sAcceptSn, $aMessagesTypeInfo['title']); $aInsert['content'] = str_replace('{#accept_sn#}', $sAcceptSn, $aMessagesTypeInfo['content']); $aInsert['create_time'] = time(); //拒稿和退修 查询是否有同意审稿但未审稿的审稿人 if(in_array($iType, [3,4])){ $aWhere = ['article_id' => $iArticleId,'state' => 0]; $aReviewer = Db::name('article_reviewer')->where($aWhere)->column('reviewer_id'); $aBatchInsert = []; if(!empty($aReviewer)){ $aMessagesTypeInfo = $aMessagesType[15]; $sTitle = str_replace('{#accept_sn#}', $sAcceptSn, $aMessagesTypeInfo['title']); $sContent = str_replace('{#accept_sn#}', $sAcceptSn, $aMessagesTypeInfo['content']); $aReviewer =array_unique($aReviewer); foreach ($aReviewer as $key => $value) { if(empty($value)){ continue; } $aBatchInsert[] = ['title' => $sTitle,'content' => $sContent,'type' => 15,'create_time' => time(),'article_id' => $iArticleId,'user_id' => $value]; } } $aBatchInsert[] = ['title' => $aInsert['title'],'content' => $aInsert['content'],'type' => $aInsert['type'],'create_time' => time(),'article_id' => $iArticleId,'user_id' => $aInsert['user_id']]; $result = Db::name('messages')->insertAll($aBatchInsert); if(empty($result)){ return ['status' => 6, 'msg' => '数据插入失败'.Db::getLastSql()."\n数据内容:",'data' => $aParam]; } }else{ $result = Db::name('messages')->insertGetId($aInsert); if(empty($result)){ return ['status' => 5, 'msg' => '数据插入失败'.Db::getLastSql()."\n数据内容:",'data' => $aParam]; } } return ['status' => 1, 'msg' => '数据插入成功']; } /** * 获取信息 */ public function get($aParam = []){ //获取参数 $aParam = empty($aParam) ? [] : $aParam; //必填参数验证 if(empty($aParam['article_id']) || empty($aParam['type']) || empty($aParam['user_id'])){ return ['status' => 2, 'msg' => '非法操作']; } //获取表字段 进行字段赋值 $aField = $this->aField; $aWhere = []; foreach ($aField as $key => $value) { if(empty($aParam[$value])){ continue; } $aWhere[$value] = $aParam[$value]; } $aMessages = Db::name('messages')->where($aWhere)->find(); return ['status' => 1, 'msg' => '获取数据成功','data' => $aMessages]; } }