diff --git a/application/api/controller/Article.php b/application/api/controller/Article.php index a832c42..eb130ad 100644 --- a/application/api/controller/Article.php +++ b/application/api/controller/Article.php @@ -168,7 +168,7 @@ class Article extends Controller { // $stack = []; // } - grabCiteFromCrossref($data['article_id']); +// grabCiteFromCrossref($data['article_id']); $re["track"] = $stack; return jsonSuccess($re); @@ -178,7 +178,7 @@ class Article extends Controller { public function mmmm(){ - grabCiteFromCrossref(3244); + grabCiteFromCrossref(400); } @@ -552,7 +552,7 @@ class Article extends Controller { ->where('j_journal_stage.is_publish', 1) ->where('j_journal_stage.stage_year', '>=', '2019') ->count(); - $re['articleList'] = strongArticleList($list); + $re['articleList'] = strongArticleList($list,false); $re['count'] = $count; return jsonSuccess($re); } diff --git a/application/api/controller/Journal.php b/application/api/controller/Journal.php index 4ebfd10..a038dfe 100644 --- a/application/api/controller/Journal.php +++ b/application/api/controller/Journal.php @@ -704,40 +704,60 @@ class Journal extends Controller { $journal_info = $this->journal_obj->where('journal_id', $data['journal_id'])->find(); $limit_start = ($data['pageIndex'] - 1) * $data['pageSize']; - if($journal_info['cycle']==0){ + if($journal_info['cycle']==0){//连续出刊的标志是0 $stage = $this->journal_stage_obj->where("journal_id",$data['journal_id'])->where("stage_year",date("Y"))->where("state",0)->find(); - $list = $this->article_obj - ->field('j_article.*,j_journal_stage.*') + $query = $this->article_obj + ->field("j_article.article_id,j_article.journal_id,j_article.npp,j_article.doi,j_article.journal_stage_id,j_article.title,j_article.icon,j_article.abbr,j_journal_stage.stage_year") ->join('j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT') ->where("j_article.journal_id",$journal_info["journal_id"]) ->where("j_article.lx_online",0) - ->where("j_journal_stage.journal_stage_id",$stage['journal_stage_id']) - ->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",$journal_info["journal_id"]) - ->where("j_article.lx_online",0) - ->where("j_journal_stage.journal_stage_id",$stage['journal_stage_id']) - ->count(); - return json(['code' => 0, 'msg' => 'success', 'data' => ['articlelist' => strongArticleList($list), 'count' => $count]]); + ->where("j_journal_stage.journal_stage_id",$stage['journal_stage_id']); + $list = $query->limit($limit_start,$data['pageSize'])->select(); + $count = $query->count(); +// $list = $this->article_obj +//// ->field('j_article.*,j_journal_stage.*') +// ->field("j_article.article_id,j_article.title,j_article.icon,j_article.abbr,j_journal_stage.stage_year") +// ->join('j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT') +// ->where("j_article.journal_id",$journal_info["journal_id"]) +// ->where("j_article.lx_online",0) +// ->where("j_journal_stage.journal_stage_id",$stage['journal_stage_id']) +// ->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",$journal_info["journal_id"]) +// ->where("j_article.lx_online",0) +// ->where("j_journal_stage.journal_stage_id",$stage['journal_stage_id']) +// ->count(); + return json(['code' => 0, 'msg' => 'success', 'data' => ['articlelist' => $list, 'count' => $count]]); }else{ $stages = $this->journal_stage_obj->where('journal_id', $data['journal_id'])->where('is_publish', 0)->where('state', 0)->column('journal_stage_id'); - $list = $this->article_obj - ->field('j_article.*,j_journal_stage.*') + $query = $this->article_obj + ->field("j_article.article_id,j_article.journal_id,j_article.npp,j_article.doi,j_article.journal_stage_id,j_article.title,j_article.icon,j_article.abbr,j_journal_stage.stage_year") ->join('j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT') ->where('j_article.journal_stage_id', 'in', $stages) ->where('j_article.state', 0) ->where('j_article.is_public',1) - ->order('j_journal_stage.stage_year desc,j_article.sort 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_stage_id', 'in', $stages) - ->where('j_article.state', 0) - ->count(); - return json(['code' => 0, 'msg' => 'success', 'data' => ['articlelist' => strongArticleList($list), 'count' => $count]]); + ->order('j_journal_stage.stage_year desc,j_article.sort desc'); + $list = $query->limit($limit_start, $data['pageSize'])->select(); + $count = $query->count(); + +// $list = $this->article_obj +//// ->field('j_article.*,j_journal_stage.*') +// ->field("j_article.article_id,j_article.title,j_article.icon,j_article.abbr,j_journal_stage.stage_year") +// ->join('j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT') +// ->where('j_article.journal_stage_id', 'in', $stages) +// ->where('j_article.state', 0) +// ->where('j_article.is_public',1) +// ->order('j_journal_stage.stage_year desc,j_article.sort 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_stage_id', 'in', $stages) +// ->where('j_article.state', 0) +// ->count(); + return json(['code' => 0, 'msg' => 'success', 'data' => ['articlelist' => $list, 'count' => $count]]); } } @@ -770,7 +790,7 @@ class Journal extends Controller { ->order('j_journal_stage.stage_year desc,j_journal_stage.stage_vol desc,j_journal_stage.stage_no desc,j_article.article_id desc') ->limit(4) ->select(); - return json(['code' => 0, 'msg' => 'success', 'data' => ['articlelist' => strongArticleList($list)]]); + return json(['code' => 0, 'msg' => 'success', 'data' => ['articlelist' => strongArticleList($list,false)]]); } @@ -886,8 +906,9 @@ class Journal extends Controller { } $limit_start = ($data['pageIndex'] - 1) * $data['pageSize']; if($data['journal_id']==1){ - $list = $this->article_obj - ->field("j_article.*,count(j_article_cite.article_id) as cited_num") + + $query = $this->article_obj + ->field("j_article.article_id,j_article.journal_id,j_article.npp,j_article.doi,j_article.journal_stage_id,j_article.title,j_article.icon,j_article.abbr,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']) @@ -897,42 +918,72 @@ class Journal extends Controller { ->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(); - $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") - ->having("count(j_article_cite.article_cite_id) > 3") - ->count(); + ->order("cited_num desc"); + $list = $query->limit($limit_start,$data['pageSize'])->select(); + $count = $query->count(); + +// $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(); +// $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") +// ->having("count(j_article_cite.article_cite_id) > 3") +// ->count(); }else{ - $list = $this->article_obj + $query = $this->article_obj + ->field("j_article.article_id,j_article.journal_id,j_article.npp,j_article.doi,j_article.journal_stage_id,j_article.title,j_article.icon,j_article.abbr") ->join("j_journal_stage","j_journal_stage.journal_stage_id = j_article.journal_stage_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_journal_stage.is_publish', 1) - ->orderRaw("(j_article.abs_num + j_article.pdf_num + j_article.html_num) desc") - ->limit($limit_start,$data['pageSize']) - ->select(); - $count = $this->article_obj - ->join("j_journal_stage","j_journal_stage.journal_stage_id = j_article.journal_stage_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_journal_stage.is_publish', 1) - ->count(); + ->orderRaw("(j_article.abs_num + j_article.pdf_num + j_article.html_num) desc"); + $list = $query->limit($limit_start,$data['pageSize'])->select(); + $count = $query->count(); + + + + + +// $list = $this->article_obj +// ->join("j_journal_stage","j_journal_stage.journal_stage_id = j_article.journal_stage_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_journal_stage.is_publish', 1) +// ->orderRaw("(j_article.abs_num + j_article.pdf_num + j_article.html_num) desc") +// ->limit($limit_start,$data['pageSize']) +// ->select(); +// $count = $this->article_obj +// ->join("j_journal_stage","j_journal_stage.journal_stage_id = j_article.journal_stage_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_journal_stage.is_publish', 1) +// ->count(); if($count>30){ $count = 30; } } - $re['articles'] = strongArticleList($list); + $re['articles'] = strongArticleList($list,false); $re['count'] = $count; return jsonSuccess($re); } diff --git a/application/common.php b/application/common.php index 762f522..3887ef1 100644 --- a/application/common.php +++ b/application/common.php @@ -115,11 +115,15 @@ function grabCiteFromCrossref($article_id,$act="zd"){ $article_cite_obj = Db::name("article_cite"); $article_info = $article_obj->where("article_id",$article_id)->find(); $cite_days = (time()-$article_info['cite_time'])/3600*24; - if($act=="zd"&&$cite_days<7){ - return ; - } +// if($act=="zd"&&$cite_days<7){ +// return ; +// } try { $rr = pCrossrefCite($article_id); + + +// var_dump($rr);die; + foreach ($rr as $v){ $c = $article_cite_obj->where("doi",$v['doi'])->find(); if($c){continue;} @@ -134,6 +138,10 @@ function grabCiteFromCrossref($article_id,$act="zd"){ $articleEntity['state'] = 1; $article_cite_obj->insert($articleEntity); } + + + + $article_obj->where("article_id",$article_id)->update(['cite_time'=>time()]); }catch (\think\Exception $e){ echo $e->getMessage(); diff --git a/application/config.php b/application/config.php index ef2458f..3ec2911 100644 --- a/application/config.php +++ b/application/config.php @@ -187,15 +187,21 @@ return [ // | 缓存设置 // +---------------------------------------------------------------------- - 'cache' => [ +// 'cache' => [ +// // 驱动方式 +// 'type' => 'File', +// // 缓存保存目录 +// 'path' => CACHE_PATH, +// // 缓存前缀 +// 'prefix' => '', +// // 缓存有效期 0表示永久缓存 +// 'expire' => 0, +// ], + + 'cache' => [ // 驱动方式 - 'type' => 'File', - // 缓存保存目录 - 'path' => CACHE_PATH, - // 缓存前缀 - 'prefix' => '', - // 缓存有效期 0表示永久缓存 - 'expire' => 0, + 'type' => 'redis', + 'host' => '127.0.0.1' ], // +----------------------------------------------------------------------