Merge remote-tracking branch 'origin/master'

This commit is contained in:
wangjinlei
2025-07-11 15:49:25 +08:00
3 changed files with 152 additions and 22 deletions

View File

@@ -142,6 +142,16 @@ class Journal extends Controller {
$relatelist = $this->journal_obj->where('journal_id', 'in', $rearr)->where('state', 0)->select();
$absList = $this->journal_abs_obj->where('journal_id', $data['journal_id'])->where('state', 0)->order('sort')->select();
$stageList = $this->journal_stage_obj->where('journal_id', $data['journal_id'])->where('is_publish', 1)->where('state', 0)->order('stage_year desc,stage_no desc')->select();
//获取期刊主编辑 chengxiaoling start 20250626
if(!empty($journal_info)){
$aBoard = $this->getJournalBoard(['issn' => $journal_info['issn'],'type' => 0]);
$aBoard = empty($aBoard['data']) ? [] : $aBoard['data'];
$sBoard = empty($aBoard) ? '' : implode("<br>", array_unique(array_column($aBoard, 'realname')));
$sBoard = trim($sBoard);
$journal_info['editorinchief'] = empty($sBoard) ? $journal_info['editorinchief'] : $sBoard;
}
//获取期刊主编辑 chengxiaoling end 20250626
return json(['code' => 0, 'msg' => 'success', 'data' => ['journal' => $journal_info, 'relats' => $relatelist, 'journalAbs' => $absList, 'journalStage' => $stageList]]);
}
@@ -1907,4 +1917,19 @@ class Journal extends Controller {
$re['count'] = $count;
return jsonSuccess($re);
}
/**
* @title 获取期刊编辑
* @description 获取期刊编辑接口
*/
private function getJournalBoard($aParam = []){
$sIssn = empty($aParam['issn']) ? '' : $aParam['issn'];
if(empty($sIssn)){
return json_encode(['status' => 2,'msg' => 'Parameter is empty']);
}
$sUrl = "http://api.tmrjournals.com/public/index.php/api/Supplementary/getJournalBoard";
$aResult = json_decode(myPost($sUrl,$aParam),true);
return $aResult;
}
}

View File

@@ -0,0 +1,49 @@
<?php
namespace app\api\controller;
use think\Controller;
use think\Db;
/**
* @title 补充接口
* @description 文章接口
*/
class Supplementary extends Controller
{
public function __construct(\think\Request $request = null) {
parent::__construct($request);
}
/**
* @title 获取期刊介绍
* @description 获取期刊编辑接口
*/
public function getJournalPaperArt(){
//获取参数
$aParam = $this->request->post();
//参数验证
$sIssn = empty($aParam['issn']) ? '' : $aParam['issn'];
if(empty($sIssn)){
return json_encode(['status' => 2,'msg' => 'Please select an journal']);
}
//期刊标题
$sTitle = empty($aParam['journal_title']) ? ['About Journal','About us','Journal Information'] : $aParam['journal_title'];
//根据期刊issn查询期刊ID
$aWhere = ['state' => 0,'issn' => $sIssn];
$aJournal = Db::name('journal')->field('journal_id')->where($aWhere)->find();
if(empty($aJournal)){
return json_encode(['status' => 3,'msg' => 'No journal information found']);
}
//查询期刊编辑信息
$aWhere = ['state' => 0,'journal_id' => $aJournal['journal_id'],'title' => ['in',$sTitle]];
$aJournalPaperArt = Db::name('journal_paper_art')->where($aWhere)->column('content');
return json_encode(['status' => 1,'msg' => 'success','data' => $aJournalPaperArt]);
}
}
?>

View File

@@ -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")