From 4c8331ee916e69a5fd6bb488518946f5296b5f31 Mon Sep 17 00:00:00 2001 From: wangjinlei <751475802@qq.com> Date: Thu, 16 Jan 2025 14:17:24 +0800 Subject: [PATCH] 1 --- application/api/controller/Journal.php | 100 +++++++++++++--------- application/master/controller/Article.php | 31 +++++++ 2 files changed, 89 insertions(+), 42 deletions(-) diff --git a/application/api/controller/Journal.php b/application/api/controller/Journal.php index eaaa718..6fd2668 100644 --- a/application/api/controller/Journal.php +++ b/application/api/controller/Journal.php @@ -864,60 +864,76 @@ class Journal extends Controller { * @return count:总数 */ public function getTopArticle() { + $data = $this->request->post(); - $journal_info = $this->journal_obj->where('journal_id', $data['journal_id'])->find(); + $rule = new Validate([ + "journal_id"=>"require", + "pageIndex"=>"require", + "pageSize"=>"require" + ]); + if(!$rule->check($data)){ + return jsonError($rule->getError()); + } $limit_start = ($data['pageIndex'] - 1) * $data['pageSize']; - - - - $list = $this->article_obj - ->field("j_article.*,count(j_article_cite.article_id) as cited_num") + if($data['journal_id']==1){ + $list = $this->article_obj + ->field("j_article.*,count(j_article_cite.article_id) as cited_num") + ->join("j_journal_stage",'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT') + ->join("j_article_cite","j_article_cite.article_id = j_article.article_id","left") + ->where('j_article.journal_id', $data['journal_id']) + ->where('j_article.state', 0) + ->where("j_journal_stage.stage_year",">",date("Y")-6) + ->where("j_article_cite.is_wos",1) + ->where('j_journal_stage.is_publish', 1) + ->group("j_article.article_id") + ->having("count(j_article_cite.article_cite_id) > 3") + ->order("cited_num desc") + ->limit($limit_start,$data['pageSize']) + ->select(); +// echo $this->article_obj->getLastSql(); + $count = $this->article_obj ->join("j_journal_stage",'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT') ->join("j_article_cite","j_article_cite.article_id = j_article.article_id","left") ->where('j_article.journal_id', $data['journal_id']) ->where('j_article.state', 0) + ->where("j_journal_stage.stage_year",">",date("Y")-6) + ->where("j_article_cite.is_wos",1) ->where('j_journal_stage.is_publish', 1) ->group("j_article.article_id") - ->order("cited_num desc") - ->limit($limit_start,$data['pageSize']) - ->select(); - - $count = $this->article_obj - ->join("j_journal_stage",'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT') -// ->join("j_article_cite","j_article_cite.article_id = j_article.article_id","left") - ->where('j_article.journal_id', $data['journal_id']) - ->where('j_article.state', 0) - ->where('j_journal_stage.is_publish', 1) - ->group("j_article.article_id") + ->having("count(j_article_cite.article_cite_id) > 3") ->count(); + }else{ + $list = []; + $count = 0; + } - - - - - -// $list = $this->article_obj->field('j_article.*,j_journal_stage.*') -// ->join('j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT') -// ->where('j_article.journal_id', $data['journal_id']) -// ->where('j_article.state', 0) -// ->where('j_journal_stage.is_publish', 1) -// ->where("j_journal_stage.stage_year",">",intval(date("Y"))-3) -// ->orderRaw('j_article.cited+j_article.abs_num+j_article.pdf_num desc') -// ->limit($limit_start, $data['pageSize']) -// ->select(); +// $list = $this->article_obj +// ->field("j_article.*,count(j_article_cite.article_id) as cited_num") +// ->join("j_journal_stage",'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT') +// ->join("j_article_cite","j_article_cite.article_id = j_article.article_id","left") +// ->where('j_article.journal_id', $data['journal_id']) +// ->where('j_article.state', 0) +// ->where('j_journal_stage.is_publish', 1) +// ->group("j_article.article_id") +// ->order("cited_num desc") +// ->limit($limit_start,$data['pageSize']) +// ->select(); // // $count = $this->article_obj -// ->join('j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT') -// ->where('j_article.journal_id', $data['journal_id']) -// ->where('j_article.state', 0) -// ->where('j_journal_stage.is_publish', 1) -// ->where("j_journal_stage.stage_year",">",intval(date("Y"))-3) -// ->count(); - - if($count>100){//只显示前50片 - $count = 100; - } - return jsonSuccess(['articles' => strongArticleList($list), 'count' => $count]); +// ->join("j_journal_stage",'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT') +//// ->join("j_article_cite","j_article_cite.article_id = j_article.article_id","left") +// ->where('j_article.journal_id', $data['journal_id']) +// ->where('j_article.state', 0) +// ->where('j_journal_stage.is_publish', 1) +// ->group("j_article.article_id") +// ->count(); +// +// if($count>100){//只显示前50片 +// $count = 100; +// } + $re['articles'] = strongArticleList($list); + $re['count'] = $count; + return jsonSuccess($re); } /** diff --git a/application/master/controller/Article.php b/application/master/controller/Article.php index 025c042..aeb3bd1 100644 --- a/application/master/controller/Article.php +++ b/application/master/controller/Article.php @@ -650,6 +650,37 @@ class Article extends Controller } + + public function getArticleDetail(){ + $data = $this->request->post(); + $rule = new Validate([ + "article_id"=>"require" + ]); + if(!$rule->check($data)){ + return jsonError($rule->getError()); + } + $detail = $this->article_obj->where("article_id",$data['article_id'])->find(); + + $detail['has_html'] = hasHtml($data['article_id']); + + $re['detail'] = $detail; + return jsonSuccess($re); + } + + + + public function changeArticleType2(){ + $data = $this->request->post(); + $rule = new Validate([ + "article_id"=>"require" + ]); + if(!$rule->check($data)){ + return jsonError($rule->getError()); + } + $this->article_obj->where("article_id",$data['article_id'])->update(['html_type'=>2]); + return jsonSuccess([]); + } + /** * 获取online文章列表 */