From 4fedd4147a77eac62a34d145dd6b94eafc8e1516 Mon Sep 17 00:00:00 2001 From: wangjinlei <751475802@qq.com> Date: Wed, 16 Dec 2020 15:08:18 +0800 Subject: [PATCH] 20201112 --- application/api/controller/Article.php | 18 +++- application/api/controller/Journal.php | 71 ++++++++++++- application/api/controller/Main.php | 124 +++++++++++++++++++++- application/master/controller/Journal.php | 6 +- 4 files changed, 207 insertions(+), 12 deletions(-) diff --git a/application/api/controller/Article.php b/application/api/controller/Article.php index b71a719..ca9aa05 100644 --- a/application/api/controller/Article.php +++ b/application/api/controller/Article.php @@ -68,7 +68,7 @@ class Article extends Controller{ //组合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']; + $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']); @@ -133,10 +133,20 @@ class Article extends Controller{ $list = $this->article_author_obj->where($where)->select(); $frag = ''; foreach ($list as $k=>$v){ - $frag .= $v['author_name'].','; + $frag = $frag==''?''.$v['author_name']:$frag.', '.$v['author_name']; } - return substr($frag,0, -1); + return $frag; } +// private function getAuthor($article){ +// $where['article_id'] = $article['article_id']; +// $where['state'] = 0; +// $list = $this->article_author_obj->where($where)->select(); +// $frag = ''; +// foreach ($list as $k=>$v){ +// $frag .= $v['author_name'].','; +// } +// return substr($frag,0, -1); +// } /** @@ -155,7 +165,7 @@ class Article extends Controller{ public function getStageArticles(){ $data = $this->request->post(); $stage_info = $this->journal_stage_obj->where('journal_stage_id',$data['stage_id'])->find(); - $list = $this->article_obj->field('j_article.*,j_journal_stage.*')->join('j_journal_stage','j_article.journal_stage_id = j_journal_stage.journal_stage_id','LEFT')->where('j_article.journal_stage_id',$data['stage_id'])->where('_article.state',0)->select(); + $list = $this->article_obj->field('j_article.*,j_journal_stage.*')->join('j_journal_stage','j_article.journal_stage_id = j_journal_stage.journal_stage_id','LEFT')->where('j_article.journal_stage_id',$data['stage_id'])->where('j_article.state',0)->select(); // $topic_info = $this->journal_topic_obj->where('journal_topic_id',$data['topic_id'])->find(); // $list = $this->article_to_topic_obj->field('j_article.*,j_journal_stage.*') // ->join(array(['j_article','j_article_to_topic.article_id = j_article.article_id','LEFT'],['j_journal_stage','j_article.journal_stage_id = j_journal_stage.journal_stage_id','LEFT'])) diff --git a/application/api/controller/Journal.php b/application/api/controller/Journal.php index fc951fe..3419fe1 100644 --- a/application/api/controller/Journal.php +++ b/application/api/controller/Journal.php @@ -149,7 +149,8 @@ class Journal extends Controller { 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']; + $cite =$v['abbr'].'. '.$v['title'].' '.$journal_info['jabbr'].'. '.$stage_info['stage_year'].';'.$stage_info['stage_vol'].$no.$v['npp'].'. doi:'.$v['doi']; +// $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); } @@ -162,9 +163,9 @@ class Journal extends Controller { $list = $this->article_author_obj->where($where)->select(); $frag = ''; foreach ($list as $k=>$v){ - $frag .= $v['author_name'].','; + $frag = $frag==''?''.$v['author_name']:$frag.', '.$v['author_name']; } - return substr($frag,0, -1); + return $frag; } @@ -188,6 +189,13 @@ class Journal extends Controller { ->where('j_article.journal_stage_id','in',$stages) ->where('j_article.state',0) ->select(); + + + //获取作者 + foreach($list as $k=>$v){ + $list[$k]['authortitle'] = $this->getAuthor($v); + } + return json(['code'=>0,'msg'=>'success','data'=>['articlelist'=>$list]]); } @@ -213,6 +221,12 @@ class Journal extends Controller { ->where('j_article.type',['like','News'],['like','Comment'],'or') ->order('j_article.article_id') ->select(); + + //获取作者 + foreach($list as $k=>$v){ + $list[$k]['authortitle'] = $this->getAuthor($v); + } + return json(['code'=>0,'msg'=>'success','data'=>['articlelist'=>$list]]); } @@ -230,6 +244,13 @@ class Journal extends Controller { public function getTopArticle(){ $data = $this->request->post(); $list = $this->article_obj->field('j_article.*,j_journal_stage.*')->join('j_journal_stage','j_article.journal_stage_id = j_journal_stage.journal_stage_id','LEFT')->where('j_article.journal_id',$data['journal_id'])->where('j_article.state',0)->orderRaw('j_article.cited+j_article.abs_num+j_article.pdf_num desc')->limit(4)->select(); + + //获取作者 + foreach($list as $k=>$v){ + $list[$k]['authortitle'] = $this->getAuthor($v); + } + + return jsonSuccess(['articles'=>$list]); } @@ -250,6 +271,25 @@ class Journal extends Controller { return jsonSuccess(['notices'=>$list]); } + /** + * @title 获取消息详情 + * @description 获取消息详情 + * @author wangjinlei + * @url /api/Journal/getNoticesDetail + * @method POST + * + * @param name:journal_notices_id type:int require:1 desc:期刊消息id + * + * @return notices:消息内容# + */ + public function getNoticesDetail(){ + $data = $this->request->post(); + $notices_info = $this->journal_notices_obj->where('journal_notices_id',$data['journal_notices_id'])->find(); + + $re['notices'] = $notices_info; + return jsonSuccess($re); + } + /** * @title 获取highl话题文章 * @description 获取highl话题文章 @@ -271,6 +311,12 @@ class Journal extends Controller { ->where('j_article_to_topic.topic_id',$topic_info['journal_topic_id']) ->where('j_article_to_topic.state',0) ->select(); + + //获取作者 + foreach($list as $k=>$v){ + $list[$k]['authortitle'] = $this->getAuthor($v); + } + return jsonSuccess(['topic_info'=>$topic_info,'articlelist'=>$list]); }else{ return jsonError('no highlights'); @@ -319,6 +365,25 @@ class Journal extends Controller { return jsonSuccess($re); } + /** + * @title 获取期刊cfp详情 + * @description 获取期刊cfp详情 + * @author wangjinlei + * @url /api/Journal/getCfpDetail + * @method POST + * + * @param name:journal_cfp_id type:int require:1 desc:期刊cfpid + * + * @return cfp:期刊cfp信息# + */ + public function getCfpDetail(){ + $data = $this->request->post(); + $cfp_info = $this->journal_cfp_obj->where('journal_cfp_id',$data['journal_cfp_id'])->find(); + + $re['cfp'] = $cfp_info; + return jsonSuccess($re); + } + /** * @title 获取期刊footer * @description 获取期刊footer diff --git a/application/api/controller/Main.php b/application/api/controller/Main.php index 03d71b5..eb5451f 100644 --- a/application/api/controller/Main.php +++ b/application/api/controller/Main.php @@ -46,9 +46,7 @@ class Main extends Controller{ * @url /api/Main/getScients * @method POST * - * * @return scients:array# - * */ public function getScients(){ $list = $this->sys_scient_obj->where('state',0)->select(); @@ -56,6 +54,25 @@ class Main extends Controller{ return jsonSuccess($re); } + /** + * @title 获取scients详情 + * @description 获取scients详情 + * @author wangjinlei + * @url /api/Main/getScientDetail + * @method POST + * + * @param name:system_scient_id type:int require:1 desc:主键id + * + * @return scient:array# + */ + public function getScientDetail(){ + $data = $this->request->post(); + $info = $this->sys_scient_obj->where('system_scient_id',$data['system_scient_id'])->find(); + + $re['scient'] = $info; + return jsonSuccess($re); + } + /** * @title 获取books * @description 获取books @@ -63,9 +80,7 @@ class Main extends Controller{ * @url /api/Main/getBooks * @method POST * - * * @return books:array# - * */ public function getBooks(){ $list = $this->sys_book_obj->where('state',0)->select(); @@ -73,6 +88,25 @@ class Main extends Controller{ return jsonSuccess($re); } + /** + * @title 获取book详情 + * @description 获取book详情 + * @author wangjinlei + * @url /api/Main/getBookDetail + * @method POST + * + * @param name:system_book_id type:int require:1 desc:主键id + * + * @return book:array# + */ + public function getBookDetail(){ + $data = $this->request->post(); + $info = $this->sys_book_obj->where('system_book_id',$data['system_book_id'])->find(); + + $re['book'] = $info; + return jsonSuccess($re); + } + /** * @title 获取首页Highlights * @description 获取首页Highlights @@ -99,4 +133,86 @@ class Main extends Controller{ } } + /** + * @title 获取期刊列表 + * @description 获取期刊列表 + * @author wangjinlei + * @url /api/Main/getJournals + * @method POST + * + * @return journals:array# + */ + public function getJournals(){ + $list = $this->journal_obj->where('state',0)->select(); + + $re['journals'] = $list; + return jsonSuccess($re); + } + + /** + * @title 获取查找文章列表 + * @description 获取查找文章列表 + * @author wangjinlei + * @url /api/Main/getSearchArt + * @method POST + * + * @param name:journals type:string require:1 desc:期刊id(demo:1,2,3) + * @param name:condition1 type:string require:1 desc:条件1(title/keywords/abstract) + * @param name:condition1_text type:string require:1 desc:条件1字段 + * @param name:relation type:string require:2 desc:两条件的链接条件('and/or') + * @param name:condition2 type:string require:2 desc:条件2(title/keywords/abstract) + * @param name:condition2_text type:string require:2 desc:条件2字段 + * @param name:pageIndex type:int require:1 desc:当前页码数 + * @param name:pageSize type:int require:1 desc:单页数据条数 + * + * @return count:总数 + * @return journals:array# + */ + public function getSearchArt(){ + $data = $this->request->post(); + +// $data['journals'] = '1,2,3'; +// $data['condition1'] = 'title'; +// $data['condition1_text'] = '1'; +// $data['relation'] = 'or'; +// $data['condition2'] = 'keywords'; +// $data['condition2_text'] = '1'; +// $data['pageIndex'] = 1; +// $data['pageSize'] = 12; + $where = "j_article.journal_id in (".$data['journals'].")"; + if($data['condition2_text']!=''){ + if($data['relation']=='and'){ + $where .= ' and j_article.'.$data['condition1'] .' like "%'.$data['condition1_text'].'%" and j_article.'.$data['condition2'] .' like "%'.$data['condition2_text'].'%"'; + }else{ + $where .= ' and (j_article.'.$data['condition1'] .' like "%'.$data['condition1_text'].'%" or j_article.'.$data['condition2'] .' like "%'.$data['condition2_text'].'%")'; + } + }else{ + $where .= 'and j_article.'.$data['condition1'] .' like "%'.$data['condition1_text'].'%"'; + } + $limit_start = ($data['pageIndex'] - 1) * $data['pageSize']; + $list = $this->article_obj->field('j_article.*,j_journal_stage.*') + ->join('j_journal_stage','j_article.journal_stage_id=j_journal_stage.journal_stage_id','LEFT') + ->where($where) + ->order('j_article.article_id') + ->limit($limit_start,$data['pageSize']) + ->select(); + + foreach ($list as $k => $v){ + $list[$k]['authortitle'] = $this->getAuthor($v); + } + $count = $this->article_obj->where($where)->count(); + $re['count'] = $count; + $re['journals'] = $list; + return jsonSuccess($re); + } + private function getAuthor($article){ + $where['article_id'] = $article['article_id']; + $where['state'] = 0; + $list = $this->article_author_obj->where($where)->select(); + $frag = ''; + foreach ($list as $k=>$v){ + $frag = $frag==''?''.$v['author_name']:$frag.', '.$v['author_name']; + } + return $frag; + } } diff --git a/application/master/controller/Journal.php b/application/master/controller/Journal.php index a0f098e..178c3de 100644 --- a/application/master/controller/Journal.php +++ b/application/master/controller/Journal.php @@ -81,6 +81,7 @@ class Journal extends Controller { * @param name:finaldecision type:string require:1 desc:最终受理 * @param name:sort type:int require:1 detault:0 desc:权重值 * @param name:abstract type:string require:1 desc:简介 + * @param name:sx type:string require:1 desc:缩写(demo:tmr) * @param name:jabbr type:int require:0 desc:期刊简称 * @param name:apc type:string require:1 * @param name:icon type:string require:1 @@ -97,6 +98,7 @@ class Journal extends Controller { $insert_data['finaldecision'] = $data['finaldecision']; $insert_data['sort'] = $data['sort']; $insert_data['abstract'] = $data['abstract']; + $insert_data['sx'] = $data['sx']; $insert_data['jabbr'] = $data['jabbr']; $insert_data['apc'] = $data['apc']; $insert_data['icon'] = $data['icon']; @@ -145,9 +147,10 @@ class Journal extends Controller { * @param name:finaldecision type:string require:1 desc:最终受理 * @param name:sort type:int require:1 detault:0 desc:权重值 * @param name:abstract type:string require:1 desc:简介 + * @param name:sx type:string require:1 desc:缩写(demo:tmr) * @param name:jabbr type:string require:0 desc:期刊简称 * @param name:apc type:string require:1 - * @param name:publish_stage_id type:int require:1 desc:推广分期id + * @param name:publish_stage_id type:int require:1 desc:推广分期id * @param name:icon type:string require:1 * @param name:editor_id type:int require:1 desc:编辑id * @param name:system_color type:string require:1 @@ -162,6 +165,7 @@ class Journal extends Controller { $insert_data['finaldecision'] = $data['finaldecision']; $insert_data['sort'] = $data['sort']; $insert_data['abstract'] = $data['abstract']; + $insert_data['sx'] = $data['sx']; $insert_data['jabbr'] = $data['jabbr']; $insert_data['publish_stage_id'] = $data['publish_stage_id']; $insert_data['apc'] = $data['apc'];