This commit is contained in:
wangjinlei
2020-12-16 15:08:18 +08:00
parent 4e2ef9c0a8
commit 4fedd4147a
4 changed files with 207 additions and 12 deletions

View File

@@ -68,7 +68,7 @@ class Article extends Controller{
//组合cite信息 //组合cite信息
$no = $stage_info['stage_no']==0?':':'('.$stage_info['stage_no'].'):'; $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'].' <i>'.$journal_info['jabbr'].'</i>. '.$stage_info['stage_year'].';'.$stage_info['stage_vol'].$no.$article_info['npp'].'. doi:'.$article_info['doi'];
//修改keywords //修改keywords
$article_info['keywords'] = str_replace(',','&nbsp;&nbsp;&nbsp;&nbsp;', $article_info['keywords']); $article_info['keywords'] = str_replace(',','&nbsp;&nbsp;&nbsp;&nbsp;', $article_info['keywords']);
@@ -133,10 +133,20 @@ class Article extends Controller{
$list = $this->article_author_obj->where($where)->select(); $list = $this->article_author_obj->where($where)->select();
$frag = ''; $frag = '';
foreach ($list as $k=>$v){ 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(){ public function getStageArticles(){
$data = $this->request->post(); $data = $this->request->post();
$stage_info = $this->journal_stage_obj->where('journal_stage_id',$data['stage_id'])->find(); $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(); // $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.*') // $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'])) // ->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']))

View File

@@ -149,7 +149,8 @@ class Journal extends Controller {
foreach($list as $k=>$v){ foreach($list as $k=>$v){
//组合cite信息 //组合cite信息
$no = $stage_info['stage_no']==0?':':'('.$stage_info['stage_no'].'):'; $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'].' <i>'.$journal_info['jabbr'].'</i>. '.$stage_info['stage_year'].';'.$stage_info['stage_vol'].$no.$v['npp'].'. doi:'.$v['doi'];
// $v['abbr'].' <i>'.$v['title'].'</i> '.$journal_info['jabbr'].' '.$stage_info['stage_year'].';'.$stage_info['stage_vol'].$no.$v['npp'].'. doi:'.$v['doi'];
$list[$k]['cite'] = $cite; $list[$k]['cite'] = $cite;
$list[$k]['authortitle'] = $this->getAuthor($v); $list[$k]['authortitle'] = $this->getAuthor($v);
} }
@@ -162,9 +163,9 @@ class Journal extends Controller {
$list = $this->article_author_obj->where($where)->select(); $list = $this->article_author_obj->where($where)->select();
$frag = ''; $frag = '';
foreach ($list as $k=>$v){ 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.journal_stage_id','in',$stages)
->where('j_article.state',0) ->where('j_article.state',0)
->select(); ->select();
//获取作者
foreach($list as $k=>$v){
$list[$k]['authortitle'] = $this->getAuthor($v);
}
return json(['code'=>0,'msg'=>'success','data'=>['articlelist'=>$list]]); 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') ->where('j_article.type',['like','News'],['like','Comment'],'or')
->order('j_article.article_id') ->order('j_article.article_id')
->select(); ->select();
//获取作者
foreach($list as $k=>$v){
$list[$k]['authortitle'] = $this->getAuthor($v);
}
return json(['code'=>0,'msg'=>'success','data'=>['articlelist'=>$list]]); return json(['code'=>0,'msg'=>'success','data'=>['articlelist'=>$list]]);
} }
@@ -230,6 +244,13 @@ class Journal extends Controller {
public function getTopArticle(){ public function getTopArticle(){
$data = $this->request->post(); $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(); $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]); return jsonSuccess(['articles'=>$list]);
} }
@@ -250,6 +271,25 @@ class Journal extends Controller {
return jsonSuccess(['notices'=>$list]); 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话题文章 * @title 获取highl话题文章
* @description 获取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.topic_id',$topic_info['journal_topic_id'])
->where('j_article_to_topic.state',0) ->where('j_article_to_topic.state',0)
->select(); ->select();
//获取作者
foreach($list as $k=>$v){
$list[$k]['authortitle'] = $this->getAuthor($v);
}
return jsonSuccess(['topic_info'=>$topic_info,'articlelist'=>$list]); return jsonSuccess(['topic_info'=>$topic_info,'articlelist'=>$list]);
}else{ }else{
return jsonError('no highlights'); return jsonError('no highlights');
@@ -319,6 +365,25 @@ class Journal extends Controller {
return jsonSuccess($re); 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 * @title 获取期刊footer
* @description 获取期刊footer * @description 获取期刊footer

View File

@@ -46,9 +46,7 @@ class Main extends Controller{
* @url /api/Main/getScients * @url /api/Main/getScients
* @method POST * @method POST
* *
*
* @return scients:array# * @return scients:array#
*
*/ */
public function getScients(){ public function getScients(){
$list = $this->sys_scient_obj->where('state',0)->select(); $list = $this->sys_scient_obj->where('state',0)->select();
@@ -56,6 +54,25 @@ class Main extends Controller{
return jsonSuccess($re); 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 * @title 获取books
* @description 获取books * @description 获取books
@@ -63,9 +80,7 @@ class Main extends Controller{
* @url /api/Main/getBooks * @url /api/Main/getBooks
* @method POST * @method POST
* *
*
* @return books:array# * @return books:array#
*
*/ */
public function getBooks(){ public function getBooks(){
$list = $this->sys_book_obj->where('state',0)->select(); $list = $this->sys_book_obj->where('state',0)->select();
@@ -73,6 +88,25 @@ class Main extends Controller{
return jsonSuccess($re); 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 * @title 获取首页Highlights
* @description 获取首页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:条件1title/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:条件2title/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;
}
} }

View File

@@ -81,6 +81,7 @@ class Journal extends Controller {
* @param name:finaldecision type:string require:1 desc:最终受理 * @param name:finaldecision type:string require:1 desc:最终受理
* @param name:sort type:int require:1 detault:0 desc:权重值 * @param name:sort type:int require:1 detault:0 desc:权重值
* @param name:abstract type:string require:1 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:jabbr type:int require:0 desc:期刊简称
* @param name:apc type:string require:1 * @param name:apc type:string require:1
* @param name:icon 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['finaldecision'] = $data['finaldecision'];
$insert_data['sort'] = $data['sort']; $insert_data['sort'] = $data['sort'];
$insert_data['abstract'] = $data['abstract']; $insert_data['abstract'] = $data['abstract'];
$insert_data['sx'] = $data['sx'];
$insert_data['jabbr'] = $data['jabbr']; $insert_data['jabbr'] = $data['jabbr'];
$insert_data['apc'] = $data['apc']; $insert_data['apc'] = $data['apc'];
$insert_data['icon'] = $data['icon']; $insert_data['icon'] = $data['icon'];
@@ -145,9 +147,10 @@ class Journal extends Controller {
* @param name:finaldecision type:string require:1 desc:最终受理 * @param name:finaldecision type:string require:1 desc:最终受理
* @param name:sort type:int require:1 detault:0 desc:权重值 * @param name:sort type:int require:1 detault:0 desc:权重值
* @param name:abstract type:string require:1 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:jabbr type:string require:0 desc:期刊简称
* @param name:apc type:string require:1 * @param name:apc type:string require:1
* @param namepublish_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:icon type:string require:1
* @param name:editor_id type:int require:1 desc:编辑id * @param name:editor_id type:int require:1 desc:编辑id
* @param name:system_color type:string require:1 * @param name:system_color type:string require:1
@@ -162,6 +165,7 @@ class Journal extends Controller {
$insert_data['finaldecision'] = $data['finaldecision']; $insert_data['finaldecision'] = $data['finaldecision'];
$insert_data['sort'] = $data['sort']; $insert_data['sort'] = $data['sort'];
$insert_data['abstract'] = $data['abstract']; $insert_data['abstract'] = $data['abstract'];
$insert_data['sx'] = $data['sx'];
$insert_data['jabbr'] = $data['jabbr']; $insert_data['jabbr'] = $data['jabbr'];
$insert_data['publish_stage_id'] = $data['publish_stage_id']; $insert_data['publish_stage_id'] = $data['publish_stage_id'];
$insert_data['apc'] = $data['apc']; $insert_data['apc'] = $data['apc'];