diff --git a/application/api/controller/Board.php b/application/api/controller/Board.php index bcee7b9..d1c42e0 100644 --- a/application/api/controller/Board.php +++ b/application/api/controller/Board.php @@ -389,6 +389,22 @@ class Board extends Base { return jsonSuccess([]); } + /**编辑编委备注 + * @return void + */ + public function editBoardRemark(){ + $data = $this->request->post(); + $rule = new Validate([ + "btj_id"=>"require", + "remark"=>"require" + ]); + if(!$rule->check($data)){ + return jsonError($rule->getError()); + } + $this->board_to_journal_obj->where('btj_id',$data['btj_id'])->update(['remark'=>trim($data['remark'])]); + return jsonSuccess([]); + } + /** * 删除编委 */ diff --git a/application/api/controller/Monitor.php b/application/api/controller/Monitor.php index 0c599be..5577a62 100644 --- a/application/api/controller/Monitor.php +++ b/application/api/controller/Monitor.php @@ -20,7 +20,12 @@ class Monitor extends Base public function getJournalBoards(){ $journals = $this->journal_obj->where('state',0)->select(); foreach ($journals as $k => $v){ - $boards = $this->board_to_journal_obj->field("t_board_to_journal.*,t_user.google_index,t_user.google_time,t_user.wos_index,t_user.wos_time")->join("t_user","t_user.user_id = t_board_to_journal.user_id","left")->where("t_board_to_journal.journal_id",$v['journal_id'])->where('t_board_to_journal.state',0)->select(); + $boards = $this->board_to_journal_obj + ->field("t_board_to_journal.*,t_user.google_index,t_user.google_time,t_user.wos_index,t_user.wos_time") + ->join("t_user","t_user.user_id = t_board_to_journal.user_id","left") + ->where("t_board_to_journal.journal_id",$v['journal_id']) + ->where('t_board_to_journal.state',0) + ->select(); $ca_board = $this->getBoardsForJournal($v['journal_id']); $journals[$k]["boards"] = $ca_board; $journals[$k]['boards_count'] = count($boards); @@ -61,4 +66,91 @@ class Monitor extends Base return jsonSuccess($re); } + /**获取期刊青年编委 + * @return void + */ + public function getYboards(){ + $data = $this->request->post(); + $rule = new Validate([ + "journal_id"=>"require", + 'pageIndex'=>'require', + 'pageSize'=>'require' + ]); + if(!$rule->check($data)){ + return jsonError($rule->getError()); + } + $yboards = $this->user_to_yboard_obj + ->field("t_user.account,t_user.realname,t_user.email,t_user.score,t_user.remark,t_user.wos_index,t_user.wos_time,t_user.google_index,t_user.google_time,t_user_reviewer_info.field,t_user_reviewer_info.company,t_user_to_yboard.*") + ->join("t_user",'t_user.user_id = t_user_to_yboard.user_id','left') + ->join("t_user_reviewer_info",'t_user_reviewer_info.reviewer_id = t_user_to_yboard.user_id','left') + ->where("t_user_to_yboard.journal_id",$data['journal_id']) + ->where("t_user_to_yboard.start_date","<=",time()) + ->where("t_user_to_yboard.end_date",">=",time()) + ->where("t_user_to_yboard.state",0) + ->page($data['pageIndex'],$data['pageSize']) + ->select(); + $count = $this->user_to_yboard_obj + ->join("t_user",'t_user.user_id = t_user_to_yboard.user_id','left') + ->join("t_user_reviewer_info",'t_user_reviewer_info.reviewer_id = t_user_to_yboard.user_id','left') + ->where("t_user_to_yboard.journal_id",$data['journal_id']) + ->where("t_user_to_yboard.start_date","<=",time()) + ->where("t_user_to_yboard.end_date",">=",time()) + ->where("t_user_to_yboard.state",0)->count(); + + foreach($yboards as $k=>$val){ + $article1 = $this->article_obj->where('user_id',$val['user_id'])->where('journal_id',$val['journal_id'])->where('state',5)->where('ctime',">",strtotime("-1 year"))->select(); + $article11 = $this->article_obj->where('user_id',$val['user_id'])->where('journal_id',$val['journal_id'])->where('ctime',">",strtotime("-1 year"))->select(); + $ids = $this->article_author_obj->where('email',$val['email'])->column("article_id"); + $article2 = $this->article_obj->where('state',5)->where('journal_id',$val['journal_id'])->where('article_id',"in",$ids)->select(); + $article22 = $this->article_obj->where('journal_id',$val['journal_id'])->where('article_id',"in",$ids)->select(); + $articles = my_array_merge($article1,$article2); + $articles_all = my_array_merge($article11,$article22); + $reviewes = $this->article_reviewer_obj->join("t_article","t_article.article_id = t_article_reviewer.article_id","left")->where('t_article_reviewer.reviewer_id',$val['user_id'])->where('t_article.journal_id',$data['journal_id'])->where('t_article_reviewer.ctime',">",strtotime("-1 year"))->where('t_article_reviewer.state',"in",[1,2,3])->select(); + $yboards[$k]['articles'] = $articles; + $yboards[$k]['articles_all'] = $articles_all; + $yboards[$k]['reviewes'] = $reviewes; + } + + $re['yboards'] = $yboards; + $re['count'] = $count; + + return jsonSuccess($re); + } + + /**获取期刊青年科学家列表 + * @return void + */ + public function getJournalYBoards(){ + $journals = $this->journal_obj->where('state',0)->select(); + foreach ($journals as $k => $v){ + $yboards = $this->user_to_yboard_obj + ->field("t_user.account,t_user.realname,t_user.email,t_user.score,t_user.remark,t_user.wos_index,t_user.wos_time,t_user.google_index,t_user.google_time,t_user_reviewer_info.field,t_user_reviewer_info.company,t_user_to_yboard.*") + ->join("t_user",'t_user.user_id = t_user_to_yboard.user_id','left') + ->join("t_user_reviewer_info",'t_user_reviewer_info.reviewer_id = t_user_to_yboard.user_id','left') + ->where("t_user_to_yboard.journal_id",$v['journal_id']) + ->where("t_user_to_yboard.start_date","<=",time()) + ->where("t_user_to_yboard.end_date",">=",time()) + ->where("t_user_to_yboard.state",0) + ->select(); + $journals[$k]['yboard_count'] = count($yboards); + $board_index = []; + $sum = 0; + foreach ($yboards as $key => $val){ + if($val['wos_index']>0){ + $board_index[] = $val['wos_index']*1.5; + $sum += $val['wos_index']*1.5; + }elseif($val['google_index']>0){ + $board_index[] = $val['google_index']; + $sum += $val['google_index']; + } + } + $journals[$k]['index_num'] = count($board_index); + $journals[$k]['median'] = count($board_index)==0?0:zw_array($board_index); + $journals[$k]['avg'] = count($board_index)==0?0:round($sum/count($board_index),2); + } + $re['journals'] = $journals; + + return jsonSuccess($re); + + } } \ No newline at end of file diff --git a/application/api/controller/Reviewer.php b/application/api/controller/Reviewer.php index 8804e4a..8d83744 100644 --- a/application/api/controller/Reviewer.php +++ b/application/api/controller/Reviewer.php @@ -1529,6 +1529,7 @@ class Reviewer extends Base $info_insert['major'] = $data['major']; $info_insert['qualifications'] = isset($data['cv'])?trim($data['cv']):''; $info_insert['field'] = trim($data['field']); + $info_insert['test_from'] = "addReviewer"; $res1 = $this->user_reviewer_info_obj->insertGetId($info_insert); $to_insert['reviewer_id'] = $uid; $to_insert['journal_id'] = $data['journal_id']; @@ -1597,6 +1598,7 @@ class Reviewer extends Base $info_insert['field'] = trim($data['field']); $info_insert['qualifications'] = trim($data['cv']); if ($reviewer_info == null) { + $info_insert['test_from'] = "addReviewerBee"; $this->user_reviewer_info_obj->insertGetId($info_insert); } else { $this->user_reviewer_info_obj->where('reviewer_info_id', $reviewer_info['reviewer_info_id'])->update($info_insert); diff --git a/application/api/controller/User.php b/application/api/controller/User.php index 05f3a6d..09e9a27 100644 --- a/application/api/controller/User.php +++ b/application/api/controller/User.php @@ -1103,6 +1103,7 @@ class User extends Base $uid = $this->user_obj->insertGetId($ui); $uir['reviewer_id'] = $uid; $uir['country'] = trim($val['author_country']); + $uir['test_from'] = "addUserForAuthor"; $this->user_reviewer_info_obj->insert($uir); $check_user = $this->user_obj->where('user_id',$uid)->find(); } @@ -1184,6 +1185,7 @@ class User extends Base $inser_data['ctime'] = time(); $id = $this->user_obj->insertGetId($inser_data); $insert_reviewer['reviewer_id'] = $id; + $insert_reviewer['test_from'] = "adduser"; $this->user_reviewer_info_obj->insert($insert_reviewer); return jsonSuccess([]); } @@ -1911,6 +1913,7 @@ class User extends Base //存入个人额外信息 $insert_reviewer['reviewer_id'] = $id; + $insert_reviewer['test_from'] = "register"; $r_res = $this->user_reviewer_info_obj->insert($insert_reviewer); //存储注册验证信息 @@ -2413,6 +2416,7 @@ class User extends Base $insert_info['major'] = $data['major']; $insert_info['field'] = $data['field']; $insert_info['qualifications'] = $data['qualifications']; + $insert_info['test_from'] = "ReviewerFromAuthorAdopt"; $res = $this->user_reviewer_info_obj->insertGetId($insert_info); } $insert_to['reviewer_id'] = $user_info['user_id']; @@ -2488,6 +2492,7 @@ class User extends Base $insert_info['company'] = $apply_info['company']; $insert_info['major'] = $apply_info['major']; $insert_info['field'] = $apply_info['field']; + $insert_info['test_from'] = "reviewerAdopt"; // $insert_info['qualifications'] = $apply_info['qualifications']; $addinfo_res = $this->user_reviewer_info_obj->insertGetId($insert_info); $has_res = $this->user_obj->where('account', $apply_info['name'])->find(); @@ -2503,6 +2508,7 @@ class User extends Base $insert_info['company'] = $apply_info['company']; $insert_info['major'] = $apply_info['major']; $insert_info['field'] = $apply_info['field']; + $insert_info['test_from'] = "reviewerAdopt2"; // $insert_info['qualifications'] = $apply_info['qualifications']; $this->user_reviewer_info_obj->insert($insert_info); }else{ diff --git a/application/api/controller/Web.php b/application/api/controller/Web.php index 97b88ca..45cbcd1 100644 --- a/application/api/controller/Web.php +++ b/application/api/controller/Web.php @@ -54,6 +54,39 @@ class Web extends Base return jsonSuccess($re); } + /**获取编委国际化 + * @return void + */ + public function getBWGJHByIssn(){ + $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(); + $list = $this->board_to_journal_obj + ->field("t_board_to_journal.*,t_board_group.group_name,t_user.account,t_user.email,t_user.realname,t_user.icon,t_user.google_index,t_user.google_time,t_user.wos_index,t_user.wos_time,t_user_reviewer_info.*") + ->join("t_board_group","t_board_group.board_group_id = t_board_to_journal.board_group_id","left") + ->join("t_user","t_user.user_id = t_board_to_journal.user_id","left") + ->join("t_user_reviewer_info","t_user_reviewer_info.reviewer_id=t_board_to_journal.user_id","left") + ->where('t_board_to_journal.journal_id',$journal_info['journal_id']) + ->where('t_board_to_journal.state',0) + ->select(); + $frag = []; + foreach ($list as $v) { + if (isset($frag[$v['country']])) { + $frag[$v['country']]++; + } else { + $frag[$v['country']] = 1; + } + } + $re['count'] = count($list); + $re['country'] = $frag; + return jsonSuccess($re); + } + /** * @return void */ @@ -67,6 +100,23 @@ class Web extends Base } $journal_info = $this->journal_obj->where('issn',$data['issn'])->find(); $boards = $this->getBoardsForJournal($journal_info['journal_id']); + //获取委员会和编辑信息 + $committees = $this->committee_to_journal_obj + ->field("t_committee_to_journal.*,t_user.account,t_user.email,t_user.realname,t_user.icon,t_user.google_index,t_user.google_time,t_user.wos_index,t_user.wos_time,t_user_reviewer_info.*") + ->join("t_user","t_user.user_id = t_committee_to_journal.user_id","left") + ->join("t_user_reviewer_info","t_user_reviewer_info.reviewer_id = t_committee_to_journal.user_id","left") + ->where('t_committee_to_journal.journal_id',$journal_info['journal_id']) + ->where('t_committee_to_journal.state',0) + ->select(); + $editors = $this->editor_to_journal_obj + ->field("t_editor_to_journal.*,t_user.account,t_user.email,t_user.realname,t_user.icon,t_user.google_index,t_user.google_time,t_user.wos_index,t_user.wos_time,t_user_reviewer_info.*") + ->join("t_user","t_user.user_id = t_editor_to_journal.user_id","left") + ->join("t_user_reviewer_info","t_user_reviewer_info.reviewer_id = t_editor_to_journal.user_id","left") + ->where('t_editor_to_journal.journal_id',$journal_info['journal_id']) + ->where('t_editor_to_journal.state',0) + ->select(); + $re['editors'] = $editors; + $re['committees'] = $committees; $re['boards'] = $boards; return jsonSuccess($re); }