diff --git a/application/master/controller/Journal.php b/application/master/controller/Journal.php index cf7122c..6d3151f 100644 --- a/application/master/controller/Journal.php +++ b/application/master/controller/Journal.php @@ -96,24 +96,13 @@ class Journal extends Controller /** * 获取全部期刊 */ - // public function getJournals() - // { - // $jouranls = $this->journal_obj->where('state', 0)->select(); - // $re['journals'] = $jouranls; - // return jsonSuccess($re); - // } public function getJournals() { - //根据条件搜索 - $aParam = $this->request->post(); - $aWhere['state'] = 0; - if(!empty($aParam['issn'])){ - $aWhere['issn'] = ['in',$aParam['issn']]; - } - $jouranls = $this->journal_obj->where($aWhere)->select(); + $jouranls = $this->journal_obj->where('state', 0)->select(); $re['journals'] = $jouranls; return jsonSuccess($re); } + /** * 获取分期通过期刊 */ @@ -249,6 +238,27 @@ class Journal extends Controller return jsonSuccess([]); } + // public function getCiteListForSubmission(){ + // $data = $this->request->post(); + // $rule = new Validate([ + // "issn"=>"require" + // ]); + // if(!$rule->check($data)){ + // return jsonError($rule->getError()); + // } + // $journal_info = $this->journal_obj->where("issn",$data['issn'])->find(); + // $s_time = strtotime(date("Y-m")."-1"); + // $list1 = $this->article_cite_obj + // ->field("j_article.title,j_article.doi,j_article.article_id,j_article_cite.article_cite_id,j_article_cite.factor,j_article_cite.article_name,j_article_cite.doi article_doi,j_article_cite.journal_name,j_article_cite.vol,j_article_cite.is_wos,j_article_cite.is_china") + // ->join("j_article","j_article.article_id = j_article_cite.article_id","left") + // ->where("j_article_cite.journal_id",$journal_info['journal_id']) + // ->where("j_article_cite.state",1) + // ->where("j_article_cite.ctime",">",$s_time) + // ->select(); + // $re['list'] = $list1; + // return jsonSuccess($re); + // } + public function getCiteListForSubmission(){ $data = $this->request->post(); $rule = new Validate([ @@ -259,17 +269,66 @@ class Journal extends Controller } $journal_info = $this->journal_obj->where("issn",$data['issn'])->find(); $s_time = strtotime(date("Y-m")."-1"); + $aWhere = ['journal_id' => $journal_info['journal_id'],'state' => 1,'ctime' => ['>',$s_time]]; $list1 = $this->article_cite_obj - ->field("j_article.title,j_article.doi,j_article.article_id,j_article_cite.article_cite_id,j_article_cite.factor,j_article_cite.article_name,j_article_cite.doi article_doi,j_article_cite.journal_name,j_article_cite.vol,j_article_cite.is_wos,j_article_cite.is_china") - ->join("j_article","j_article.article_id = j_article_cite.article_id","left") - ->where("j_article_cite.journal_id",$journal_info['journal_id']) - ->where("j_article_cite.state",1) - ->where("j_article_cite.ctime",">",$s_time) + ->field("article_cite_id,article_id,factor,article_name,doi article_doi,journal_name,vol,is_wos,is_china,author") + ->where($aWhere) ->select(); + if(!empty($list1)){ + //查询文章信息 + $aArticleId = array_unique(array_column($list1, 'article_id')); + $aWhere = ['article_id' => ['in',$aArticleId]]; + $aArticle = Db::name('article')->field('journal_stage_id,title,doi,article_id,npp')->where($aWhere)->select(); + $aArticle = empty($aArticle) ? [] : array_column($aArticle, null,'article_id'); + $aStageId = empty($aArticle) ? [] : array_unique(array_column($aArticle, 'journal_stage_id')); + if(!empty($aStageId)){ + $aWhere = ['journal_stage_id' => ['in',$aStageId]]; + $aStage = Db::name('journal_stage')->field('journal_stage_id,stage_year,stage_vol,stage_no,journal_id')->where($aWhere)->select(); + $aStage = empty($aStage) ? [] : array_column($aStage, null,'journal_stage_id'); + } + + //数据处理 + foreach ($list1 as $key => $value) { + //文章信息 + $aArticleInfo = empty($aArticle[$value['article_id']]) ? [] : $aArticle[$value['article_id']]; + $list1[$key] += $aArticleInfo; + + //子刊信息 + + $list1[$key]['stage_info'] = ''; + if(!empty($aArticleInfo)){ + $iStageId = $aArticleInfo['journal_stage_id']; + $aStageInfo = empty($aStage[$iStageId]) ? [] : $aStage[$iStageId]; + $list1[$key]['stage_info'] = $this->_cite($aStageInfo,$aArticleInfo); + } + } + } $re['list'] = $list1; return jsonSuccess($re); } + /** + * 处理文章引用 + * @param string $html + * @return string + */ + private function _cite($aJournalStage = [],$aArticle=[]){ + if(empty($aJournalStage)){ + return ''; + } + $no = empty($aJournalStage['stage_no']) ? ':' : '(' . $aJournalStage['stage_no'] . '):'; + $stage_year = empty($aJournalStage['stage_year']) ? '' : $aJournalStage['stage_year']; + $stage_vol = empty($aJournalStage['stage_vol']) ? '' : $aJournalStage['stage_vol']; + + $sCite = ''; + if ($aJournalStage['journal_id'] == 22) { + $sCite = $stage_year . ',' . $stage_vol . $no. $aArticle['npp'] . '. '; + } else { + $sCite = $stage_year . ';' . $stage_vol . $no. $aArticle['npp'] . '.' ; + } + return $sCite; + } + public function getCiteListPForSubmission(){ $data = $this->request->post(); $rule = new Validate([ @@ -352,10 +411,7 @@ class Journal extends Controller // $list3 = $this->article_cite_obj->where("journal_id",$journal['journal_id'])->where("state",1)->where("ctime",">",$y_time)->select(); $y_time = date("Y"); //获取前两年的分期信息 - $y_time_stages = $this->journal_stage_obj - ->where("journal_id",$journal['journal_id']) - ->whereIn("stage_year",[$y_time-1,$y_time-2]) - ->column("journal_stage_id"); + $y_time_stages = $this->journal_stage_obj->where("journal_id",$journal['journal_id'])->whereIn("stage_year",[$y_time-1,$y_time-2])->column("journal_stage_id"); $list3 = $this->article_cite_obj ->field("j_article_cite.*") ->join("j_article","j_article.article_id = j_article_cite.article_id","left")