From 18f6608ceacfd429ec4af5594f3f599d8eaeaa6e Mon Sep 17 00:00:00 2001 From: chengxl Date: Thu, 25 Dec 2025 17:22:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/controller/Reviewer.php | 32 +++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/application/api/controller/Reviewer.php b/application/api/controller/Reviewer.php index 2977393..5056475 100644 --- a/application/api/controller/Reviewer.php +++ b/application/api/controller/Reviewer.php @@ -2224,12 +2224,36 @@ class Reviewer extends Base } //查询文章期刊ID - $article_info = $this->article_obj->field('journal_id')->where("article_id", $data['article_id'])->find(); + $article_info = $this->article_obj->field('user_id,journal_id')->where("article_id", $data['article_id'])->find(); + //查询文章作者 + $iUserId = empty($article_info['user_id']) ? 0 : $article_info['user_id']; + $aUserId = [$iUserId]; + $article_info = $this->article_obj->field('user_id,journal_id')->where("article_id", $data['article_id'])->find(); + $aAuthorList = Db::name('article_author')->field('email,company')->where(['article_id'=>$data['article_id'],'state' => 0])->select(); + if(!empty($aAuthorList)){ + $aAuthorEmail = array_column($aAuthorList, 'email'); + $aWhere = ['email' => ['in',$aAuthorEmail],'state' => 0]; + $aUserId = Db::name('user')->where($aWhere)->column('user_id'); + if(!empty($aUserId)){ + array_push($aUserId, $iUserId); + } + } + //查询提交文章作者详情 作者和审稿人的机构不一致 + $aReviewerCompany = []; + if(!empty($aUserId)){ + //作者同机构的审稿人 + $aReviewerCompany = Db::name('user_reviewer_info')->where(['reviewer_id' => ['in',$aUserId],'state' => 0])->column('reviewer_id,company'); + } + + //文章作者机构信息 + $aAuthorCompany = empty($aAuthorList) ? [] : array_unique(array_column($aAuthorList, 'company')); + $aAuthorCompany = array_unique(array_merge($aAuthorCompany,$aReviewerCompany)); //期刊ID $iJournalId = empty($article_info['journal_id']) ? 0 : $article_info['journal_id']; //查询文章现有审稿人 $noids = $this->article_reviewer_obj->where('article_id', $data['article_id'])->column('reviewer_id'); - + $noids = empty($noids) ? [] : $noids; + $noids = empty($aUserId) ? $noids : array_unique(array_merge($aUserId,$noids)); //分页配置 $limit_start = ($data['pageIndex'] - 1) * $data['pageSize']; @@ -2251,6 +2275,10 @@ class Reviewer extends Base $where['t_user_reviewer_info.major'] = ['in',$this->majorids($data['major_id'])]; } + //过滤审稿人机构 + if(!empty($aAuthorCompany)){ + $where['t_user_reviewer_info.company'] = ['not in', $aAuthorCompany]; + } // 计算10天之后的时间戳(10天 = 10 * 24 * 60 * 60秒) $iTeenDaysLater = strtotime('-10 days');