From 71c94933f91cb03b925310a1aca2402aba539f1d Mon Sep 17 00:00:00 2001 From: chengxl Date: Thu, 12 Feb 2026 09:44:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=8F=96=E6=96=87?= =?UTF-8?q?=E7=AB=A0=E5=BA=95=E9=83=A8=E4=BF=A1=E6=81=AF=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/controller/Supplementary.php | 60 ++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/application/api/controller/Supplementary.php b/application/api/controller/Supplementary.php index 068fe0e..b0880e2 100644 --- a/application/api/controller/Supplementary.php +++ b/application/api/controller/Supplementary.php @@ -66,6 +66,66 @@ class Supplementary extends Base } return json_encode(['status' => 1,'msg' => 'success','data' => $aUserData]); } + /** + * @title 获取文章底部信息 + * @description 获取期刊编辑接口 + */ + public function getProductiArticleFooter(){ + $aParam = $this->request->post(); + + //官网文章ID + $iWarticleId = empty($aParam['w_article_id']) ? 0 : $aParam['w_article_id']; + if(empty($iWarticleId)){ + return json_encode(['status' => 2,'msg' => 'Please select an article']); + } + + //获取子刊信息 + $aJournalStage = empty($aParam['journal_stage']) ? [] : $aParam['journal_stage']; + + //查询文章生产信息 + $aWhere = ['w_article_id' => $iWarticleId,'state' => ['in',[0,2]]]; + $aProductionArticle = Db::name('production_article')->field('p_article_id,article_id,journal_stage_id,journal_id,title,type,acknowledgment,abbreviation,author_contribution,abbr,npp,doi,executive_editor')->where($aWhere)->find(); + if(empty($aProductionArticle)){ + return json_encode(['status' => 3,'msg' => 'No production article information found']); + } + + //查询期刊信息 + $iJournalId = empty($aProductionArticle['journal_id']) ? 0 : $aProductionArticle['journal_id']; + $aJournal = []; + if(!empty($iJournalId)){ + $aWhere = ['journal_id' => $iJournalId,'state' => 0]; + $aJournal = Db::name('journal')->field('jabbr,title')->where($aWhere)->find(); + } + //获取文章时间/编委信息 + $iArticleId = empty($aProductionArticle['article_id']) ? 0 : $aProductionArticle['article_id']; + if(empty($iArticleId)){ + return json_encode(['status' => 3,'msg' => 'No article information found']); + } + $oLatexContent = new \app\common\LatexContent; + $aTime = $oLatexContent->getArticleTime(['article_id' => $iArticleId]); + $aProductionArticle = empty($aTime['data']) ? $aProductionArticle : array_merge($aTime['data'],$aProductionArticle); + + //获取期刊引用信息 + $sCite = $this->_cite($aProductionArticle,$aJournal,$aJournalStage); + $aProductionArticle['article_cite'] = empty($sCite) ? '' : $sCite; + $aProductionArticle['journal_title'] = empty($aJournal['title']) ? '' : $aJournal['title']; + return json_encode(['status' => 1,'data' => $aProductionArticle]); + } + //处理期刊引用信息 + private function _cite($aArticle = [],$aJournal = [],$aJournalStage = []){ + $no = empty($aJournalStage['stage_no']) ? ':' : '(' . $aJournalStage['stage_no'] . '):'; + $jabbr = empty($aJournal['jabbr']) ? '' : $aJournal['jabbr']; + $stage_year = empty($aJournalStage['stage_year']) ? '' : $aJournalStage['stage_year']; + $stage_vol = empty($aJournalStage['stage_vol']) ? '' : $aJournalStage['stage_vol']; + + $sCite = ''; + if ($aArticle['journal_id'] == 22) { + $sCite = $aArticle['abbr'] . '. ' . $aArticle['title'] . '[J]. ' . choiseJabbr($aArticle['article_id'],$jabbr) . ',' . $stage_year . ',' . $stage_vol . $no . $aArticle['npp'] . '. doi:' . $aArticle['doi']; + } else { + $sCite = $aArticle['abbr'] . '. ' . $aArticle['title'] . '. ' . choiseJabbr($aArticle['article_id'], $jabbr) . '. ' . $stage_year . ';' . $stage_vol . $no . $aArticle['npp'] . '. doi:' . $aArticle['doi']; + } + return $sCite; + } } ?> \ No newline at end of file