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(); $ca_board = $this->getBoardsForJournal($v['journal_id']); $journals[$k]["boards"] = $ca_board; $journals[$k]['boards_count'] = count($boards); $board_index = []; $sum = 0; foreach ($boards 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); } /**获取编委 * @return void */ public function getboards(){ $data = $this->request->post(); $rule = new Validate([ "journal_id" => "require" ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $ca_board = $this->getBoardsForJournal($data['journal_id'],true); $re['boards'] = $ca_board; 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); } }