From 096cb1e57170d864e988994ee7baf784b35ef489 Mon Sep 17 00:00:00 2001 From: wangjinlei <751475802@qq.com> Date: Thu, 24 Dec 2020 15:14:02 +0800 Subject: [PATCH] 20201112 --- application/api/controller/Article.php | 8 +- application/api/controller/Journal.php | 83 ++++++++-- application/master/controller/Article.php | 5 +- application/master/controller/Journal.php | 181 ++++++++++++++++++++++ 4 files changed, 261 insertions(+), 16 deletions(-) diff --git a/application/api/controller/Article.php b/application/api/controller/Article.php index 7c9f043..40ccce4 100644 --- a/application/api/controller/Article.php +++ b/application/api/controller/Article.php @@ -70,10 +70,6 @@ class Article extends Controller { $atto = $this->article_author_to_organ_obj->where('article_id', $article_info['article_id'])->where('state', 0)->select(); $author = $this->sys_author($authors, $organs, $atto); - //组合cite信息 - $no = $stage_info['stage_no'] == 0 ? ':' : '(' . $stage_info['stage_no'] . '):'; - $cite = $article_info['abbr'] . '. ' . $article_info['title'] . '. ' . $journal_info['jabbr'] . '. ' . $stage_info['stage_year'] . ';' . $stage_info['stage_vol'] . $no . $article_info['npp'] . '. doi:' . $article_info['doi']; - //标题斜体 $caches = $this->article_ltai_obj->where('article_id',$article_info['article_id'])->where('state',0)->column('content'); $cache_title = $article_info['title']; @@ -82,6 +78,10 @@ class Article extends Controller { } $article_info['title'] = $cache_title; + //组合cite信息 + $no = $stage_info['stage_no'] == 0 ? ':' : '(' . $stage_info['stage_no'] . '):'; + $cite = $article_info['abbr'] . '. ' . $article_info['title'] . '. ' . $journal_info['jabbr'] . '. ' . $stage_info['stage_year'] . ';' . $stage_info['stage_vol'] . $no . $article_info['npp'] . '. doi:' . $article_info['doi']; + //修改keywords $article_info['keywords'] = str_replace(',', '    ', $article_info['keywords']); diff --git a/application/api/controller/Journal.php b/application/api/controller/Journal.php index 6430652..f46c69d 100644 --- a/application/api/controller/Journal.php +++ b/application/api/controller/Journal.php @@ -23,7 +23,9 @@ class Journal extends Controller { protected $journal_notices_obj = ''; protected $journal_abs_obj = ''; protected $journal_cfp_obj = ''; + protected $journal_line_obj = ''; protected $article_to_topic_obj = ''; + protected $article_to_line_obj = ''; protected $journal_paper_obj = ''; protected $journal_paper_art_obj = ''; @@ -39,7 +41,9 @@ class Journal extends Controller { $this->journal_notices_obj = Db::name('journal_notices'); $this->journal_abs_obj = Db::name('journal_abstracting'); $this->journal_cfp_obj = Db::name('journal_cfp'); + $this->journal_line_obj = Db::name('journal_line'); $this->article_to_topic_obj = Db::name('article_to_topic'); + $this->article_to_line_obj = Db::name('article_to_line'); $this->journal_paper_obj = Db::name('journal_paper'); $this->journal_paper_art_obj = Db::name('journal_paper_art'); } @@ -82,7 +86,7 @@ class Journal extends Controller { public function getJournal() { $data = $this->request->post(); $journal_info = $this->journal_obj->where('journal_id', $data['journal_id'])->find(); - $absList = $this->journal_abs_obj->where('journal_id', $data['journal_id'])->where('state', 0)->order('journal_abstracting_id')->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('journal_stage_id desc')->select(); return json(['code' => 0, 'msg' => 'success', 'data' => ['journal' => $journal_info, 'journalAbs' => $absList, 'journalStage' => $stageList]]); } @@ -128,6 +132,65 @@ class Journal extends Controller { } return $vv; } + + /** + * @title 获取期刊line + * @description 获取期刊line + * @author wangjinlei + * @url /api/Journal/getJournalLine + * @method POST + * + * @param name:journal_id type:int require:1 desc:期刊id + * + * @return lines:期刊line数组# + */ + public function getJournalLine(){ + $data = $this->request->post(); + $list = $this->journal_line_obj->where('journal_id',$data['journal_id'])->where('state',0)->order('journal_line_id')->select(); + + $re['lines'] = $list; + return jsonSuccess($re); + } + + /** + * @title 获取期刊line文章 + * @description 获取期刊line文章 + * @author wangjinlei + * @url /api/Journal/getJournalLineArt + * @method POST + * + * @param name:journal_line_id type:int require:1 desc:期刊lineid + * + * @return journalLine:期刊时间线信息# + * @return articles:期刊line文章数组# + */ + public function getJournalLineArt(){ + $data = $this->request->post(); + $journalLine = $this->journal_line_obj->where('journal_line_id',$data['journal_line_id'])->find(); + $list = $this->article_to_line_obj->field('j_article.*,j_journal_stage.*') + ->join([['j_article','j_article_to_line.article_id = j_article.article_id','LEFT'],['j_journal_stage','j_journal_stage.journal_stage_id = j_article.journal_stage_id','LEFT']]) + ->where('j_article_to_line.journal_line_id',$data['journal_line_id']) + ->where('j_article_to_line.state',0) + ->select(); + //标题斜体 + foreach ($list as $k => $v) { + $caches = $this->article_ltai_obj->where('article_id', $v['article_id'])->where('state', 0)->column('content'); + $cache_title = $v['title']; + foreach ($caches as $val) { + $cache_title = str_replace($val, '' . $val . '', $cache_title); + } + $list[$k]['title'] = $cache_title; + } + + //获取作者 + foreach ($list as $k => $v) { + $list[$k]['authortitle'] = $this->getAuthor($v); + } + + $re['journalLine'] = $journalLine; + $re['articles'] = $list; + return jsonSuccess($re); + } /** * @title 获取期刊推广文章 @@ -149,14 +212,6 @@ class Journal extends Controller { ->order('sort asc') ->select(); $stage_info = $this->journal_stage_obj->where('journal_stage_id', $journal_info['publish_stage_id'])->find(); - //获取作者 - foreach ($list as $k => $v) { - //组合cite信息 - $no = $stage_info['stage_no'] == 0 ? ':' : '(' . $stage_info['stage_no'] . '):'; - $cite = $v['abbr'] . '. ' . $v['title'] . '. ' . $journal_info['jabbr'] . '. ' . $stage_info['stage_year'] . ';' . $stage_info['stage_vol'] . $no . $v['npp'] . '. doi:' . $v['doi']; - $list[$k]['cite'] = $cite; - $list[$k]['authortitle'] = $this->getAuthor($v); - } //标题斜体 foreach ($list as $k => $v) { $caches = $this->article_ltai_obj->where('article_id', $v['article_id'])->where('state', 0)->column('content'); @@ -166,6 +221,16 @@ class Journal extends Controller { } $list[$k]['title'] = $cache_title; } + + //获取作者 + foreach ($list as $k => $v) { + //组合cite信息 + $no = $stage_info['stage_no'] == 0 ? ':' : '(' . $stage_info['stage_no'] . '):'; + $cite = $v['abbr'] . '. ' . $v['title'] . '. ' . $journal_info['jabbr'] . '. ' . $stage_info['stage_year'] . ';' . $stage_info['stage_vol'] . $no . $v['npp'] . '. doi:' . $v['doi']; + $list[$k]['cite'] = $cite; + $list[$k]['authortitle'] = $this->getAuthor($v); + } + return json(['code' => 0, 'msg' => 'success', 'data' => ['stage' => $stage_info, 'articleList' => $list]]); } private function getAuthor($article) { diff --git a/application/master/controller/Article.php b/application/master/controller/Article.php index 69fa101..5c0f709 100644 --- a/application/master/controller/Article.php +++ b/application/master/controller/Article.php @@ -352,7 +352,7 @@ class Article extends Controller { $list = scandir(ROOT_PATH.'public/articleHTML/'.$journal_info['sx']); $frag = []; foreach ($list as $k => $v){ - if($k>2){ + if($k>1){ $frag[] = ['val'=>$v]; } } @@ -366,13 +366,12 @@ class Article extends Controller { public function getHtmlFiles(){ $data = $this->request->post(); -// $data['article_id'] = 1; $article_info = $this->article_obj->where('article_id',$data['article_id'])->find(); $journal_info = $this->journal_obj->where('journal_id',$article_info['journal_id'])->find(); $list = scandir(ROOT_PATH.'public/articleHTML/'.$journal_info['sx']); $frag = []; foreach ($list as $k => $v){ - if($k>2){ + if($k>1){ $frag[] = $v; } } diff --git a/application/master/controller/Journal.php b/application/master/controller/Journal.php index fd3f9e8..8571616 100644 --- a/application/master/controller/Journal.php +++ b/application/master/controller/Journal.php @@ -17,9 +17,11 @@ class Journal extends Controller { protected $article_obj = ''; protected $journal_topic_obj = ''; protected $journal_stage_obj = ''; + protected $journal_line_obj = ''; protected $journal_notices_obj = ''; protected $journal_abs_obj = ''; protected $article_to_topic_obj = ''; + protected $article_to_line_obj = ''; protected $journal_cfp_obj = ''; protected $journal_paper_obj = ''; protected $journal_paper_art_obj = ''; @@ -31,9 +33,11 @@ class Journal extends Controller { $this->article_obj = Db::name('article'); $this->journal_topic_obj = Db::name('journal_topic'); $this->journal_stage_obj = Db::name('journal_stage'); + $this->journal_line_obj = Db::name('journal_line'); $this->journal_notices_obj = Db::name('journal_notices'); $this->journal_abs_obj = Db::name('journal_abstracting'); $this->article_to_topic_obj = Db::name('article_to_topic'); + $this->article_to_line_obj = Db::name('article_to_line'); $this->journal_cfp_obj = Db::name('journal_cfp'); $this->journal_paper_obj = Db::name('journal_paper'); $this->journal_paper_art_obj = Db::name('journal_paper_art'); @@ -1010,6 +1014,183 @@ class Journal extends Controller { return jsonSuccess([]); } + /** + * @title 增加期刊line + * @description 增加期刊line + * @author wangjinlei + * @url /master/Journal/addJournalLine + * @method POST + * + * @param name:journal_id type:int require:1 desc:期刊id + * @param name:title type:string require:1 desc:标题 + * @param name:time type:string require:1 desc:时间 + * @param name:intro type:string require:1 desc:简介 + * @param name:dist type:int require:1 desc:距离 + */ + public function addJournalLine(){ + $data = $this->request->post(); + $insert['journal_id'] = $data['journal_id']; + $insert['title'] = $data['title']; + $insert['time'] = $data['time']; + $insert['intro'] = $data['intro']; + $insert['dist'] = $data['dist']; + $this->journal_line_obj->insert($insert); + return jsonSuccess([]); + } + + /** + * @title 删除期刊line + * @description 删除期刊line + * @author wangjinlei + * @url /master/Journal/delJournalLine + * @method POST + * + * @param name:journal_line_id type:int require:1 desc:期刊时间轴id + */ + public function delJournalLine(){ + $data = $this->request->post(); + $this->journal_line_obj->where('journal_line_id',$data['journal_line_id'])->update(['state'=>1]); + return jsonSuccess([]); + } + + /** + * @title 编辑期刊line + * @description 编辑期刊line + * @author wangjinlei + * @url /master/Journal/editJournalLine + * @method POST + * + * @param name:journal_line_id type:int require:1 desc:期刊时间轴id + * @param name:title type:string require:1 desc:标题 + * @param name:time type:string require:1 desc:时间 + * @param name:intro type:string require:1 desc:简介 + * @param name:dist type:int require:1 desc:距离 + */ + public function editJournalLine(){ + $data = $this->request->post(); + $update['title'] = $data['title']; + $update['time'] = $data['time']; + $update['intro'] = $data['intro']; + $update['dist'] = $data['dist']; + $this->journal_line_obj->where('journal_line_id',$data['journal_line_id'])->update($update); + return jsonSuccess([]); + } + + /** + * @title 获取期刊lines + * @description 获取期刊lines + * @author wangjinlei + * @url /master/Journal/getJournalLines + * @method POST + * + * @param name:journal_id type:int require:1 desc:期刊id + * + * @return journal:期刊信息# + * @return lines:array# + */ + public function getJournalLines(){ + $data = $this->request->post(); + $journal_info = $this->journal_obj->where('journal_id',$data['journal_id'])->find(); + $list = $this->journal_line_obj->where('journal_id',$data['journal_id'])->where('state',0)->order('journal_line_id')->select(); + + $re['journal'] = $journal_info; + $re['lines'] = $list; + return jsonSuccess($re); + } + + /** + * @title 增加期刊line文章 + * @description 增加期刊line文章 + * @author wangjinlei + * @url /master/Journal/addJournalLineArt + * @method POST + * + * @param name:journal_line_id type:int require:1 desc:期刊id + * @param name:article_id type:int require:1 desc:文章id + * + */ + public function addJournalLineArt(){ + $data = $this->request->post(); + $insert['journal_line_id'] = $data['journal_line_id']; + $insert['article_id'] = $data['article_id']; + $this->article_to_line_obj->insert($insert); + return jsonSuccess([]); + } + + /** + * @title 删除期刊line文章 + * @description 删除期刊line文章 + * @author wangjinlei + * @url /master/Journal/delJournalLineArt + * @method POST + * + * @param name:article_to_line_id type:int require:1 desc:期刊id + * + */ + public function delJournalLineArt(){ + $data = $this->request->post(); + $this->article_to_line_obj->where('article_to_line_id',$data['article_to_line_id'])->update(['state'=>1]); + return jsonSuccess([]); + } + + /** + * @title 获取期刊line文章 + * @description 获取期刊line文章 + * @author wangjinlei + * @url /master/Journal/getJournalLineArt + * @method POST + * + * @param name:journal_line_id type:int require:1 desc:期刊lineid + * + * @return journalLine:期刊line# + * @return journal:期刊信息# + * @return articles: 文章列表array# + * + */ + public function getJournalLineArt(){ + $data = $this->request->post(); + $journal_line_info = $this->journal_line_obj->where('journal_line_id',$data['journal_line_id'])->find(); + $journal_info = $this->journal_obj->where('journal_id',$journal_line_info['journal_id'])->find(); + $list = $this->article_to_line_obj->field('j_article.*') + ->join('j_article','j_article.article_id = j_article_to_line.article_id','LEFT') + ->where('j_article_to_line.journal_line_id',$data['journal_line_id']) + ->where('j_article_to_line.state',0) + ->select(); + + $re['journalLine'] = $journal_line_info; + $re['journal'] = $journal_info; + $re['articles'] = $list; + return jsonSuccess($re); + } + + /** + * @title 获取文章排除line + * @description 获取文章排除line + * @author wangjinlei + * @url /master/Journal/getArticleByLine + * @method POST + * + * @param name:journal_id type:int require:1 desc:期刊id + * @param name:journal_line_id type:int require:1 desc:时间线id + * @param name:pageIndex type:int require:1 desc:当前页码数 + * @param name:pageSize type:int require:1 desc:单页数据条数 + * + * $return count:总数 + * @return dataList:array# + */ + public function getArticleByLine(){ + $data = $this->request->post(); + //排除line + $ids = $this->article_to_line_obj->where('journal_line_id',$data['journal_line_id'])->where('state',0)->column('article_id'); + $limit_start = ($data['pageIndex'] - 1) * $data['pageSize']; + $list = $this->article_obj->where('journal_id',$data['journal_id'])->where('state',0)->where('article_id','not in',$ids)->limit($limit_start,$data['pageSize'])->select(); + $count = $this->article_obj->where('journal_id',$data['journal_id'])->where('state',0)->where('article_id','not in',$ids)->count(); + + $re['count'] = $count; + $re['dataList'] = $list; + return jsonSuccess($re); + } + /** * @title 获取期刊paper * @description 获取期刊paper