From c55e764a486195595f67994ec6c8ff1865232e4e Mon Sep 17 00:00:00 2001 From: chengxl Date: Fri, 6 Feb 2026 17:31:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A1=E7=A8=BF=E4=BA=BA=E6=9C=BA=E6=9E=84?= =?UTF-8?q?=E5=8F=8A=E8=8D=89=E7=A8=BF=E7=8A=B6=E6=80=81=E5=8C=BA=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/controller/Workbench.php | 78 +++++++++++++++++++++--- 1 file changed, 69 insertions(+), 9 deletions(-) diff --git a/application/api/controller/Workbench.php b/application/api/controller/Workbench.php index 5ccd66c..3c0aa53 100644 --- a/application/api/controller/Workbench.php +++ b/application/api/controller/Workbench.php @@ -36,7 +36,7 @@ class Workbench extends Base //获取状态 $iState = isset($aParam['state']) ? $aParam['state'] : -2; //空的查询条件 - $aWhere = []; + $aWhere = ['accept_sn' => ['not like','Draft%']]; //SN $sAcceptSn = empty($aParam['accept_sn']) ? '': $aParam['accept_sn']; if(!empty($sAcceptSn)){ @@ -181,6 +181,10 @@ class Workbench extends Base $aArticle[$key]['report'] = $aAuthorInfo; $aArticle[$key]['country'] = empty($aAuthorInfo) ? [] : array_unique(array_column($aAuthorInfo, 'country')); $aArticle[$key]['type_name'] = translateType($value['type']); + $aArticle[$key]['is_draft'] = 2; + if(!empty($value['accept_sn']) && substr($value['accept_sn'], 0, 5) === 'Draft'){ + $aArticle[$key]['is_draft'] = 1; + } // //付款信息 // $iPsId = empty($aOrder[$value['article_id']]) ? 0 : $aOrder[$value['article_id']]; @@ -452,6 +456,12 @@ class Workbench extends Base $aArticleReviewer['realname'] = empty($aUser['realname']) ? '' : $aUser['realname']; $aArticleReviewer['email'] = empty($aUser['email']) ? '' : $aUser['email']; } + //查询审稿人机构 + if(!empty($aUser)){ + $aWhere = ['reviewer_id' => $iUserId,'state' => 0]; + $aReviewerInfo = Db::name('user_reviewer_info')->field('company')->where($aWhere)->find(); + $aArticleReviewer['company'] = empty($aReviewerInfo['company']) ? '' : $aReviewerInfo['company']; + } //组装信息 $aData = ['article' => $aArticle,'article_reviewer' => $aArticleReviewer]; @@ -641,13 +651,31 @@ class Workbench extends Base //查询审稿记录 $aWhere = ['art_rev_id' => $iArtRevId]; - $aArticleReviewer = Db::name('article_reviewer')->field('art_rev_id,reviewer_id,article_id,state')->where($aWhere)->find(); + $aArticleReviewer = Db::name('article_reviewer')->field('art_rev_id,reviewer_id,article_id,state,agree_review_time,ctime')->where($aWhere)->find(); if(empty($aArticleReviewer)){ return json_encode(['status' => 4,'msg' => 'Review record does not exist']); } - if($aArticleReviewer['state'] != 4){ + if($aArticleReviewer['state'] != 4 && $aArticleReviewer['state'] != 0){ return json_encode(['status' => 5,'msg' => 'The review link has not expired and no application is required']); } + if($aArticleReviewer['state'] == 0){ + $iCtime = empty($aArticleReviewer['ctime']) ? 0 : $aArticleReviewer['ctime']; + $iTime = empty($aArticleReviewer['agree_review_time']) ? 0 : $aArticleReviewer['agree_review_time']; + $iTime = empty($iTime) ? intval($iCtime) : intval($iTime); + if (!is_numeric($iTime) || (int)$iTime <= 0) { + return json_encode(['status' => 12,'msg' => 'Invalid record time, the review period has expired']); + } + //判断是否超过14天 + // 14天 = 14*24*3600 秒 = 1209600 秒 + $iNowTime = strtotime(date('Y-m-d', time())); + $iFourteenDays = 14 * 24 * 3600; + $iTime = date('Y-m-d', $iTime); + $iTime = strtotime($iTime);//同意审稿时间戳 + $timeDiff = $iTime+$iFourteenDays; + if($timeDiff >= $iNowTime){ + return json_encode(['status' => 13,'msg' => 'The review link has not expired and no application is required']); + } + } //获取文章信息 $aWhere = ['article_id' => $aArticleReviewer['article_id']]; @@ -773,14 +801,34 @@ class Workbench extends Base //查询审稿记录 $aWhere = ['art_rev_id' => $iArtRevId]; - $aArticleReviewer = Db::name('article_reviewer')->field('art_rev_id,reviewer_id,article_id,state')->where($aWhere)->find(); + $aArticleReviewer = Db::name('article_reviewer')->field('art_rev_id,reviewer_id,article_id,state,ctime,agree_review_time')->where($aWhere)->find(); if(empty($aArticleReviewer)){ return json_encode(['status' => 4,'msg' => 'Review record does not exist']); } - if($aArticleReviewer['state'] != 4){ + // if($aArticleReviewer['state'] != 4){ + // return json_encode(['status' => 5,'msg' => 'The review link has not expired and no application is required']); + // } + if($aArticleReviewer['state'] != 4 && $aArticleReviewer['state'] != 0){ return json_encode(['status' => 5,'msg' => 'The review link has not expired and no application is required']); } - + if($aArticleReviewer['state'] == 0){ + $iCtime = empty($aArticleReviewer['ctime']) ? 0 : $aArticleReviewer['ctime']; + $iTime = empty($aArticleReviewer['agree_review_time']) ? 0 : $aArticleReviewer['agree_review_time']; + $iTime = empty($iTime) ? intval($iCtime) : intval($iTime); + if (!is_numeric($iTime) || (int)$iTime <= 0) { + return json_encode(['status' => 12,'msg' => 'Invalid record time, the review period has expired']); + } + //判断是否超过14天 + $iNowTime = strtotime(date('Y-m-d', time())); + // 14天 = 14*24*3600 秒 = 1209600 秒 + $iFourteenDays = 14 * 24 * 3600; + $iTime = date('Y-m-d', $iTime); + $iTime = strtotime($iTime);//同意审稿时间戳 + $timeDiff = $iTime+$iFourteenDays; + if($timeDiff >= $iNowTime){ + return json_encode(['status' => 13,'msg' => 'The review link has not expired and no application is required']); + } + } //获取文章信息 $aWhere = ['article_id' => $aArticleReviewer['article_id']]; $aArticle = Db::name('article')->field('article_id,abstrart,title,type,accept_sn,journal_id,state')->where($aWhere)->find(); @@ -808,12 +856,24 @@ class Workbench extends Base // } //更新文章状态为邀请 - $aWhere = ['art_rev_id' => $iArtRevId,'state' => 4]; - $result = Db::name('article_reviewer')->where($aWhere)->limit(1)->update(['state' => 5,'ctime' => time(),'editor_act' => 1,'is_reapply' => 2,'update_time' => time(),'reviewer_act' => 0]); + $aWhere = ['art_rev_id' => $iArtRevId]; + $aUpdate = []; + if($aArticleReviewer['state'] == 4){ + $aUpdate['state'] = 5; + $aUpdate['ctime'] = time(); + } + if($aArticleReviewer['state'] == 0){ + $aUpdate['agree_review_time'] = time(); + } + if(empty($aUpdate)){ + return json_encode(array('status' => 15,'msg' => 'Update data to empty' )); + } + $aUpdate += ['editor_act' => 1,'is_reapply' => 2,'update_time' => time(),'reviewer_act' => 0]; + $result = Db::name('article_reviewer')->where($aWhere)->limit(1)->update($aUpdate); if($result === false){ return json_encode(array('status' => 11,'msg' => 'Status update failed' )); } - + //查询审稿人的邮箱 $aWhere = ['user_id' => $aArticleReviewer['reviewer_id'],'state' => 0,'email' => ['<>','']]; $aUser = Db::name('user')->field('user_id,email,realname,account')->where($aWhere)->find();