From 09a2f3231fb8a8414079daecc0126768ac3fdf4c Mon Sep 17 00:00:00 2001 From: wangjinlei <751475802@qq.com> Date: Fri, 2 Jun 2023 10:12:22 +0800 Subject: [PATCH] 1 --- application/api/controller/Article.php | 10 +- application/api/controller/Special.php | 9 +- application/master/controller/Article.php | 986 +++++++++++--------- application/master/controller/Submision.php | 69 ++ 4 files changed, 628 insertions(+), 446 deletions(-) diff --git a/application/api/controller/Article.php b/application/api/controller/Article.php index 0fa046d..ac61cf1 100644 --- a/application/api/controller/Article.php +++ b/application/api/controller/Article.php @@ -25,6 +25,7 @@ class Article extends Controller { protected $journal_notices_obj = ''; protected $journal_abs_obj = ''; protected $article_to_topic_obj = ''; + protected $article_main_obj = ''; public function __construct(\think\Request $request = null) { parent::__construct($request); @@ -40,6 +41,7 @@ class Article extends Controller { $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_main_obj = Db::name('article_main'); } /** @@ -87,7 +89,13 @@ class Article extends Controller { $cite = $article_info['abbr'] . '. ' . $article_info['title'] . '. ' . choiseJabbr($article_info['article_id'], $journal_info['jabbr']) . '. ' . $stage_info['stage_year'] . ';' . $stage_info['stage_vol'] . $no . $article_info['npp'] . '. doi:' . $article_info['doi']; } -// echo ($article_info['article_id']<1799&&$article_info['npp']=='Cancer Adv'?'TMR Cancer':$article_info['npp']); + //获取html + if($article_info['file_html']==''){ + $caches = $this->article_main_obj->where('article_id',$article_info['article_id'])->where('state',0)->select(); + if($caches){ + $article_info['file_html'] = $caches; + } + } if (stripos($article_info['npp'], '-')) { $cc = explode('-', $article_info['npp']); diff --git a/application/api/controller/Special.php b/application/api/controller/Special.php index 203dbf6..81ebe59 100644 --- a/application/api/controller/Special.php +++ b/application/api/controller/Special.php @@ -164,7 +164,7 @@ class Special extends Controller { $f = []; //获取作者 foreach ($list as $k => $v){ - if(strtotime($v['deadline'])< time()){ + if(strtotime($v['deadline'])<= time()){ continue; } $frag = ''; @@ -180,6 +180,7 @@ class Special extends Controller { $v['editor'] = $frag; $f[] = $v; } + $re['is_show'] = count($list)>0?'true':'false'; $re['specials'] = $f; return jsonSuccess($re); } @@ -265,6 +266,12 @@ class Special extends Controller { ->select(); //获取作者 foreach ($list as $k => $v){ + if(strtotime($v['deadline'])<= time()){ + $cou = $this->article_obj->where('journal_special_id',$v['journal_special_id'])->where('state',0)->count(); + if($cou<3){ + continue; + } + } $frag = ''; $caches = $this->journal_special_to_editor_obj ->field('j_journal_special_editor.*') diff --git a/application/master/controller/Article.php b/application/master/controller/Article.php index 8c11151..06278a1 100644 --- a/application/master/controller/Article.php +++ b/application/master/controller/Article.php @@ -13,7 +13,8 @@ use think\Validate; * @description 文章相关操作 * @group 文章相关 */ -class Article extends Controller { +class Article extends Controller +{ //put your code here protected $admin_obj = ''; @@ -35,8 +36,10 @@ class Article extends Controller { protected $subscribe_base_topic_obj = ''; protected $medicament_obj = ''; protected $article_to_medicament_obj = ''; + protected $article_main_obj = ''; - public function __construct(\think\Request $request = null) { + public function __construct(\think\Request $request = null) + { parent::__construct($request); $this->admin_obj = Db::name('admin'); $this->journal_obj = Db::name('journal'); @@ -57,21 +60,23 @@ class Article extends Controller { $this->subscribe_base_topic_obj = Db::name('subscribe_base_topic'); $this->medicament_obj = Db::name('medicament'); $this->article_to_medicament_obj = Db::name('ArticleToMedicament'); + $this->article_main_obj = Db::name("article_main"); } /** * @title 获取期刊和分期 * @description 获取期刊和分期 + * @param name:editor_id type:int require:1 desc:编辑id + * + * @return joutaglist:array# + * * @author wangjinleichang * @url /master/Article/getJournalAndStage * @method POST - * - * @param name:editor_id type:int require:1 desc:编辑id - * - * @return joutaglist:array# - * + * */ - public function getJournalAndStage() { + public function getJournalAndStage() + { $data = $this->request->post(); $journal_list = $this->journal_obj->where('editor_id', $data['editor_id'])->where('state', 0)->select(); $frag = []; @@ -94,16 +99,17 @@ class Article extends Controller { /** * @title 添加文章基本信息 * @description 添加文章基本信息 - * @author wangjinleichang - * @url /master/Article/addArticleBase - * @method POST - * * @param name:journal_id type:int require:1 desc:期刊id * @param name:journal_stage_id type:int require:1 desc:分期id * @param name:sort type:int require:1 default:0 desc:权重 * @param name:title type:string require:1 desc:标题 + * @author wangjinleichang + * @url /master/Article/addArticleBase + * @method POST + * */ - public function addArticleBase() { + public function addArticleBase() + { $data = $this->request->post(); $insert_data['journal_id'] = $data['journal_id']; $insert_data['journal_stage_id'] = $data['journal_stage_id']; @@ -121,13 +127,14 @@ class Article extends Controller { /** * @title 删除文章 * @description 删除文章 + * @param name:article_id type:int require:1 desc:文章id * @author wangjinleichang * @url /master/Article/delArticle * @method POST - * - * @param name:article_id type:int require:1 desc:文章id + * */ - public function delArticle() { + public function delArticle() + { $data = $this->request->post(); $res = $this->article_obj->where('article_id', $data['article_id'])->update(['state' => 1]); return json(['code' => 0, 'msg' => 'success']); @@ -136,10 +143,6 @@ class Article extends Controller { /** * @title 添加文章作者 * @description 添加文章作者 - * @author wangjinleichang - * @url /master/Article/addArticleAuthor - * @method POST - * * @param name:article_id type:int require:1 desc:article_id * @param name:author_name type:string require:1 desc:作者名字 * @param name:author_country type:string require:1 desc:国家 @@ -148,9 +151,14 @@ class Article extends Controller { * @param name:is_report type:boolean require:1 default:0 desc:是否通讯作者(1yes0no) * @param name:email type:string require:0 desc:邮箱 * @param name:organs type:string require:1 desc:array - * + * + * @author wangjinleichang + * @url /master/Article/addArticleAuthor + * @method POST + * */ - public function addArticleAuthor() { + public function addArticleAuthor() + { $data = $this->request->post(); $insert_author['article_id'] = $data['article_id']; @@ -195,10 +203,6 @@ class Article extends Controller { /** * @title 编辑文章作者 * @description 编辑文章作者 - * @author wangjinleichang - * @url /master/Article/editArticleAuthor - * @method POST - * * @param name:article_author_id type:int require:1 desc:article_id * @param name:author_name type:string require:1 desc:作者名字 * @param name:orcid type:string require:0 desc:orcid @@ -207,9 +211,14 @@ class Article extends Controller { * @param name:is_report type:boolean require:1 default:0 desc:是否通讯作者(1yes0no) * @param name:email type:string require:0 desc:邮箱 * @param name:organs type:string require:1 desc:array - * + * + * @author wangjinleichang + * @url /master/Article/editArticleAuthor + * @method POST + * */ - public function editArticleAuthor() { + public function editArticleAuthor() + { $data = $this->request->post(); // $data['article_author_id'] = 21; @@ -263,14 +272,15 @@ class Article extends Controller { /** * @title 删除文章作者 * @description 删除文章作者 + * @param name:article_author_id type:int require:1 desc:article_id + * * @author wangjinleichang * @url /master/Article/delArticleAuthor * @method POST - * - * @param name:article_author_id type:int require:1 desc:article_id - * + * */ - public function delArticleAuthor() { + public function delArticleAuthor() + { $data = $this->request->post(); //删除作者和机构的关系 $this->author_to_organ_obj->where('article_author_id', $data['article_author_id'])->update(['state' => 1]); @@ -281,25 +291,26 @@ class Article extends Controller { /** * @title 获取文章作者和机构 * @description 获取文章作者和机构 + * @param name:article_id type:int require:1 desc:article_id + * + * @return authorList:array# + * @return organList:array# * @author wangjinleichang * @url /master/Article/getArticleAuthor * @method POST - * - * @param name:article_id type:int require:1 desc:article_id - * - * @return authorList:array# - * @return organList:array# + * */ - public function getArticleAuthor() { + public function getArticleAuthor() + { $data = $this->request->post(); $author_list = $this->article_author_obj->where('article_id', $data['article_id'])->where('state', 0)->select(); foreach ($author_list as $k => $v) { $cache_to = $this->author_to_organ_obj - ->field('j_article_author_to_organ.*,j_article_organ.organ_name') - ->join('j_article_organ', 'j_article_organ.article_organ_id = j_article_author_to_organ.article_organ_id') - ->where('j_article_author_to_organ.article_author_id', $v['article_author_id']) - ->where('j_article_author_to_organ.state', 0) - ->select(); + ->field('j_article_author_to_organ.*,j_article_organ.organ_name') + ->join('j_article_organ', 'j_article_organ.article_organ_id = j_article_author_to_organ.article_organ_id') + ->where('j_article_author_to_organ.article_author_id', $v['article_author_id']) + ->where('j_article_author_to_organ.state', 0) + ->select(); $cache_frag = []; foreach ($cache_to as $vv) { $cache_frag[] = $vv; @@ -313,14 +324,15 @@ class Article extends Controller { /** * @title 添加文章作者机构 * @description 添加文章作者机构 + * @param name:article_id type:int require:1 desc:article_id + * @param name:organ_name type:string require:1 desc:机构名字 * @author wangjinleichang * @url /master/Article/addArticleOrgan * @method POST - * - * @param name:article_id type:int require:1 desc:article_id - * @param name:organ_name type:string require:1 desc:机构名字 + * */ - public function addArticleOrgan() { + public function addArticleOrgan() + { $data = $this->request->post(); $insert_data['article_id'] = $data['article_id']; $insert_data['organ_name'] = $data['organ_name']; @@ -335,14 +347,15 @@ class Article extends Controller { /** * @title 编辑文章作者机构 * @description 编辑文章作者机构 + * @param name:article_organ_id type:int require:1 desc:article_organ_id + * @param name:organ_name type:string require:1 desc:机构名字 * @author wangjinleichang * @url /master/Article/editArticleOrgan * @method POST - * - * @param name:article_organ_id type:int require:1 desc:article_organ_id - * @param name:organ_name type:string require:1 desc:机构名字 + * */ - public function editArticleOrgan() { + public function editArticleOrgan() + { $data = $this->request->post(); $this->article_organ_obj->where('article_organ_id', $data['article_organ_id'])->update(['organ_name' => $data['organ_name']]); return json(['code' => 0, 'msg' => 'success']); @@ -351,13 +364,14 @@ class Article extends Controller { /** * @title 删除文章作者机构 * @description 删除文章作者机构 + * @param name:article_organ_id type:int require:1 desc:article_organ_id * @author wangjinleichang * @url /master/Article/delArticleOrgan * @method POST - * - * @param name:article_organ_id type:int require:1 desc:article_organ_id + * */ - public function delArticleOrgan() { + public function delArticleOrgan() + { $data = $this->request->post(); //删除作者和机构的关系 $this->author_to_organ_obj->where('article_organ_id', $data['article_organ_id'])->update(['state' => 1]); @@ -368,7 +382,8 @@ class Article extends Controller { /** * 添加文章通过投稿系统 */ - public function addArticleForSubmission(){ + public function addArticleForSubmission() + { $data = $this->request->post(); $rule = new Validate([ 'title' => 'require', @@ -381,18 +396,18 @@ class Article extends Controller { 'file_pdf' => 'require', 'pub_date' => 'require', 'keywords' => 'require', - 'npp'=>'require' + 'npp' => 'require' ]); if (!$rule->check($data)) { return jsonError($rule->getError()); } - $journal_info = $this->journal_obj->where('issn',$data['issn'])->find(); - if(!is_dir(ROOT_PATH.'public'.DS.'articlePDF'.DS.date('Ymd'))){ - mkdir(ROOT_PATH.'public'.DS.'articlePDF'.DS.date('Ymd')); + $journal_info = $this->journal_obj->where('issn', $data['issn'])->find(); + if (!is_dir(ROOT_PATH . 'public' . DS . 'articlePDF' . DS . date('Ymd'))) { + mkdir(ROOT_PATH . 'public' . DS . 'articlePDF' . DS . date('Ymd')); } - $file_name = substr($data['file_pdf'],strripos($data['file_pdf'],'/')+1); - $co = @copy("http://api.tmrjournals.com/public/".$data['file_pdf'],ROOT_PATH.'public'.DS.'articlePDF'.DS.date('Ymd').DS.$file_name); - if($co!=1){ + $file_name = substr($data['file_pdf'], strripos($data['file_pdf'], '/') + 1); + $co = @copy("http://api.tmrjournals.com/public/" . $data['file_pdf'], ROOT_PATH . 'public' . DS . 'articlePDF' . DS . date('Ymd') . DS . $file_name); + if ($co != 1) { return jsonError('copy error!'); } //处理基本信息 @@ -400,70 +415,70 @@ class Article extends Controller { $insert['journal_id'] = $journal_info['journal_id']; $insert['journal_stage_id'] = $data['journal_stage_id']; $insert['type'] = $data['type']; - if(isset($data['icon'])&&$data['icon']!=''){ - $cfile_name = substr($data['icon'],strripos($data['icon'],'/')+1); - if(!is_dir(ROOT_PATH.'public'.DS.'articleicon'.DS.date('Ymd'))){ - mkdir(ROOT_PATH.'public'.DS.'articleicon'.DS.date('Ymd')); + if (isset($data['icon']) && $data['icon'] != '') { + $cfile_name = substr($data['icon'], strripos($data['icon'], '/') + 1); + if (!is_dir(ROOT_PATH . 'public' . DS . 'articleicon' . DS . date('Ymd'))) { + mkdir(ROOT_PATH . 'public' . DS . 'articleicon' . DS . date('Ymd')); } - $co = @copy("http://api.tmrjournals.com/public/articleicon/".$data['icon'],ROOT_PATH.'public'.DS.'articleicon'.DS.date('Ymd').DS.$cfile_name); - $insert['icon'] = date('Ymd').DS.$cfile_name; + $co = @copy("http://api.tmrjournals.com/public/articleicon/" . $data['icon'], ROOT_PATH . 'public' . DS . 'articleicon' . DS . date('Ymd') . DS . $cfile_name); + $insert['icon'] = date('Ymd') . DS . $cfile_name; } - if(isset($data['file_sub'])&&$data['file_sub']!=''){ - $cfile_name = substr($data['file_sub'],strripos($data['file_sub'],'/')+1); - if(!is_dir(ROOT_PATH.'public'.DS.'articleSUB'.DS.date('Ymd'))){ - mkdir(ROOT_PATH.'public'.DS.'articleSUB'.DS.date('Ymd')); + if (isset($data['file_sub']) && $data['file_sub'] != '') { + $cfile_name = substr($data['file_sub'], strripos($data['file_sub'], '/') + 1); + if (!is_dir(ROOT_PATH . 'public' . DS . 'articleSUB' . DS . date('Ymd'))) { + mkdir(ROOT_PATH . 'public' . DS . 'articleSUB' . DS . date('Ymd')); } - $co = @copy("http://api.tmrjournals.com/public/articleSUB/".$data['file_sub'],ROOT_PATH.'public'.DS.'articleSUB'.DS.date('Ymd').DS.$cfile_name); - $insert['file_sub'] = date('Ymd').DS.$cfile_name; + $co = @copy("http://api.tmrjournals.com/public/articleSUB/" . $data['file_sub'], ROOT_PATH . 'public' . DS . 'articleSUB' . DS . date('Ymd') . DS . $cfile_name); + $insert['file_sub'] = date('Ymd') . DS . $cfile_name; } - if(isset($data['file_sub2'])&&$data['file_sub2']!=''){ - $cfile_name = substr($data['file_sub2'],strripos($data['file_sub2'],'/')+1); - if(!is_dir(ROOT_PATH.'public'.DS.'articleSUB2'.DS.date('Ymd'))){ - mkdir(ROOT_PATH.'public'.DS.'articleSUB2'.DS.date('Ymd')); + if (isset($data['file_sub2']) && $data['file_sub2'] != '') { + $cfile_name = substr($data['file_sub2'], strripos($data['file_sub2'], '/') + 1); + if (!is_dir(ROOT_PATH . 'public' . DS . 'articleSUB2' . DS . date('Ymd'))) { + mkdir(ROOT_PATH . 'public' . DS . 'articleSUB2' . DS . date('Ymd')); } - $co = @copy("http://api.tmrjournals.com/public/articleSUB2/".$data['file_sub2'],ROOT_PATH.'public'.DS.'articleSUB2'.DS.date('Ymd').DS.$cfile_name); - $insert['file_sub2'] = date('Ymd').DS.$cfile_name; + $co = @copy("http://api.tmrjournals.com/public/articleSUB2/" . $data['file_sub2'], ROOT_PATH . 'public' . DS . 'articleSUB2' . DS . date('Ymd') . DS . $cfile_name); + $insert['file_sub2'] = date('Ymd') . DS . $cfile_name; } - if(isset($data['file_cdf'])&&$data['file_cdf']!=''){ - $cfile_name = substr($data['file_cdf'],strripos($data['file_cdf'],'/')+1); - if(!is_dir(ROOT_PATH.'public'.DS.'articleCDF'.DS.date('Ymd'))){ - mkdir(ROOT_PATH.'public'.DS.'articleCDF'.DS.date('Ymd')); + if (isset($data['file_cdf']) && $data['file_cdf'] != '') { + $cfile_name = substr($data['file_cdf'], strripos($data['file_cdf'], '/') + 1); + if (!is_dir(ROOT_PATH . 'public' . DS . 'articleCDF' . DS . date('Ymd'))) { + mkdir(ROOT_PATH . 'public' . DS . 'articleCDF' . DS . date('Ymd')); } - $co = @copy("http://api.tmrjournals.com/public/articleCDF/".$data['file_cdf'],ROOT_PATH.'public'.DS.'articleCDF'.DS.date('Ymd').DS.$cfile_name); - $insert['file_cdf'] = date('Ymd').DS.$cfile_name; + $co = @copy("http://api.tmrjournals.com/public/articleCDF/" . $data['file_cdf'], ROOT_PATH . 'public' . DS . 'articleCDF' . DS . date('Ymd') . DS . $cfile_name); + $insert['file_cdf'] = date('Ymd') . DS . $cfile_name; } - if(isset($data['endnote'])&&$data['endnote']!=''){ - $cfile_name = substr($data['endnote'],strripos($data['endnote'],'/')+1); - if(!is_dir(ROOT_PATH.'public'.DS.'endNote'.DS.date('Ymd'))){ - mkdir(ROOT_PATH.'public'.DS.'endNote'.DS.date('Ymd')); + if (isset($data['endnote']) && $data['endnote'] != '') { + $cfile_name = substr($data['endnote'], strripos($data['endnote'], '/') + 1); + if (!is_dir(ROOT_PATH . 'public' . DS . 'endNote' . DS . date('Ymd'))) { + mkdir(ROOT_PATH . 'public' . DS . 'endNote' . DS . date('Ymd')); } - $co = @copy("http://api.tmrjournals.com/public/endNote/".$data['endnote'],ROOT_PATH.'public'.DS.'endNote'.DS.date('Ymd').DS.$cfile_name); - $insert['endnote'] = date('Ymd').DS.$cfile_name; + $co = @copy("http://api.tmrjournals.com/public/endNote/" . $data['endnote'], ROOT_PATH . 'public' . DS . 'endNote' . DS . date('Ymd') . DS . $cfile_name); + $insert['endnote'] = date('Ymd') . DS . $cfile_name; } - if(isset($data['bibtex'])&&$data['bibtex']!=''){ - $cfile_name = substr($data['bibtex'],strripos($data['bibtex'],'/')+1); - if(!is_dir(ROOT_PATH.'public'.DS.'bibTex'.DS.date('Ymd'))){ - mkdir(ROOT_PATH.'public'.DS.'bibTex'.DS.date('Ymd')); + if (isset($data['bibtex']) && $data['bibtex'] != '') { + $cfile_name = substr($data['bibtex'], strripos($data['bibtex'], '/') + 1); + if (!is_dir(ROOT_PATH . 'public' . DS . 'bibTex' . DS . date('Ymd'))) { + mkdir(ROOT_PATH . 'public' . DS . 'bibTex' . DS . date('Ymd')); } - $co = @copy("http://api.tmrjournals.com/public/bibTex/".$data['bibtex'],ROOT_PATH.'public'.DS.'bibTex'.DS.date('Ymd').DS.$cfile_name); - $insert['bibtex'] = date('Ymd').DS.$cfile_name; + $co = @copy("http://api.tmrjournals.com/public/bibTex/" . $data['bibtex'], ROOT_PATH . 'public' . DS . 'bibTex' . DS . date('Ymd') . DS . $cfile_name); + $insert['bibtex'] = date('Ymd') . DS . $cfile_name; } - $insert['doi'] = '10.53388/'.$data['doi']; + $insert['doi'] = '10.53388/' . $data['doi']; $insert['abstract'] = $data['abstract']; $insert['pub_date'] = $data['pub_date']; $insert['abbr'] = $data['abbr']; - $insert['tradition_tag'] = isset($data['tradition_tag'])?$data['tradition_tag']:''; - $insert['tradition'] = isset($data['tradition'])?$data['tradition']:''; + $insert['tradition_tag'] = isset($data['tradition_tag']) ? $data['tradition_tag'] : ''; + $insert['tradition'] = isset($data['tradition']) ? $data['tradition'] : ''; $insert['keywords'] = $data['keywords']; $insert['npp'] = $data['npp']; $sort = 0; - if($journal_info['journal_id']==2||$journal_info['journal_id']==17||$journal_info['journal_id']==18){ - $sort = intval(substr($data['npp'],-2)); - }else{ + if ($journal_info['journal_id'] == 2 || $journal_info['journal_id'] == 17 || $journal_info['journal_id'] == 18) { + $sort = intval(substr($data['npp'], -2)); + } else { $sort = $data['npp']; } $insert['sort'] = $sort; - $insert['file_pdf'] = date('Ymd').DS.$file_name; + $insert['file_pdf'] = date('Ymd') . DS . $file_name; $insert['mhoo'] = $data['mhoo']; $insert['is_public'] = 1; $insert['ctime'] = time(); @@ -472,11 +487,10 @@ class Article extends Controller { //处理斜体 $ltai_res = true; - if(isset($data['ltai'])&&$data['ltai']!=''){ - $ltai = explode(',',$data['ltai']); + if (isset($data['ltai']) && $data['ltai'] != '') { + $ltai = explode(',', $data['ltai']); $ltai_input = []; - foreach($ltai as $v) - { + foreach ($ltai as $v) { $cache_input['article_id'] = $aid; $cache_input['content'] = $v; $ltai_input[] = $cache_input; @@ -485,52 +499,54 @@ class Article extends Controller { } //处理作者 - try{ - $authors = object_to_array(json_decode($data['authors'])); - $organs = object_to_array(json_decode($data['organs'])); - $organ_res = true; - foreach($organs as $v){ - $ca_insert['article_id'] = $aid; - $ca_insert['organ_name'] = $v['organ_name']; - $organ_res = $this->article_organ_obj->insert($ca_insert); - } - $author_res = true; - $ato_res = true; - $ca_au_id = true; - foreach($authors as $v){ - $insert_author['article_id'] = $aid; - $insert_author['author_name'] = $journal_info['journal_id']==22?$v['last_name'].$v['first_name']:$v['first_name'].' '.$v['last_name']; - $insert_author['first_name'] = $v['first_name']; - $insert_author['last_name'] = $v['last_name']; - $insert_author['author_country'] = $v['author_country']; - $insert_author['is_first'] = $v['is_first']; - $insert_author['is_report'] = $v['is_report']; - $insert_author['orcid'] = $v['orcid']; - $insert_author['email'] = $v['email']; - $ca_au_id = $this->article_author_obj->insertGetId($insert_author); - $cache_organs = $v['organs']; - foreach($cache_organs as $val){ - $c_organ = $this->article_organ_obj->where('article_id',$aid)->where('organ_name',$val['organ_name'])->find(); - if($c_organ==null){ - return jsonError('organ error!'); - } - $insert_orm['article_id'] = $aid; - $insert_orm['article_author_id'] = $ca_au_id; - $insert_orm['article_organ_id'] = $c_organ['article_organ_id']; - $ato_res = $this->author_to_organ_obj->insert($insert_orm); + try { + $authors = object_to_array(json_decode($data['authors'])); + $organs = object_to_array(json_decode($data['organs'])); + $organ_res = true; + foreach ($organs as $v) { + $ca_insert['article_id'] = $aid; + $ca_insert['organ_name'] = $v['organ_name']; + $organ_res = $this->article_organ_obj->insert($ca_insert); } - - }}catch(Exception $e){ - + $author_res = true; + $ato_res = true; + $ca_au_id = true; + foreach ($authors as $v) { + $insert_author['article_id'] = $aid; + $insert_author['author_name'] = $journal_info['journal_id'] == 22 ? $v['last_name'] . $v['first_name'] : $v['first_name'] . ' ' . $v['last_name']; + $insert_author['first_name'] = $v['first_name']; + $insert_author['last_name'] = $v['last_name']; + $insert_author['author_country'] = $v['author_country']; + $insert_author['is_first'] = $v['is_first']; + $insert_author['is_report'] = $v['is_report']; + $insert_author['orcid'] = $v['orcid']; + $insert_author['email'] = $v['email']; + $ca_au_id = $this->article_author_obj->insertGetId($insert_author); + $cache_organs = $v['organs']; + foreach ($cache_organs as $val) { + $c_organ = $this->article_organ_obj->where('article_id', $aid)->where('organ_name', $val['organ_name'])->find(); + if ($c_organ == null) { + return jsonError('organ error!'); + } + $insert_orm['article_id'] = $aid; + $insert_orm['article_author_id'] = $ca_au_id; + $insert_orm['article_organ_id'] = $c_organ['article_organ_id']; + $ato_res = $this->author_to_organ_obj->insert($insert_orm); + } + + } + } catch (Exception $e) { + Db::rollback(); return jsonError($e->getMessage()); } - if($aid&&$organ_res&&$ltai_res&&$author_res&&$ato_res&&$ca_au_id){ + if ($aid && $organ_res && $ltai_res && $author_res && $ato_res && $ca_au_id) { Db::commit(); - $this->pushDoiToCrossref($data['doi'],$aid); + $this->pushDoiToCrossref($data['doi'], $aid); $this->pushEmailToAuthor($aid); - return jsonSuccess(['article_id'=>$aid]); + $this->addArticleMain($aid,$data['p_article_id']); + return jsonSuccess(['article_id' => $aid]); } else { Db::rollback(); return jsonError('system error'); @@ -538,7 +554,43 @@ class Article extends Controller { } - private function pushDoiToCrossref($doi,$article_id){ + + public function addArticleMainForSubmission(){ + $data = $this->request->post(); + $rule = new Validate([ + "article_id"=>"require", + "p_article_id"=>"require" + ]); + if(!$rule->check($data)){ + return jsonError($rule->getError()); + } + $check = $this->article_main_obj->where('article_id',$data['article_id'])->where('state',0)->find(); + if($check){ + return jsonError("Repeated submission"); + } + $this->addArticleMain($data['article_id'],$data['p_article_id']); + + } + + private function addArticleMain($now_id,$p_id){ + $url = "http://api.tmrjournals.com/public/index.php/api/Production/getProductionMains"; + $pra['p_article_id'] = $p_id; + $res = object_to_array(json_decode(myPost($url,$pra))); + $mains = $res['data']['mains']; + if(count($mains)==0){ + return ; + } + foreach ($mains as $k => $v){ + $insert['article_id'] = $now_id; + $insert['width'] = isset($v['width'])?$v['width']:0; + $insert['content'] = $v['content']; + $insert['note'] = isset($v['note'])?$v['note']:''; + $this->article_main_obj->insert($insert); + } + } + + private function pushDoiToCrossref($doi, $article_id) + { $url = 'https://doi.crossref.org/servlet/deposit'; $file = ROOT_PATH . 'public' . DS . 'xml' . DS . $article_id . '.xml'; $d['doi_num'] = $doi; @@ -558,24 +610,25 @@ class Article extends Controller { // $this->pushEmailToAuthor(2551); // } - private function pushEmailToAuthor($article_id){ - $article_info = $this->article_obj->where('article_id',$article_id)->find(); - $journal_info = $this->journal_obj->where('journal_id',$article_info['journal_id'])->find(); - $stage_info = $this->journal_stage_obj->where('journal_stage_id',$article_info['journal_stage_id'])->find(); - $authors = $this->article_author_obj->where('article_id',$article_id)->where('state',0)->select(); + private function pushEmailToAuthor($article_id) + { + $article_info = $this->article_obj->where('article_id', $article_id)->find(); + $journal_info = $this->journal_obj->where('journal_id', $article_info['journal_id'])->find(); + $stage_info = $this->journal_stage_obj->where('journal_stage_id', $article_info['journal_stage_id'])->find(); + $authors = $this->article_author_obj->where('article_id', $article_id)->where('state', 0)->select(); - foreach($authors as $v){ - if($v['email']==''){ + foreach ($authors as $v) { + if ($v['email'] == '') { continue; } - $tt = "Dear ".$v['author_name'].",

"; - $tt .= "We are delighted to inform you that your article has been published online in ".$journal_info['title'].". Congratulations on this significant accomplishment! Your article can be found in Vol. ".$stage_info['stage_vol']." Issue ".$stage_info['stage_no']." article link.

"; - $tt .= "We appreciate your decision to choose ".$journal_info['title']." for publishing your research, and we hope that it has been a fulfilling experience for you. We believe that your work will be of great value to the scientific community and will contribute to the advancement of knowledge in your field.

"; + $tt = "Dear " . $v['author_name'] . ",

"; + $tt .= "We are delighted to inform you that your article has been published online in " . $journal_info['title'] . ". Congratulations on this significant accomplishment! Your article can be found in Vol. " . $stage_info['stage_vol'] . " Issue " . $stage_info['stage_no'] . " article link.

"; + $tt .= "We appreciate your decision to choose " . $journal_info['title'] . " for publishing your research, and we hope that it has been a fulfilling experience for you. We believe that your work will be of great value to the scientific community and will contribute to the advancement of knowledge in your field.

"; $tt .= "To help your research reach a broader audience, we recommend utilizing the following channels: ResearchGate, Academia.edu, Twitter, LinkedIn, and Facebook. By sharing your work on these platforms, you can ensure that it receives the attention it deserves.

"; $tt .= "https://www.researchgate.net
https://www.academia.edu
https://twitter.com
https://www.linkedin.com
https://www.facebook.com

"; $tt .= "Once again, congratulations on your publication, and we look forward to receiving more manuscripts from you in the future."; $maidata['email'] = $v['email']; - $maidata['title'] = $journal_info['title']."–".$article_info['title']; + $maidata['title'] = $journal_info['title'] . "–" . $article_info['title']; $maidata['content'] = $tt; $maidata['tmail'] = $journal_info['email']; $maidata['tpassword'] = $journal_info['epassword']; @@ -588,18 +641,19 @@ class Article extends Controller { /** * 获取online文章列表 */ - public function getOnlineArticleForSubmit(){ + public function getOnlineArticleForSubmit() + { $data = $this->request->post(); $rule = new Validate([ - 'issn'=>'require' + 'issn' => 'require' ]); - if(!$rule->check($data)){ + if (!$rule->check($data)) { return jsonError($rule->getError()); } - $journal_info = $this->journal_obj->where('issn',$data['issn'])->find(); - $stages = $this->journal_stage_obj->where('is_publish',0)->where('journal_id',$journal_info['journal_id'])->where('state',0)->select(); - foreach($stages as $k => $v){ - $cache = $this->article_obj->where('journal_stage_id',$v['journal_stage_id'])->where('state',0)->orderRaw('npp+0')->select(); + $journal_info = $this->journal_obj->where('issn', $data['issn'])->find(); + $stages = $this->journal_stage_obj->where('is_publish', 0)->where('journal_id', $journal_info['journal_id'])->where('state', 0)->select(); + foreach ($stages as $k => $v) { + $cache = $this->article_obj->where('journal_stage_id', $v['journal_stage_id'])->where('state', 0)->orderRaw('npp+0')->select(); $stages[$k]['articles'] = $cache; } $re['stages'] = $stages; @@ -609,18 +663,19 @@ class Article extends Controller { /** * 获取public文章 */ - public function getArticleForSubmit(){ + public function getArticleForSubmit() + { $data = $this->request->post(); $rule = new Validate([ - 'issn'=>'require' + 'issn' => 'require' ]); - if(!$rule->check($data)){ + if (!$rule->check($data)) { return jsonError($rule->getError()); } - $journal_info = $this->journal_obj->where('issn',$data['issn'])->find(); - $stages = $this->journal_stage_obj->where('journal_id',$journal_info['journal_id'])->where('state',0)->select(); - foreach($stages as $k => $v){ - $cache = $this->article_obj->where('journal_stage_id',$v['journal_stage_id'])->where('state',0)->orderRaw('npp+0')->select(); + $journal_info = $this->journal_obj->where('issn', $data['issn'])->find(); + $stages = $this->journal_stage_obj->where('journal_id', $journal_info['journal_id'])->where('state', 0)->select(); + foreach ($stages as $k => $v) { + $cache = $this->article_obj->where('journal_stage_id', $v['journal_stage_id'])->where('state', 0)->orderRaw('npp+0')->select(); $stages[$k]['articles'] = $cache; } $re['stages'] = $stages; @@ -630,16 +685,17 @@ class Article extends Controller { /** * 获取所有分期 */ - public function getAllStagesForSubmit(){ + public function getAllStagesForSubmit() + { $data = $this->request->post(); $rule = new Validate([ - 'issn'=>'require' + 'issn' => 'require' ]); - if(!$rule->check($data)){ + if (!$rule->check($data)) { return jsonError($rule->getError()); } - $journal_info = $this->journal_obj->where('issn',$data['issn'])->find(); - $stages = $this->journal_stage_obj->where('journal_id',$journal_info['journal_id'])->where('state',0)->select(); + $journal_info = $this->journal_obj->where('issn', $data['issn'])->find(); + $stages = $this->journal_stage_obj->where('journal_id', $journal_info['journal_id'])->where('state', 0)->select(); $re['stages'] = $stages; return jsonSuccess($re); } @@ -647,32 +703,34 @@ class Article extends Controller { /** * 编辑文章信息 */ - public function changeArticleForSubmit(){ + public function changeArticleForSubmit() + { $data = $this->request->post(); $rule = new Validate([ - 'article_id'=>'require', - 'sort'=>'require' + 'article_id' => 'require', + 'sort' => 'require' ]); - if(!$rule->check($data)){ + if (!$rule->check($data)) { return jsonError($rule->getError()); } - $this->article_obj->where('article_id',$data['article_id'])->update(['sort'=>$data['sort']]); + $this->article_obj->where('article_id', $data['article_id'])->update(['sort' => $data['sort']]); return jsonSuccess([]); } /** * 更改文章客座 */ - public function changeArticleSpecialForSubmit(){ + public function changeArticleSpecialForSubmit() + { $data = $this->request->post(); $rule = new Validate([ - 'article_id'=>'require', - 'journal_special_id'=>'require' + 'article_id' => 'require', + 'journal_special_id' => 'require' ]); - if(!$rule->check($data)){ + if (!$rule->check($data)) { return jsonError($rule->getError()); } - $this->article_obj->where('article_id',$data['article_id'])->update(['journal_special_id'=>$data['journal_special_id']]); + $this->article_obj->where('article_id', $data['article_id'])->update(['journal_special_id' => $data['journal_special_id']]); return jsonSuccess([]); } @@ -713,17 +771,11 @@ class Article extends Controller { // } - - /** * @title 获取文章基本信息 * @description 获取文章基本信息 - * @author wangjinleichang - * @url /master/Article/getArticleBase - * @method POST - * * @param name:article_id type:int require:1 desc:文章id - * + * * @return journal:期刊信息# * @return articleInfo:文章详情@ * @articleInfo icon:图片 @@ -736,10 +788,15 @@ class Article extends Controller { * @articleInfo file_html:html文件 * @articleInfo sort:权重 * @articleInfo pub_date:发表日期 - * + * * @return files:文件列表# + * @author wangjinleichang + * @url /master/Article/getArticleBase + * @method POST + * */ - public function getArticleBase() { + public function getArticleBase() + { $data = $this->request->post(); $article_info = $this->article_obj->where('article_id', $data['article_id'])->find(); @@ -761,7 +818,8 @@ class Article extends Controller { // return json(['code'=>0,'msg'=>'success','data'=>$article_info]); } - public function getHtmlFiles() { + public function getHtmlFiles() + { $data = $this->request->post(); $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(); @@ -783,10 +841,6 @@ class Article extends Controller { /** * @title 编辑文章基本信息 * @description 编辑文章基本信息 - * @author wangjinleichang - * @url /master/Article/editArticleBase - * @method POST - * * @param name:article_id type:int require:1 desc:文章id * @param name:title type:string require:1 desc:标题 * @param name:subtitle type:string require:0 desc:副标题 @@ -811,17 +865,22 @@ class Article extends Controller { * @param name:file_html type:string require:0 desc:html文件 * @param name:fund type:string require:1 desc:fund * @param name:pub_date type:string require:1 desc:发表日期 - * + * + * @author wangjinleichang + * @url /master/Article/editArticleBase + * @method POST + * */ - public function editArticleBase() { + public function editArticleBase() + { $data = $this->request->post(); if (isset($data['ltai'])) { $this->editArticleLtai($data['ltai'], $data['article_id']); } $updata['icon'] = $data['icon']; $updata['title'] = trim($data['title']); - $updata['subtitle'] = isset($data['subtitle'])?trim($data['subtitle']):''; - $updata['rotation'] = isset($data['rotation'])?$data['rotation']:''; + $updata['subtitle'] = isset($data['subtitle']) ? trim($data['subtitle']) : ''; + $updata['rotation'] = isset($data['rotation']) ? $data['rotation'] : ''; $updata['journal_stage_id'] = $data['journal_stage_id']; $updata['journal_special_id'] = $data['journal_special_id']; $updata['tradition_tag'] = $data['tradition_tag']; @@ -851,7 +910,8 @@ class Article extends Controller { // } } - private function editArticleLtai($ltai, $article_id) { + private function editArticleLtai($ltai, $article_id) + { $list = explode(',', $ltai); $has = $this->article_ltai_obj->where('article_id', $article_id)->where('state', 0)->select(); foreach ($has as $val) { @@ -877,24 +937,25 @@ class Article extends Controller { /** * 获取关键词文章 */ - public function getKeywordArticleOrderJournalForSubmit(){ + public function getKeywordArticleOrderJournalForSubmit() + { $data = $this->request->post(); $rule = new Validate([ - 'keyword'=>'require' + 'keyword' => 'require' ]); - if(!$rule->check($data)){ + if (!$rule->check($data)) { return jsonError($rule->getError()); } $articles = $this->article_obj ->field('j_article.*,j_journal.title journal_title') - ->join('j_journal','j_journal.journal_id = j_article.journal_id','left') - ->where('j_article.title|j_article.abstract|j_article.keywords','like',"%".$data['keyword']."%") - ->where('j_article.state',0)->order('journal_id') + ->join('j_journal', 'j_journal.journal_id = j_article.journal_id', 'left') + ->where('j_article.title|j_article.abstract|j_article.keywords', 'like', "%" . $data['keyword'] . "%") + ->where('j_article.state', 0)->order('journal_id') ->select(); $journals = []; - foreach($articles as $v){ - if(!isset($journals[$v['journal_title']])){ - $cache_journal = $this->journal_obj->where('journal_id',$v['journal_id'])->find(); + foreach ($articles as $v) { + if (!isset($journals[$v['journal_title']])) { + $cache_journal = $this->journal_obj->where('journal_id', $v['journal_id'])->find(); $journals[$cache_journal['title']] = $cache_journal; $journals[$cache_journal['title']]['articles'] = []; } @@ -908,16 +969,17 @@ class Article extends Controller { /** * @title 编辑文章文件信息 * @description 编辑文章文件信息 - * @author wangjinleichang - * @url /master/Article/editArticleFile - * @method POST - * * @param name:article_id type:int require:1 desc:文章id * @param name:filetype type:string require:1 desc:文件类型(PDF/HTML/SUB/SUB2/endNote/bibTex/CDF) * @param name:fileURL type:string require:1 desc:文件地址 - * + * + * @author wangjinleichang + * @url /master/Article/editArticleFile + * @method POST + * */ - public function editArticleFile() { + public function editArticleFile() + { $data = $this->request->post(); if ($data['filetype'] == 'PDF') { $updata['file_pdf'] = $data['fileURL']; @@ -931,7 +993,7 @@ class Article extends Controller { $updata['endnote'] = $data['fileURL']; } elseif ($data['filetype'] == 'bibTex') { $updata['bibtex'] = $data['fileURL']; - }elseif($data['filetype'] == 'CDF'){ + } elseif ($data['filetype'] == 'CDF') { $updata['file_cdf'] = $data['fileURL']; } $this->article_obj->where('article_id', $data['article_id'])->update($updata); @@ -941,31 +1003,32 @@ class Article extends Controller { /** * @title 获取文章列表 * @description 获取文章列表 - * @author wangjinleichang - * @url /master/Article/getArticleList - * @method POST - * * @param name:journal_id type:int default:0 require:1 desc:主键 * @param name:journal_stage_id type:int default:0 require:1 desc:主键 * @param name:editor_id type:int require:1 desc:编辑id * @param name:seach type:string require:0 desc:关键词 * @param name:pageIndex type:int require:1 desc:当前页码数 * @param name:pageSize type:int require:1 desc:单页数据条数 - * + * * @return count:总数据数 * @return articleList:array# + * @author wangjinleichang + * @url /master/Article/getArticleList + * @method POST + * */ - public function getArticleList() { + public function getArticleList() + { $data = $this->request->post(); $where['j_article.state'] = 0; if (intval($data['journal_id']) !== 0) { $where['j_article.journal_id'] = $data['journal_id']; } else { $journals = []; - if(isset($data['editor_id'])&&$data['editor_id']!=''){ + if (isset($data['editor_id']) && $data['editor_id'] != '') { $journals = $this->journal_obj->where('editor_id', $data['editor_id'])->column('journal_id'); - }else{ - $journals = $this->journal_obj->where('state',0)->column('journal_id'); + } else { + $journals = $this->journal_obj->where('state', 0)->column('journal_id'); } $where['j_article.journal_id'] = ['in', $journals]; } @@ -985,12 +1048,12 @@ class Article extends Controller { } $article_list[$k]['title'] = $cache_title; //获取药剂信息 - $atm = $this->article_to_medicament_obj->where('article_id',$v['article_id'])->where('atm_state',0)->find(); - if($atm){ - $med_info = $this->medicament_obj->where('med_id',$atm['med_id'])->where('med_state',0)->find(); + $atm = $this->article_to_medicament_obj->where('article_id', $v['article_id'])->where('atm_state', 0)->find(); + if ($atm) { + $med_info = $this->medicament_obj->where('med_id', $atm['med_id'])->where('med_state', 0)->find(); $article_list[$k]['med_title'] = $med_info['med_title']; $article_list[$k]['med_ename'] = $med_info['med_ename']; - }else{ + } else { $article_list[$k]['med_title'] = ''; $article_list[$k]['med_ename'] = ''; } @@ -999,10 +1062,11 @@ class Article extends Controller { return json(['code' => 0, 'msg' => 'success', 'data' => ['count' => $count, 'articleList' => $article_list]]); } - public function getArticleListForSubmit() { + public function getArticleListForSubmit() + { $data = $this->request->post(); $where['j_article.state'] = 0; - $journal_info = $this->journal_obj->where('issn',$data['issn'])->find(); + $journal_info = $this->journal_obj->where('issn', $data['issn'])->find(); $where['j_article.journal_id'] = $journal_info['journal_id']; if (intval($data['journal_stage_id']) !== 0) { $where['j_article.journal_stage_id'] = $data['journal_stage_id']; @@ -1010,15 +1074,15 @@ class Article extends Controller { if (isset($data['seach']) && $data['seach'] != '') { $where['j_article.title'] = ['like', '%' . $data['seach'] . '%']; } - $where['j_journal_stage.is_publish']=1; + $where['j_journal_stage.is_publish'] = 1; $limit_start = ($data['pageIndex'] - 1) * $data['pageSize']; $article_list = $this->article_obj->field('j_article.*,j_journal_stage.*,j_journal.title journal_title') - ->join(array(['j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT'], ['j_journal', 'j_journal.journal_id=j_article.journal_id', 'LEFT'])) - ->where($where) - ->order('j_journal_stage.journal_stage_id desc') - ->orderRaw('j_article.npp+0') - ->limit($limit_start, $data['pageSize']) - ->select(); + ->join(array(['j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT'], ['j_journal', 'j_journal.journal_id=j_article.journal_id', 'LEFT'])) + ->where($where) + ->order('j_journal_stage.journal_stage_id desc') + ->orderRaw('j_article.npp+0') + ->limit($limit_start, $data['pageSize']) + ->select(); foreach ($article_list as $k => $v) { $caches = $this->article_ltai_obj->where('article_id', $v['article_id'])->where('state', 0)->column('content'); $cache_title = $v['title']; @@ -1027,35 +1091,37 @@ class Article extends Controller { } $article_list[$k]['title'] = $cache_title; //获取药剂信息 - $atm = $this->article_to_medicament_obj->where('article_id',$v['article_id'])->where('atm_state',0)->find(); - if($atm){ - $med_info = $this->medicament_obj->where('med_id',$atm['med_id'])->where('med_state',0)->find(); + $atm = $this->article_to_medicament_obj->where('article_id', $v['article_id'])->where('atm_state', 0)->find(); + if ($atm) { + $med_info = $this->medicament_obj->where('med_id', $atm['med_id'])->where('med_state', 0)->find(); $article_list[$k]['med_title'] = $med_info['med_title']; $article_list[$k]['med_ename'] = $med_info['med_ename']; - }else{ + } else { $article_list[$k]['med_title'] = ''; $article_list[$k]['med_ename'] = ''; } + $article_list[$k]['mains'] = $this->article_main_obj->where('article_id',$v['article_id'])->where('state',0)->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_journal.journal_id=j_article.journal_id', 'LEFT'])) - ->where($where)->count(); + ->join(array(['j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT'], ['j_journal', 'j_journal.journal_id=j_article.journal_id', 'LEFT'])) + ->where($where)->count(); return json(['code' => 0, 'msg' => 'success', 'data' => ['count' => $count, 'articleList' => $article_list]]); } /** * @title 获取文章对应期刊话题 * @description 获取文章对应期刊话题 + * @param name:article_id type:int require:1 desc:期刊id + * + * @return topics:array# + * @return nowtopic:array# * @author wangjinlei * @url /master/Article/getTopicByArticle * @method POST - * - * @param name:article_id type:int require:1 desc:期刊id - * - * @return topics:array# - * @return nowtopic:array# + * */ - public function getTopicByArticle() { + public function getTopicByArticle() + { $data = $this->request->post(); $article_info = $this->article_obj->where('article_id', $data['article_id'])->find(); $topic_res = $this->journal_topic_obj->where('journal_id', $article_info['journal_id'])->where('state', 0)->select(); @@ -1073,7 +1139,8 @@ class Article extends Controller { return json(['code' => 0, 'msg' => 'success', 'data' => ['nowtopic' => $now_list, 'topics' => $frag]]); } - private function getTname($now, $arr) { + private function getTname($now, $arr) + { if ($now['parent_id'] == 0) { return $now['title']; } else { @@ -1090,15 +1157,16 @@ class Article extends Controller { /** * @title 增加文章话题 * @description 增加文章话题 + * @param name:article_id type:int require:1 desc:期刊id + * @param name:topic_id type:int require:1 desc:话题id + * * @author wangjinlei * @url /master/Article/addTopicByArticle * @method POST - * - * @param name:article_id type:int require:1 desc:期刊id - * @param name:topic_id type:int require:1 desc:话题id - * + * */ - public function addTopicByArticle() { + public function addTopicByArticle() + { $data = $this->request->post(); $insert['article_id'] = $data['article_id']; $insert['topic_id'] = $data['topic_id']; @@ -1111,28 +1179,29 @@ class Article extends Controller { return json(['code' => 1, 'msg' => 'system error']); } } - - - private function msg_subscribe_base_topic($topic_id,$article_id){ - $article_info = $this->article_obj->where('article_id',$article_id)->find(); - $topic_info = $this->journal_topic_obj->where('journal_topic_id',$topic_id)->find(); - $base_topic_info = $this->base_topic_obj->where('title',$topic_info['title'])->find(); - $journal_info = $this->journal_obj->where('journal_id',$article_info['journal_id'])->find(); - if($base_topic_info==null){ - return ; + + + private function msg_subscribe_base_topic($topic_id, $article_id) + { + $article_info = $this->article_obj->where('article_id', $article_id)->find(); + $topic_info = $this->journal_topic_obj->where('journal_topic_id', $topic_id)->find(); + $base_topic_info = $this->base_topic_obj->where('title', $topic_info['title'])->find(); + $journal_info = $this->journal_obj->where('journal_id', $article_info['journal_id'])->find(); + if ($base_topic_info == null) { + return; } - $list = $this->subscribe_base_topic_obj->where('base_topic_id',$base_topic_info['base_topic_id'])->where('state',0)->select(); - + $list = $this->subscribe_base_topic_obj->where('base_topic_id', $base_topic_info['base_topic_id'])->where('state', 0)->select(); + $title = 'These new articles included in TMRDE database are available online.'; $tt = 'Dear Researcher,
'; $tt .= 'It is our great honor to present you the articles included in TMRDE.The following new articles have just been included.
'; - $tt .= ''.$article_info['title'].'
'; - foreach ($list as $v){ - $tt1=''; + $tt .= '' . $article_info['title'] . '
'; + foreach ($list as $v) { + $tt1 = ''; $tt1 .= $tt; $tt1 .= 'Unsubscribe

'; - $tt1 .= 'Email:'.$journal_info['email'].'
'; - $tt1 .= 'Website:'.$journal_info['website'].'

'; + $tt1 .= 'Email:' . $journal_info['email'] . '
'; + $tt1 .= 'Website:' . $journal_info['website'] . '

'; $tt1 .= 'TMR Publishing Group Ltd.
'; $tt1 .= '11 Cockle Bay Rd, Cockle Bay, Auckland, New Zealand
'; $tt1 .= 'Tel: +64 02108293806.'; @@ -1143,10 +1212,11 @@ class Article extends Controller { $maidata['tpassword'] = 'pRWU999999'; Queue::push('app\api\job\mail@fire', $maidata, "mail"); } - + } - private function msg_subscript_topic($topic_id, $article_id) { + private function msg_subscript_topic($topic_id, $article_id) + { $article_info = $this->article_obj->where('article_id', $article_id)->find(); $stage_info = $this->journal_stage_obj->where('journal_stage_id', $article_info['journal_stage_id'])->find(); $topic_info = $this->journal_topic_obj->where('journal_topic_id', $topic_id)->find(); @@ -1198,7 +1268,8 @@ class Article extends Controller { } } - private function getAuthor($article) { + private function getAuthor($article) + { $where['article_id'] = $article['article_id']; $where['state'] = 0; $list = $this->article_author_obj->where($where)->select(); @@ -1212,14 +1283,15 @@ class Article extends Controller { /** * @title 删除文章话题 * @description 删除文章话题 + * @param name:article_to_topic_id type:int require:1 desc:主键id + * * @author wangjinlei * @url /master/Article/delTopic * @method POST - * - * @param name:article_to_topic_id type:int require:1 desc:主键id - * + * */ - public function delTopic() { + public function delTopic() + { $data = $this->request->post(); $res = $this->article_to_topic_obj->where('article_to_topic_id', $data['article_to_topic_id'])->update(['state' => 1]); if ($res) { @@ -1249,15 +1321,16 @@ class Article extends Controller { /** * @title 图片上传 * @description 图片上传 + * @param name:name type:string require:1 default:articleicon desc:文件域名称 + * + * @return upurl:图片地址 * @author wangjinlei * @url /master/Article/up_article_file * @method POST - * - * @param name:name type:string require:1 default:articleicon desc:文件域名称 - * - * @return upurl:图片地址 + * */ - public function up_article_file() { + public function up_article_file() + { $file = request()->file('articleicon'); if ($file) { $info = $file->move(ROOT_PATH . 'public' . DS . 'articleicon'); @@ -1268,19 +1341,20 @@ class Article extends Controller { } } } - + /** * @title 轮播图上传 * @description 轮播图上传 + * @param name:name type:string require:1 default:rotation desc:文件域名称 + * + * @return upurl:图片地址 * @author wangjinlei * @url /master/Article/up_rotation_file * @method POST - * - * @param name:name type:string require:1 default:rotation desc:文件域名称 - * - * @return upurl:图片地址 + * */ - public function up_rotation_file(){ + public function up_rotation_file() + { $file = request()->file('rotation'); if ($file) { $info = $file->move(ROOT_PATH . 'public' . DS . 'rotation'); @@ -1295,15 +1369,16 @@ class Article extends Controller { /** * @title cite图片上传 * @description cite图片上传 + * @param name:name type:string require:1 default:articleCite desc:文件域名称 + * + * @return upurl:图片地址 * @author wangjinlei * @url /master/Article/up_cite_file * @method POST - * - * @param name:name type:string require:1 default:articleCite desc:文件域名称 - * - * @return upurl:图片地址 + * */ - public function up_cite_file() { + public function up_cite_file() + { $file = request()->file('articleCite'); if ($file) { $info = $file->move(ROOT_PATH . 'public' . DS . 'articleCite'); @@ -1314,19 +1389,20 @@ class Article extends Controller { } } } - + /** * @title CDF文件上传 * @description CDF文件上传 + * @param name:name type:string require:1 default:articleCDF desc:文件域名称 + * + * @return upurl:图片地址 * @author wangjinlei * @url /master/Article/up_cdf_file * @method POST - * - * @param name:name type:string require:1 default:articleCDF desc:文件域名称 - * - * @return upurl:图片地址 + * */ - public function up_cdf_file(){ + public function up_cdf_file() + { $file = request()->file('articleCDF'); if ($file) { $info = $file->move(ROOT_PATH . 'public' . DS . 'articleCDF'); @@ -1337,19 +1413,20 @@ class Article extends Controller { } } } - + /** * @title imgCome文件上传 * @description imgCome文件上传 + * @param name:name type:string require:1 default:imgCome desc:文件域名称 + * + * @return upurl:图片地址 * @author wangjinlei * @url /master/Article/up_imgCome_file * @method POST - * - * @param name:name type:string require:1 default:imgCome desc:文件域名称 - * - * @return upurl:图片地址 + * */ - public function up_imgCome_file(){ + public function up_imgCome_file() + { $file = request()->file('imgCome'); if ($file) { $info = $file->move(ROOT_PATH . 'public' . DS . 'imgCome'); @@ -1362,13 +1439,14 @@ class Article extends Controller { } - public function getArticleReportAuthors(){ + public function getArticleReportAuthors() + { $num = $this->request->post('num'); $size = 500; - $f = ($num-1)*$size; - $list = $this->article_obj->field("j_article.*,j_journal.title journal_title")->join("j_journal",'j_journal.journal_id=j_article.journal_id','left')->where('j_article.state',0)->limit($f,$size)->select(); - foreach($list as $k => $v){ - $author = $this->article_author_obj->where('article_id',$v['article_id'])->where('is_report',1)->where('state',0)->select(); + $f = ($num - 1) * $size; + $list = $this->article_obj->field("j_article.*,j_journal.title journal_title")->join("j_journal", 'j_journal.journal_id=j_article.journal_id', 'left')->where('j_article.state', 0)->limit($f, $size)->select(); + foreach ($list as $k => $v) { + $author = $this->article_author_obj->where('article_id', $v['article_id'])->where('is_report', 1)->where('state', 0)->select(); $list[$k]['author'] = $author; } $re['list'] = $list; @@ -1378,16 +1456,17 @@ class Article extends Controller { /** * @title 文章文件上传 * @description 文章文件上传 + * @param name:name type:string require:1 desc:文件域名称(articlePDF/articleHTML/articleSUB/articleSUB2/bibTex/endNote/articleCDF) + * @param name:type type:string require:1 desc:pathinfo(articlePDF/articleHTML/articleSUB/articleSUB2/bibTex/endNote/articleCDF) + * + * @return upurl:图片地址 * @author wangjinlei * @url /master/Article/article_file * @method GET - * - * @param name:name type:string require:1 desc:文件域名称(articlePDF/articleHTML/articleSUB/articleSUB2/bibTex/endNote/articleCDF) - * @param name:type type:string require:1 desc:pathinfo(articlePDF/articleHTML/articleSUB/articleSUB2/bibTex/endNote/articleCDF) - * - * @return upurl:图片地址 + * */ - public function article_file($type) { + public function article_file($type) + { $file = request()->file($type); if ($file) { $info = $file->move(ROOT_PATH . 'public' . DS . $type); @@ -1402,13 +1481,14 @@ class Article extends Controller { /** * @title 获取城市列表 * @description 获取城市列表 + * @return countrys:array# * @author wangjinlei * @url /master/Article/getCountrys * @method POST - * - * @return countrys:array# + * */ - public function getCountrys() { + public function getCountrys() + { $res = $this->country_obj->order('en_name')->select(); return json(['code' => 0, 'msg' => 'success', 'data' => ['countrys' => $res]]); } @@ -1416,15 +1496,16 @@ class Article extends Controller { /** * @title 获取客座话题 * @description 获取客座话题 + * @param name:journal_id type:int require:1 desc:期刊id + * + * @return specials:客座期刊array# * @author wangjinlei * @url /master/Article/getJournalSpecials * @method POST - * - * @param name:journal_id type:int require:1 desc:期刊id - * - * @return specials:客座期刊array# + * */ - public function getJournalSpecials() { + public function getJournalSpecials() + { $data = $this->request->post(); $list = $this->journal_special_obj->where('journal_id', $data['journal_id'])->where('state', 2)->select(); @@ -1435,10 +1516,6 @@ class Article extends Controller { /** * @title 添加文章引用申请 * @description 添加文章引用申请 - * @author wangjinlei - * @url /master/Article/addArticleCite - * @method POST - * * @param name:article_id type:int require:1 desc:文章id * @param name:journal_id type:int require:1 desc:期刊id * @param name:img type:string require:1 desc:地址 @@ -1446,10 +1523,15 @@ class Article extends Controller { * @param name:article_name type:string require:1 desc:文章名 * @param name:factor type:string require:1 desc:影响因子 * @param name:adate type:string require:1 desc:引用时间 - * + * * @return specials:客座期刊array# + * @author wangjinlei + * @url /master/Article/addArticleCite + * @method POST + * */ - public function addArticleCite() { + public function addArticleCite() + { $data = $this->request->post(); $insert['article_id'] = $data['article_id']; $insert['journal_id'] = $data['journal_id']; @@ -1466,23 +1548,24 @@ class Article extends Controller { /** * @title 获取文章引用申请列表(编辑) * @description 获取文章引用申请列表 + * @param name:admin_id type:int require:1 desc:管理员id + * + * @return cites:信息array# * @author wangjinlei * @url /master/Article/getArticleCites * @method POST - * - * @param name:admin_id type:int require:1 desc:管理员id - * - * @return cites:信息array# + * */ - public function getArticleCites() { + public function getArticleCites() + { $data = $this->request->post(); $journals = $this->journal_obj->where('editor_id', $data['admin_id'])->where('state', 0)->column('journal_id'); $list = $this->article_cite_obj - ->field('j_article_cite.*,j_journal.title journal_title') - ->join('j_journal', 'j_journal.journal_id = j_article_cite.journal_id', 'left') - ->where('j_article_cite.journal_id', 'in', $journals) - ->order('j_article_cite.state asc,j_article_cite.article_cite_id asc') - ->select(); + ->field('j_article_cite.*,j_journal.title journal_title') + ->join('j_journal', 'j_journal.journal_id = j_article_cite.journal_id', 'left') + ->where('j_article_cite.journal_id', 'in', $journals) + ->order('j_article_cite.state asc,j_article_cite.article_cite_id asc') + ->select(); $re['cites'] = $list; return jsonSuccess($re); @@ -1491,16 +1574,17 @@ class Article extends Controller { /** * @title 获取文章引用列表(编辑) * @description 获取文章引用列表 + * @param name:article_id type:int require:1 desc:文章id + * + * @return cites:信息array# + * @return article:文章信息# * @author wangjinlei * @url /master/Article/getCitesByArticle * @method POST - * - * @param name:article_id type:int require:1 desc:文章id - * - * @return cites:信息array# - * @return article:文章信息# + * */ - public function getCitesByArticle() { + public function getCitesByArticle() + { $data = $this->request->post(); $article_info = $this->article_obj->where('article_id', $data['article_id'])->find(); $list = $this->article_cite_obj->where('article_id', $data['article_id'])->order('state asc,article_cite_id asc')->select(); @@ -1513,18 +1597,19 @@ class Article extends Controller { /** * @title 获取文章引用申请列表(管理员) * @description 获取文章引用申请列表(管理员) - * @author wangjinlei - * @url /master/Article/getAllArticleCites - * @method POST - * * @param name:state type:int require:1 desc:状态-1,0,1,2 * @param name:pageIndex type:int require:1 desc:当前页码数 * @param name:pageSize type:int require:1 desc:单页数据条数 - * + * * @return count:总数 * @return cites:信息array# + * @author wangjinlei + * @url /master/Article/getAllArticleCites + * @method POST + * */ - public function getAllArticleCites() { + public function getAllArticleCites() + { $data = $this->request->post(); $where = []; if ($data['state'] >= 0) { @@ -1532,12 +1617,12 @@ class Article extends Controller { } $limit_start = ($data['pageIndex'] - 1) * $data['pageSize']; $list = $this->article_cite_obj - ->field('j_article_cite.*,j_journal.title journal_title') - ->join('j_journal', 'j_journal.journal_id = j_article_cite.journal_id', 'left') - ->where($where) - ->order('j_article_cite.state asc,j_article_cite.article_cite_id asc') - ->limit($limit_start, $data['pageSize']) - ->select(); + ->field('j_article_cite.*,j_journal.title journal_title') + ->join('j_journal', 'j_journal.journal_id = j_article_cite.journal_id', 'left') + ->where($where) + ->order('j_article_cite.state asc,j_article_cite.article_cite_id asc') + ->limit($limit_start, $data['pageSize']) + ->select(); $count = $this->article_cite_obj->where($where)->count(); $re['count'] = $count; @@ -1548,15 +1633,16 @@ class Article extends Controller { /** * @title 获取文章引用详情 * @description 获取文章引用详情 + * @param name:article_cite_id type:int require:1 desc:主键 + * + * @return cite:信息# * @author wangjinlei * @url /master/Article/getCiteDetail * @method POST - * - * @param name:article_cite_id type:int require:1 desc:主键 - * - * @return cite:信息# + * */ - public function getCiteDetail() { + public function getCiteDetail() + { $data = $this->request->post(); $cite_info = $this->article_cite_obj->where('article_cite_id', $data['article_cite_id'])->find(); @@ -1567,14 +1653,15 @@ class Article extends Controller { /** * @title 审核文章引用 * @description 审核文章引用 + * @param name:article_cite_id type:int require:1 desc:主键 + * @param name:state type:int require:1 desc:状态1通过2驳回 * @author wangjinlei * @url /master/Article/changeCiteState * @method POST - * - * @param name:article_cite_id type:int require:1 desc:主键 - * @param name:state type:int require:1 desc:状态1通过2驳回 + * */ - public function changeCiteState() { + public function changeCiteState() + { $data = $this->request->post(); $this->article_cite_obj->where('article_cite_id', $data['article_cite_id'])->update(['state' => $data['state'], 'atime' => time()]); if ($data['state'] == 1) { @@ -1588,13 +1675,14 @@ class Article extends Controller { /** * @title 获取期刊引用 * @description 获取期刊引用 + * @param name:issn type:string require:1 desc:issn号 * @author wangjinlei * @url /master/Article/getJournalCites * @method POST - * - * @param name:issn type:string require:1 desc:issn号 + * */ - public function getJournalCites() { + public function getJournalCites() + { $data = $this->request->post(); $journal_info = $this->journal_obj->where('issn', $data['issn'])->find(); $c_time = strtotime("-1 month", strtotime(date('Y-m') . '-26 00:00:00')); @@ -1610,14 +1698,15 @@ class Article extends Controller { /** * @title 推送crossref * @description 推送crossref + * @param name:doi_num type:string require:1 desc:doi号 + * @param name:article_id type:int require:1 desc:文章id * @author wangjinlei * @url /master/Article/pushCrossref * @method POST - * - * @param name:doi_num type:string require:1 desc:doi号 - * @param name:article_id type:int require:1 desc:文章id + * */ - public function pushCrossref() { + public function pushCrossref() + { $data = $this->request->post(); $has = $this->article_obj->where('doi', '10.53388/' . $data['doi_num'])->find(); @@ -1652,7 +1741,8 @@ class Article extends Controller { return jsonSuccess([]); } - private function myPost($url, $param = array()) { + private function myPost($url, $param = array()) + { // if (!is_array($param)) { // throw new Exception("参数必须为array"); // } @@ -1684,13 +1774,13 @@ class Article extends Controller { // if(!$rule->check($data)){ // return jsonError($rule->getError()); // } - + // $limit_start = ($data['num'] - 1) * 20; // $list = $this->article_obj->where('doi','like',"10.12032%")->where('state',0)->limit($limit_start,20)->select(); // foreach($list as $v){ // $c = explode('/',$v['doi']); - + // $author = $this->article_author_obj->where('article_id', $v['article_id'])->where('state', 0)->find(); // if ($author == null) { // continue; @@ -1718,11 +1808,12 @@ class Article extends Controller { // // echo '10.53388/'.$c[1]; // // echo '
'; // } - + // // dump($list); // } - public function crossRef($data) { + public function crossRef($data) + { $xml = ''; //create xml 头 $xml .= '' . PHP_EOL; @@ -1771,7 +1862,7 @@ class Article extends Controller { $xml .= '' . PHP_EOL; } $xml .= '' . $v['first_name'] . '' . PHP_EOL; - $xml .= '' . ($v['last_name']==''?$v['first_name']:$v['last_name']) . '' . PHP_EOL; + $xml .= '' . ($v['last_name'] == '' ? $v['first_name'] : $v['last_name']) . '' . PHP_EOL; $xml .= '' . PHP_EOL; } $xml .= '' . PHP_EOL; @@ -1788,11 +1879,11 @@ class Article extends Controller { $xml .= '' . PHP_EOL; $xml .= '10.53388/' . trim($data['doi_num']) . '' . PHP_EOL; $xml .= '' . PHP_EOL; - $xml .= ''.PHP_EOL; - $xml .= ''.PHP_EOL; - $xml .= ''.PHP_EOL; - $xml .= ''.PHP_EOL; - $xml .= ''.PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . PHP_EOL; $xml .= '' . PHP_EOL; $xml .= '' . PHP_EOL; $xml .= '' . PHP_EOL; @@ -1802,7 +1893,8 @@ class Article extends Controller { file_put_contents($txt, $xml); } - private function changDOI() { + private function changDOI() + { $list = $this->article_obj->where('journal_id', 14)->where('state', 0)->select(); foreach ($list as $art) { $ca_doi = explode('/', $art['doi']); @@ -1810,14 +1902,15 @@ class Article extends Controller { continue; } $doi = '10.53388/' . $ca_doi[1]; - $this->article_obj->where('article_id',$art['article_id'])->update(['doi'=>$doi]); + $this->article_obj->where('article_id', $art['article_id'])->update(['doi' => $doi]); } } /** * 生成xml文件 */ - private function makeXML() { + private function makeXML() + { $xml = ''; //create xml 头 $xml .= '' . PHP_EOL; @@ -1878,7 +1971,7 @@ class Article extends Controller { $xml .= '' . PHP_EOL; } $xml .= '' . $v['first_name'] . '' . PHP_EOL; - $xml .= '' . ($v['last_name']==''?$v['first_name']:$v['last_name']) . '' . PHP_EOL; + $xml .= '' . ($v['last_name'] == '' ? $v['first_name'] : $v['last_name']) . '' . PHP_EOL; $xml .= '' . PHP_EOL; } $xml .= '' . PHP_EOL; @@ -1905,103 +1998,107 @@ class Article extends Controller { $txt = ROOT_PATH . 'public' . DS . 'xml' . DS . 'all_1.xml'; file_put_contents($txt, $xml); } - + /** * @title 增加相关文章 * @description 增加相关文章 + * @param name:article_id type:int require:1 desc:文章id + * @param name:add_article_id type:int require:1 desc:增加的文章id * @author wangjinlei * @url /master/Article/addRelatedArticle * @method POST - * - * @param name:article_id type:int require:1 desc:文章id - * @param name:add_article_id type:int require:1 desc:增加的文章id + * */ - public function addRelatedArticle(){ + public function addRelatedArticle() + { $data = $this->request->post(); $rule = new Validate([ - 'article_id'=>'require', - 'add_article_id'=>'require' + 'article_id' => 'require', + 'add_article_id' => 'require' ]); - if(!$rule->check($data)){ + if (!$rule->check($data)) { return jsonError($rule->getError()); } - $article_info = $this->article_obj->where('article_id',$data['article_id'])->find(); + $article_info = $this->article_obj->where('article_id', $data['article_id'])->find(); $frag = []; - if($article_info['related']==""){ + if ($article_info['related'] == "") { $frag[] = $data['add_article_id']; - }else{ - if(in_array($data['add_article_id'], object_to_array(json_decode($article_info['related'])))){ + } else { + if (in_array($data['add_article_id'], object_to_array(json_decode($article_info['related'])))) { return jsonError("重复添加!!"); } - $frag = array_merge(object_to_array(json_decode($article_info['related'])),[$data['add_article_id']]); + $frag = array_merge(object_to_array(json_decode($article_info['related'])), [$data['add_article_id']]); } - $this->article_obj->where("article_id",$data['article_id'])->update(['related'=> json_encode($frag)]); + $this->article_obj->where("article_id", $data['article_id'])->update(['related' => json_encode($frag)]); return jsonSuccess([]); } - + /** * @title 删除相关文章 * @description 删除相关文章 + * @param name:article_id type:int require:1 desc:文章id + * @param name:del_article_id type:int require:1 desc:增加的文章id * @author wangjinlei * @url /master/Article/delRelatedArticle * @method POST - * - * @param name:article_id type:int require:1 desc:文章id - * @param name:del_article_id type:int require:1 desc:增加的文章id + * */ - public function delRelatedArticle(){ + public function delRelatedArticle() + { $data = $this->request->post(); - $article_info = $this->article_obj->where("article_id",$data['article_id'])->find(); + $article_info = $this->article_obj->where("article_id", $data['article_id'])->find(); $frag = object_to_array(json_decode($article_info['related'])); - foreach ($frag as $k => $v){ - if($v==$data['del_article_id']){ + foreach ($frag as $k => $v) { + if ($v == $data['del_article_id']) { unset($frag[$k]); } } - $this->article_obj->where("article_id",$data['article_id'])->update(['related'=> json_encode($frag)]); + $this->article_obj->where("article_id", $data['article_id'])->update(['related' => json_encode($frag)]); return jsonSuccess([]); } - + /** * @title 获取相关文章 * @description 获取相关文章 + * @param name:article_id type:int require:1 desc:文章id + * + * @return articles:文章列表# * @author wangjinlei * @url /master/Article/getRelatedArticles * @method POST - * - * @param name:article_id type:int require:1 desc:文章id - * - * @return articles:文章列表# + * */ - public function getRelatedArticles(){ + public function getRelatedArticles() + { $data = $this->request->post(); - $article_info = $this->article_obj->where("article_id",$data['article_id'])->find(); + $article_info = $this->article_obj->where("article_id", $data['article_id'])->find(); $list = $this->article_obj ->field("j_article.*,j_journal.title journal_title") - ->join('j_journal','j_journal.journal_id = j_article.journal_id','left') - ->where("j_article.article_id","in", object_to_array(json_decode($article_info['related']))) + ->join('j_journal', 'j_journal.journal_id = j_article.journal_id', 'left') + ->where("j_article.article_id", "in", object_to_array(json_decode($article_info['related']))) ->select(); $re['articles'] = $list; return jsonSuccess($re); } - + /** * @title 获取期刊全部文章按分期划分 * @description 获取期刊全部文章按分期划分 + * @param name:journal_id type:int require:1 desc:期刊id + * + * @return stages:文章列表# * @author wangjinlei * @url /master/Article/getArticlesByStages * @method POST - * - * @param name:journal_id type:int require:1 desc:期刊id - * - * @return stages:文章列表# + * */ - public function getArticlesByStages(){ + public function getArticlesByStages() + { $data = $this->request->post(); //获取期刊分期 - $stage = $this->journal_stage_obj->where('journal_id',$data['journal_id'])->where("state",0)->order('stage_vol desc,stage_no')->select(); - foreach ($stage as $k => $v){ - $stage[$k]['articles'] = $this->article_obj->where('journal_stage_id',$v['journal_stage_id'])->where('state',0)->select(); + $stage = $this->journal_stage_obj->where('journal_id', $data['journal_id'])->where("state", 0)->order('stage_vol desc,stage_no')->select(); + foreach ($stage as $k => $v) { + $stage[$k]['articles'] = $this->article_obj->where('journal_stage_id', $v['journal_stage_id'])->where('state', 0)->select(); } $re['stages'] = $stage; return jsonSuccess($re); @@ -2010,14 +2107,15 @@ class Article extends Controller { /** * @title 注册doi * @description 注册doi + * @param name:doi type:string require:1 desc:doi号 + * @param name:article_id type:int require:1 desc:文章id * @author wangjinlei * @url /master/Article/agentDOI * @method POST - * - * @param name:doi type:string require:1 desc:doi号 - * @param name:article_id type:int require:1 desc:文章id + * */ - public function agentDOI() { + public function agentDOI() + { $data = $this->request->post(); // $data['doi'] = '10.12032/TMR20210301222'; // $data['article_id'] = 1333; diff --git a/application/master/controller/Submision.php b/application/master/controller/Submision.php index 040ccae..948de04 100644 --- a/application/master/controller/Submision.php +++ b/application/master/controller/Submision.php @@ -35,6 +35,7 @@ class Submision extends Controller { protected $subscribe_base_topic_obj = ''; protected $medicament_obj = ''; protected $article_to_medicament_obj = ''; + protected $article_main_obj = ''; public function __construct(\think\Request $request = null) { parent::__construct($request); @@ -57,6 +58,7 @@ class Submision extends Controller { $this->subscribe_base_topic_obj = Db::name('subscribe_base_topic'); $this->medicament_obj = Db::name('medicament'); $this->article_to_medicament_obj = Db::name('ArticleToMedicament'); + $this->article_main_obj = Db::name("article_main"); } public function getJournalStages(){ @@ -114,6 +116,45 @@ class Submision extends Controller { return jsonSuccess($re); } + public function getTopicsByIssn(){ + $data = $this->request->post(); + $rule = new Validate([ + 'issn'=>"require" + ]); + if(!$rule->check($data)){ + return jsonError($rule->getError()); + } + $journal_info = $this->journal_obj->where('issn', $data['issn'])->find(); + $res = $this->journal_topic_obj + ->where('journal_id', $journal_info['journal_id']) + ->where('state', 0) + ->select(); + //处理数组 + $frag = []; + foreach ($res as $v) { + if ($v['parent_id'] == 0) { + $frag[] = $v; + } + } + foreach ($frag as $kk => $vv) { + $frag[$kk] = $this->getChieldarr($vv, $res); + } + $re['topics'] = $frag; + return jsonSuccess($re); + } + private function getChieldarr($vv, $res) + { + if ($vv['is_final'] == 1) { + return $vv; + } + foreach ($res as $v) { + if ($v['parent_id'] == $vv['journal_topic_id']) { + $vv['children'][] = $this->getChieldarr($v, $res); + } + } + return $vv; + } + private function getAuthor($article) { $where['article_id'] = $article['article_id']; @@ -126,4 +167,32 @@ class Submision extends Controller { return $frag; } + public function getArticleMains(){ + $data = $this->request->post(); + $rule = new Validate([ + "article_id"=>"require" + ]); + if(!$rule->check($data)){ + return jsonError($rule->getError()); + } + $mains = $this->article_main_obj->where('article_id',$data['article_id'])->where('state',0)->select(); + $re['mains'] = $mains; + return jsonSuccess($re); + } + + public function delArticleMain(){ + $data = $this->request->post(); + $rule = new Validate([ + "article_main_id"=>"require" + ]); + if(!$rule->check($data)){ + return jsonError($rule->getError()); + } + $this->article_main_obj->where('article_main_id',$data['article_main_id'])->update(['state'=>1]); + return jsonSuccess([]); + } + + + + }