From d2ec39ddbea4b77b5cb8b7c4dda83d6135169d6b Mon Sep 17 00:00:00 2001 From: chengxl Date: Fri, 21 Nov 2025 16:18:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/controller/Preaccept.php | 37 ++++++++++++++---------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/application/api/controller/Preaccept.php b/application/api/controller/Preaccept.php index 4197f31..da72996 100644 --- a/application/api/controller/Preaccept.php +++ b/application/api/controller/Preaccept.php @@ -1709,23 +1709,30 @@ return null; } //查询参考文献数据 $aWhere = ['p_article_id' => $iPArticleId,'article_id' => $iArticleId,'state' => 0]; - $iCount = Db::name('production_article_refer')->where($aWhere)->count(); - if(empty($iCount)){ + $aRefer = Db::name('production_article_refer')->where($aWhere)->select(); + if(empty($aRefer)){ return json_encode(array('status' => 3,'msg' => 'Reference is empty','data' => ['total' => 0,'unprocessed_total' => 0,'processed_total' => 0])); } - //获取未处理的数据 - $aWhere['is_deal'] = 2; - $aUnprocessed = Db::name('production_article_refer')->where($aWhere)->select(); - //获取已处理的数据 - $aWhere['is_deal'] = 1; - $aProcessed = Db::name('production_article_refer')->where($aWhere)->select(); - //未处理的数量 - $iUnprocessed = empty($aUnprocessed) ? 0 : count($aUnprocessed); - //已处理的数量 - $iProcessed = empty($aProcessed) ? 0 : count($aProcessed); - - //数据组合 - $aRefer = array_merge($aUnprocessed,$aProcessed); + //获取总数量 + $iCount = empty($aRefer) ? 0 : count($aRefer); + $aWhere["refer_doi"] = ["<>",""]; + $aDoi = Db::name('production_article_refer')->field('count(p_article_id) as num,refer_doi')->where($aWhere)->group('refer_doi')->select(); + $aDoi = empty($aDoi) ? [] : array_column($aDoi, 'num','refer_doi'); + //数据处理 + $iUnprocessed = $iProcessed = 0; + foreach ($aRefer as $key => $value) { + if($value['is_deal'] == 1){ + $iProcessed++; + } + if($value['is_deal'] == 2){ + $iUnprocessed++; + } + $iIsRepat = 0; + if(!empty($value['refer_doi']) && (!empty($aDoi[$value['refer_doi']]) && $aDoi[$value['refer_doi']] > 1)){ + $iIsRepat = 1; + } + $aRefer[$key]['is_repeat'] = $iIsRepat; + } $aRefer = ['total' => $iCount,'unprocessed_total' => $iUnprocessed,'processed_total' => $iProcessed,'refer' => $aRefer]; return json_encode(['status' => 1,'msg' => 'success','data' => $aRefer]); }