This commit is contained in:
wangjinlei
2026-06-23 09:55:37 +08:00
parent ec8bfb9033
commit 186126a726

View File

@@ -317,6 +317,75 @@ class Main extends Controller {
}
public function citeMate(){
$data = $this->request->post();
$rule = new Validate([
"journal_issn"=>"require",
"year"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$journal_info = $this->journal_obj->where("issn",$data['journal_issn'])->find();
$r = $this->journal_stage_obj->where("journal_id",$journal_info['journal_id'])->where("stage_year",date("Y",strtotime("- ".$data['year']." year")))->where("is_publish",1)->limit(1)->select();
if(!$r){
return jsonError("没有该年数据");
}
$cites = $this->article_obj
->field("j_article.*")
->join("j_article_cite","j_article_cite.article_id = j_article.article_id","right")
->where("j_article.journal_id",$journal_info['journal_id'])
->where("j_article.journal_stage_id",">=",$r[0]['journal_stage_id'])
->select();
$topics = [];
$country = [];
foreach ($cites as $k=>$v){
$cache_topics = $this->article_to_topic_obj->where("article_id",$v['article_id'])->select();
foreach ($cache_topics as $k1=>$v1){
isset($topics[$v1['topic_id']])?$topics[$v1['topic_id']]++:$topics[$v1['topic_id']] = 1;
}
$cache_country = $this->article_author_obj->where("article_id",$v['article_id'])->where("is_report",1)->select();
foreach ($cache_country as $k1=>$v1){
isset($country[$v1['author_country']])?$country[$v1['author_country']]++:$country[$v1['author_country']] = 1;
}
}
foreach ($topics as $k=>$v){
$topics[$k] = [
"topic_id"=>$k,
"topic_name"=>Db::name("journal_topic")->where("journal_topic_id",$k)->value("title"),
"num"=>$v
];
}
$new_country = [];
foreach ($country as $k=>$v){
$new_country[] = [
"country"=>$k,
"num"=>$v
];
}
usort($topics, function($a, $b) {
return $b['num'] - $a['num'];
});
usort($new_country, function($a, $b) {
return $b['num'] - $a['num'];
});
$re['cites_num'] = count($cites);
$re['topics'] = $topics;
$re['country'] = $new_country;
return jsonSuccess($re);
}
public function getAllCiteArticles(){