This commit is contained in:
wangjinlei
2021-03-16 10:49:59 +08:00
parent f1a9638f31
commit c53261af2b
4 changed files with 54 additions and 6 deletions

View File

@@ -265,36 +265,56 @@ class Article extends Controller {
*
* @param name:journal_id type:int require:1 desc:期刊id
* @param name:type type:string require:1 desc:类型(cited/read/download)
* @param name:pageIndex type:int require:1 desc:当前页码数
* @param name:pageSize type:int require:1 desc:单页数据条数
*
* @return articleList:文章信息#
* @return count:总数
*
*/
public function getTopArt() {
$data = $this->request->post();
$journal_info = $this->journal_obj->where('journal_id',$data['journal_id'])->find();
$limit_start = ($data['pageIndex'] - 1) * $data['pageSize'];
$list = [];
if ($data['type'] == 'cited') {
$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)
->where('j_journal_stage.stage_year','>=','2019')
->where('j_journal_stage.is_publish',1)
->order('j_article.cited desc')
->limit($limit_start,$data['pageSize'])
->select();
} else if ($data['type'] == 'read') {
$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)
->where('j_journal_stage.is_publish',1)
->where('j_journal_stage.stage_year','>=','2019')
->order('j_article.abs_num desc')
->limit($limit_start,$data['pageSize'])
->select();
} else {
$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)
->where('j_journal_stage.is_publish',1)
->where('j_journal_stage.stage_year','>=','2019')
->orderRaw('j_article.html_num+j_article.pdf_num desc')
->limit($limit_start,$data['pageSize'])
->select();
}
$count = $this->article_obj
->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)
->where('j_journal_stage.is_publish',1)
->where('j_journal_stage.stage_year','>=','2019')
->count();
//获取作者
foreach ($list as $k => $v) {
$stage_info = $this->journal_stage_obj->where('journal_stage_id',$v['journal_stage_id'])->find();
@@ -316,6 +336,7 @@ class Article extends Controller {
}
$re['articleList'] = $list;
$re['count'] = $count;
return jsonSuccess($re);
}

View File

@@ -413,18 +413,31 @@ class Journal extends Controller {
* @method POST
*
* @param name:journal_id type:int require:1 desc:期刊id
* @param name:pageIndex type:int require:1 desc:当前页码数
* @param name:pageSize type:int require:1 desc:单页数据条数
*
* @return articles:文章列表array#
* @return count:总数
*/
public function getTopArticle() {
$data = $this->request->post();
$journal_info = $this->journal_obj->where('journal_id', $data['journal_id'])->find();
$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('j_article.journal_id', $data['journal_id'])
->where('j_article.state', 0)
->where('j_journal_stage.is_publish',1)
->orderRaw('j_article.cited+j_article.abs_num+j_article.pdf_num desc')
->limit($limit_start,$data['pageSize'])
->select();
$count = $this->article_obj
->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)
->where('j_journal_stage.is_publish',1)
->count();
//获取作者
foreach ($list as $k => $v) {
@@ -445,7 +458,7 @@ class Journal extends Controller {
}
$list[$k]['title'] = $cache_title;
}
return jsonSuccess(['articles' => $list]);
return jsonSuccess(['articles' => $list,'count'=>$count]);
}
/**
@@ -505,6 +518,7 @@ class Journal extends Controller {
->join(array(['j_article', 'j_article.article_id = j_article_to_topic.article_id', 'LEFT'], ['j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT']))
->where('j_article_to_topic.topic_id', $topic_info['journal_topic_id'])
->where('j_article_to_topic.state', 0)
->where('j_journal_stage.is_publish',1)
->order('j_article.sort desc')
->select();
@@ -568,7 +582,7 @@ class Journal extends Controller {
*/
public function getJournalCfp() {
$data = $this->request->post();
$list = $this->journal_cfp_obj->where('journal_id', $data['journal_id'])->where('state', 0)->select();
$list = $this->journal_cfp_obj->where('journal_id', $data['journal_id'])->where('state', 0)->order('sort desc ,journal_cfp_id asc')->select();
$re['cfps'] = $list;
return jsonSuccess($re);

View File

@@ -282,8 +282,11 @@ class Main extends Controller {
* @method POST
*
* @param name:type require:1 type:string desc:类型(cite/read/download)
* @param name:pageIndex type:int require:1 desc:当前页码数
* @param name:pageSize type:int require:1 desc:单页数据条数
*
* @return articles:文章信息array#
* @return count:总数
*/
public function getThireTopArticles(){
$data = $this->request->post();
@@ -296,15 +299,21 @@ class Main extends Controller {
}else{
return jsonError('Please make sure type in "cite/read/download"');
}
$limit_start = ($data['pageIndex'] - 1) * $data['pageSize'];
$list = $this->article_obj->field('j_article.*,j_journal_stage.*,j_journal.title journal_title,j_journal.jabbr journal_short')
->join(array(['j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT'],['j_journal','j_article.journal_id = j_journal.journal_id','LEFT']))
->where('j_article.state', 0)
->where('j_article.state', 0)
->where('j_journal_stage.is_publish',1)
// ->orderRaw('j_article.cited+j_article.abs_num+j_article.pdf_num desc')
->order($order)
->limit(20)
->limit($limit_start,$data['pageSize'])
->select();
$count = $this->article_obj
->join(array(['j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT'],['j_journal','j_article.journal_id = j_journal.journal_id','LEFT']))
->where('j_article.state', 0)
->where('j_journal_stage.is_publish',1)
->count();
//获取作者
foreach ($list as $k => $v) {
$stage_info = $this->journal_stage_obj->where('journal_stage_id', $v['journal_stage_id'])->find();
@@ -325,7 +334,7 @@ class Main extends Controller {
}
$list[$k]['title'] = $cache_title;
}
return jsonSuccess(['articles' => $list]);
return jsonSuccess(['articles' => $list,'count'=>$count]);
}

View File

@@ -992,6 +992,7 @@ class Journal extends Controller {
* @param name:journal_id type:int require:1 desc:期刊id
* @param name:title type:string require:1 desc:标题
* @param name:icon type:string require:1 desc:图标
* @param name:sort type:int require:1 desc:权重
* @param name:showtime type:string require:1 desc:显示时间
* @param name:content type:string require:1 desc:内容
*
@@ -1003,6 +1004,7 @@ class Journal extends Controller {
$insert['journal_id'] = $data['journal_id'];
$insert['title'] = $data['title'];
$insert['icon'] = $data['icon'];
$insert['sort'] = $data['sort'];
$insert['showtime'] = $data['showtime'];
$insert['content'] = $data['content'];
$insert['ctime'] = time();
@@ -1036,6 +1038,7 @@ class Journal extends Controller {
* @param name:journal_cfp_id type:int require:1 desc:期刊收刊id
* @param name:title type:string require:1 desc:标题
* @param name:icon type:string require:1 desc:图标
* @param name:sort type:int require:1 desc:权重
* @param name:showtime type:string require:1 desc:显示时间
* @param name:content type:string require:1 desc:内容
*/
@@ -1043,6 +1046,7 @@ class Journal extends Controller {
$data = $this->request->post();
$update['title'] = $data['title'];
$update['icon'] = $data['icon'];
$update['sort'] = $data['sort'];
$update['showtime'] = $data['showtime'];
$update['content'] = $data['content'];
$this->journal_cfp_obj->where('journal_cfp_id',$data['journal_cfp_id'])->update($update);
@@ -1064,7 +1068,7 @@ class Journal extends Controller {
public function getJournalCfps(){
$data = $this->request->post();
$journal_info = $this->journal_obj->where('journal_id',$data['journal_id'])->find();
$list = $this->journal_cfp_obj->where('journal_id',$data['journal_id'])->where('state',0)->select();
$list = $this->journal_cfp_obj->where('journal_id',$data['journal_id'])->where('state',0)->order('sort desc ,journal_cfp_id asc')->select();
$re['cfps'] = $list;
$re['journal'] = $journal_info;