staff_obj = Db::name('staff'); $this->staff_level_obj = Db::name('staff_level'); $this->staff_log_obj = Db::name('staff_log'); $this->staff_to_journal_obj = Db::name('staff_to_journal'); $this->chief_msg_obj = Db::name('chief_msg'); $this->article_to_board_obj = Db::name('article_to_board'); } /** * @title 编委主页--获取进行中的文章 * @description 编委主页--获取进行中的文章 * @author wangjinlei * @url /api/Board/getBoardPendArticle * @method POST * * @param name:user_id type:int require:1 desc:编委用户id * @param name:journal_id type:int require:1 desc:期刊id * * @return articles:文章列表# */ public function getBoardPendArticle() { $data = $this->request->post(); $list = $this->article_obj ->field('t_article.*,t_journal.title journal_title') ->join('t_journal','t_journal.journal_id = t_article.journal_id','left') ->where('t_article.journal_id', $data['journal_id']) ->where('t_article.state', 6) ->select(); foreach ($list as $k => $v) { $auts = $this->article_author_obj->where('article_id', $v['article_id'])->where('state', 0)->select(); $au = ''; foreach ($auts as $vv) { $au .= $vv['firstname'] . ' ' . $vv['lastname'] . ';'; } $list[$k]['author'] = substr($au, 0, -1); } foreach ($list as $k => $v){ if($v['type']){ $list[$k]['type'] = translateType($v['type']); } } //加上文章领域 foreach($list as $k => $v){ $major = $this->reviewer_major_obj->where('major_id',$v['major_id'])->find(); $cmajor = $this->reviewer_major_obj->where('major_id',$v['cmajor_id'])->find(); $list[$k]['major'] = $major['title']; $list[$k]['cmajor'] = $cmajor['title']; } $re['articles'] = $list; return jsonSuccess($re); } /** * @title 编委主页--获取历史文章 * @description 编委主页--获取历史文章 * @author wangjinlei * @url /api/Board/getBoardHistArticles * @method POST * * @param name:user_id type:int require:1 desc:编委用户id * @param name:journal_id type:int require:1 desc:期刊id * * @return articles:文章列表# */ public function getBoardHistArticles(){ $data = $this->request->post(); $list = $this->article_obj->field('t_article.*,t_journal.title journal_title') ->join('t_journal','t_journal.journal_id = t_article.journal_id','left') ->where('t_article.journal_id',$data['journal_id']) ->where('t_article.state',5)->select(); foreach ($list as $k => $v) { $auts = $this->article_author_obj->where('article_id', $v['article_id'])->where('state', 0)->select(); $au = ''; foreach ($auts as $vv) { $au .= $vv['firstname'] . ' ' . $vv['lastname'] . ';'; } $list[$k]['author'] = substr($au, 0, -1); } foreach ($list as $k => $v){ if($v['type']){ $list[$k]['type'] = translateType($v['type']); } } $re['articles'] = $list; return jsonSuccess($re); } /** * @title 编委主页--获取编委期刊列表 * @description 编委主页--获取编委期刊列表 * @author wangjinlei * @url /api/Board/getBoardJournals * @method POST * * @param name:user_id type:int require:1 desc:编委用户id * * @return journals:期刊列表# */ public function getBoardJournals(){ $data = $this->request->post(); $list = $this->board_to_journal_obj->field('t_journal.*,t_board_to_journal.btj_id') ->join('t_journal','t_board_to_journal.journal_id = t_journal.journal_id','left') ->where('t_board_to_journal.user_id',$data['user_id']) ->where('t_board_to_journal.state',0) ->select(); $re['journals'] = $list; return jsonSuccess($re); } /** * @title 青年编委详情页--获取青年编委期刊列表 * @description 青年编委详情页--获取青年编委期刊列表 * @author wangjinlei * @url /api/Board/getYboardJournals * @method POST * * @param name:user_id type:int require:1 desc:编委用户id * * @return journals:期刊列表# */ public function getYboardJournals(){ $data = $this->request->post(); $journals = $this->reviewer_to_journal_obj ->join('t_journal','t_journal.journal_id = t_reviewer_to_journal.journal_id','left') ->where('t_reviewer_to_journal.reviewer_id',$data['user_id']) ->where('t_reviewer_to_journal.is_yboard',1) ->where('t_reviewer_to_journal.state',0) ->select(); $re['journals'] = $journals; return jsonSuccess($re); } /** * @title 编委导入--获取官网编委 * @description 编委导入--获取官网编委 * @author wangjinlei * @url /api/Board/getOffwebBoard * @method POST * * @param name:journal_id type:int require:1 desc:期刊id * * @return boards:编委list# */ public function getOffwebBoard(){ $data = $this->request->post(); $journal_info = $this->journal_obj->where('journal_id',$data['journal_id'])->find(); $cs['issn'] = $journal_info['issn']; $url = 'http://journalapi.tmrjournals.com/public/index.php/api/Main/getBoards'; $list = object_to_array(json_decode(myPost($url, $cs))); foreach ($list as $k => $v){ if($v['tuser_id']==0){ continue; } $list[$k]['user'] = $this->user_obj->where('user_id',$v['tuser_id'])->find(); } $re['boards'] = $list; return jsonSuccess($re); } public function mymmm(){ $data = $this->request->post(); $journal_info = $this->journal_obj->where('journal_id',$data['journal_id'])->find(); $url = 'http://journalapi.tmrjournals.com/public/index.php/master/Board/getBoardListForSubmit'; $pra = []; $pra['issn'] = $journal_info['issn']; $pra['board_group_id'] = -1; $res = object_to_array(json_decode(myPost($url, $pra))); $boards = $res['data']['boards']; $bs = $this->board_to_journal_obj->where('journal_id',$data['journal_id'])->where('state',0)->select(); // $re['num'] = count($boards).'-----------'.count($bs); // $re['y'] = $boards; // $re['x'] = $bs; // $frag = []; // foreach($bs as $v){ // if(!$this->myarr($v,$boards)){ // $frag[] = $v; // } // } // foreach($frag as $v ){ // $this->board_to_journal_obj->where('btj_id',$v['btj_id'])->update(['state'=>1]); // } $frag1 = []; foreach($boards as $v){ if(!$this->myarr1($v,$bs)){ $frag1[] = $v; } } // foreach($frag1 as $k=>$v){ // $c = $this->user_obj->where('email',$v['email'])->find(); // $frag1[$k]['ch'] = $c; // if($c){ // $insert['user_id']=$c['user_id']; // } // } // $re['del'] = $frag; $re['add'] = $frag1; return jsonSuccess($re); } private function myarr($v,$boards){ foreach($boards as $val){ if($v['user_id']==$val['tuser_id']){ return true; } } return false; } private function myarr1($v,$bs){ foreach($bs as $val){ if($v['tuser_id']==$val['user_id']){ return true; } } return false; } public function getBoards(){ $data = $this->request->post(); $rule = new Validate([ "journal_id"=>"require" ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $journal_info = $this->journal_obj->where('journal_id',$data['journal_id'])->find(); $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,t_user_reviewer_info.country") ->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",$data['journal_id']) ->where('t_board_to_journal.state',0)->select(); $ca_board = $this->getBoardsForJournal($data['journal_id']); $journal_info["boards"] = $ca_board; $journal_info['boards_count'] = count($boards); $board_index = []; $china_num = 0; $sum = 0; foreach ($boards as $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']; } if($val['country']=="China"){ $china_num++; } } $journal_info['index_num'] = count($board_index); $journal_info['median'] = count($board_index)==0?0:zw_array($board_index); $journal_info['avg'] = count($board_index)==0?0:round($sum/count($board_index),2); $re['journal'] = $journal_info; $re['boards'] = $this->getBoardsForJournal($data['journal_id'],true); $re['boards_count'] = count($boards); $re['china_count'] = $china_num; return jsonSuccess($re); } /** * 获取编委列表 */ public function getBoards1(){ $data = $this->request->post(); $rule = new Validate([ 'journal_id'=>'require', 'board_group_id'=>'require' ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $journal_info = $this->journal_obj->where('journal_id',$data['journal_id'])->find(); $url = 'http://journalapi.tmrjournals.com/public/index.php/master/Board/getBoardListForSubmit'; $pra = []; $pra['issn'] = $journal_info['issn']; $pra['board_group_id'] = $data['board_group_id']; $res = object_to_array(json_decode(myPost($url, $pra))); $boards = $res['data']['boards']; $frag = []; foreach($boards as $k => $v){ $cache_user = $this->user_obj->where('user_id',$v['tuser_id'])->find(); // $h_index = $this->user_index_obj->where('user_id',$cache_user['user_id'])->where('year',date('Y'))->find(); // $h_index_num = 0; // $gh_index_num = 0; // if($h_index){ // $h_index_num = $h_index['h_index']; // $h_index_num = $h_index['gh_index']; // } // $boards[$k]['phone'] = $cache_user['phone']; $boards[$k]['wos_index'] = $cache_user['wos_index']; $boards[$k]['wos_time'] = $cache_user['wos_time']; $boards[$k]['google_index'] = $cache_user['google_index']; $boards[$k]['google_time'] = $cache_user['google_time']; $boards[$k]['score'] = $cache_user['score']; } foreach ($boards as $v) { if ($v['type'] == 0) { $frag['main'][] = $v; } elseif ($v['type'] == 1) { $frag['remain'][] = $v; } else { if ($v['board_group_id'] == 0) { $frag['member']['none'][] = $v; } else { $frag['member'][$v['group_name']][] = $v; } } } $re['boards'] = $frag; return jsonSuccess($re); } /** * 获取编委信息详情 */ public function getBoardMsgDetail(){ $data = $this->request->post(); $rule = new Validate([ 'board_id'=>'require' ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $url = 'http://journalapi.tmrjournals.com/public/index.php/master/Board/getBoardDetail'; $pra = []; $pra['board_id'] = $data['board_id']; $res = object_to_array(json_decode(myPost($url, $pra))); $board = $res['data']['board']; $user_info = $this->user_obj->where('user_id',$board['tuser_id'])->find(); // $index_info = $this->user_index_obj->where('user_id',$user_info['user_id'])->where('year',date('Y'))->find(); // if($index_info){ // $board['h_index'] = $index_info['h_index']; // }else{ // $board['h_index'] = 0; // } $re['board'] = $board; return jsonSuccess($re); } public function delBoard(){ $data = $this->request->post(); $rule = new Validate([ "btj_id"=>"require" ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $this->board_to_journal_obj->where('btj_id',$data['btj_id'])->update(['state'=>1]); 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([]); } /** * 删除编委 */ public function delBoard1(){ $data = $this->request->post(); $rule = new Validate([ 'board_id' => 'require' ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $url = 'http://journalapi.tmrjournals.com/public/index.php/master/Board/delBoard'; $pra = []; $pra['board_id'] = $data['board_id']; $res = object_to_array(json_decode(myPost($url, $pra))); $board = $res['data']['board']; $journal_info = $this->journal_obj->where('issn',$board['issn'])->find(); $this->board_to_journal_obj->where('user_id',$board['tuser_id'])->where('journal_id',$journal_info['journal_id'])->update(['state'=>1]); return jsonSuccess([]); } public function getBoardGroupList(){ $data = $this->request->post(); $rule = new Validate([ "journal_id"=>"require" ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $groups = $this->board_group_obj->where('journal_id',$data['journal_id'])->where("state",0)->select(); $re['groups'] = $groups; return jsonSuccess($re); } /** * 获取编委分组列表(原版) */ public function getBoardGroupList1(){ $data = $this->request->post(); $rule = new Validate([ 'journal_id'=>'require' ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $journal_info = $this->journal_obj->where('journal_id',$data['journal_id'])->find(); $url = 'http://journalapi.tmrjournals.com/public/index.php/master/Board/getBoardGroups'; $pra = []; $pra['issn'] = $journal_info['issn']; $res = object_to_array(json_decode(myPost($url, $pra))); $groups = $res['data']['groups']; $re['groups'] = $groups; return jsonSuccess($re); } /** * 添加编委分组 */ public function addBoardGroup1(){ $data = $this->request->post(); $rule = new Validate([ 'journal_id'=>'require|number', 'group_name'=>'require' ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $journal_info = $this->journal_obj->where('journal_id',$data['journal_id'])->find(); $url = 'http://journalapi.tmrjournals.com/public/index.php/master/Board/addBoardGroup'; $pra = []; $pra['issn'] = $journal_info['issn']; $pra['group_name'] = trim($data['group_name']); $res = object_to_array(json_decode(myPost($url, $pra))); return jsonSuccess([]); } public function addBoardGroup(){ $data = $this->request->post(); $rule = new Validate([ 'journal_id'=>'require|number', 'group_name'=>'require' ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $insert['journal_id'] = $data['journal_id']; $insert['group_name'] = trim($data['group_name']); $this->board_group_obj->insert($insert); return jsonSuccess([]); } /** * 删除编委分组 */ public function delBoardGroup1(){ $data = $this->request->post(); $rule = new Validate([ 'board_group_id'=>'require' ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $url = 'http://journalapi.tmrjournals.com/public/index.php/master/Board/delBoardGroup'; $pra = []; $pra['board_group_id'] = $data['board_group_id']; $res = object_to_array(json_decode(myPost($url, $pra))); if($res['code']==0){ return jsonSuccess([]); }else{ return jsonError($res['msg']); } } public function delBoardGroup(){ $data = $this->request->post(); $rule = new Validate([ 'board_group_id'=>'require' ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $check = $this->board_to_journal_obj->where('board_group_id',$data['board_group_id'])->where('state',0)->find(); if($check){ return jsonError("Please note that there are editorial committee members in the group, and you cannot delete this group."); } $this->board_group_obj->where('board_group_id',$data['board_group_id'])->update(['state'=>1]); return jsonSuccess([]); } public function addBoard(){ $data = $this->request->post(); $rule = new Validate([ "user_id"=>"require", "journal_id"=>"require", "type"=>"require", "board_group_id"=>"require", "research_areas"=>"require" ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $check = $this->board_to_journal_obj->where('user_id',$data['user_id'])->where('state',0)->find(); if($check){ return jsonError("According to TMR Publishing Group Policy, scientists are not allowed to serve on the editorial board of more than one journal at the same time."); } //添加对应关系 $insert['user_id'] = $data['user_id']; $insert['journal_id'] = $data['journal_id']; $insert['type'] = $data['type']; $insert['board_group_id'] = $data['board_group_id']; $insert['research_areas'] = trim($data['research_areas']); $this->board_to_journal_obj->insert($insert); return jsonSuccess([]); } /** * 添加编委 */ public function addBoard1(){ $data = $this->request->post(); $rule = new Validate([ 'user_id'=>'require', 'journal_id'=>'require', 'name'=>'require', 'board_group_id'=>'require', 'website'=>'require', 'type'=>'require', 'dr'=>'require', 'title'=>'require', 'field'=>'require', 'address'=>'require', 'country'=>'require', 'board_icon'=>'require' ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $user_info = $this->user_obj->where('user_id',$data['user_id'])->find(); $journal_info = $this->journal_obj->where('journal_id',$data['journal_id'])->find(); $check = $this->board_to_journal_obj->where('user_id',$data['user_id'])->where('state',0)->find(); if($check){ return jsonError("According to TMR Publishing Group Policy, scientists are not allowed to serve on the editorial board of more than one journal at the same time."); } // $url = 'http://www.journal.com/master/Board/addBoard'; $url = 'http://journalapi.tmrjournals.com/public/index.php/master/Board/addBoard'; $pra = []; $pra['user_id'] = $data['user_id']; $pra['journal_issn'] = $journal_info['issn']; $pra['type'] = $data['type']; $pra['name'] = $data['name']; $pra['website'] = $data['website']; $pra['dr'] = $data['dr']; $pra['email'] = $user_info['email']; $pra['title'] = $data['title']; $pra['field'] = $data['field']; $pra['address'] = $data['address']; $pra['country'] = $data['country']; $pra['board_icon'] = $data['board_icon']; $pra['board_group_id'] = $data['board_group_id']; $res = object_to_array(json_decode(myPost($url, $pra))); if($res['code']==1){ return jsonError($res['msg']); } //添加对应关系 $insert['user_id'] = $data['user_id']; $insert['journal_id'] = $data['journal_id']; $this->board_to_journal_obj->insert($insert); return jsonSuccess([]); } public function editBoard(){ $data = $this->request->post(); $rule = new Validate([ "btj_id"=>"require", "type"=>'require', "board_group_id"=>"require", "research_areas"=>"require" ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $update['type'] = $data['type']; $update['board_group_id'] = $data['type']==2?$data['board_group_id']:0; $update['research_areas'] = trim($data['research_areas']); $this->board_to_journal_obj->where('btj_id',$data['btj_id'])->update($update); return jsonSuccess([]); } /** * 编辑编委信息 */ public function editBoard1(){ $data = $this->request->post(); $rule = new Validate([ 'board_id'=>'require', 'name'=>'require', 'board_group_id'=>'require', 'website'=>'require', 'type'=>'require', 'dr'=>'require', 'title'=>'require', 'field'=>'require', 'address'=>'require', 'country'=>'require', ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $url = 'http://journalapi.tmrjournals.com/public/index.php/master/Board/editBoard'; $pra = []; $pra['board_id'] = $data['board_id']; $pra['type'] = $data['type']; $pra['name'] = $data['name']; $pra['website'] = $data['website']; $pra['dr'] = $data['dr']; $pra['title'] = $data['title']; $pra['field'] = $data['field']; $pra['address'] = $data['address']; $pra['country'] = $data['country']; $pra['board_group_id'] = $data['board_group_id']; $res = object_to_array(json_decode(myPost($url, $pra))); return jsonSuccess([]); } /** * 编辑编委头像信息 */ public function editIcon(){ $data = $this->request->post(); $rule = new Validate([ 'board_id'=>'require', 'board_icon'=>'require' ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $url = 'http://journalapi.tmrjournals.com/public/index.php/master/Board/editBoardIcon'; $pra = []; $pra['board_id'] = $data['board_id']; $pra['board_icon'] = $data['board_icon']; $res = object_to_array(json_decode(myPost($url, $pra))); return jsonSuccess([]); } /** * @title 编委导入--关联用户 * @description 编委导入--关联用户 * @author wangjinlei * @url /api/Board/relationUser * @method POST * * @param name:user_id type:int require:1 desc:用户id * @param name:journal_id type:int require:1 desc:期刊id * @param name:email type:string require:1 desc:邮箱 * @param name:jboard_id type:int require:1 desc:官网boardid * * @return boards:编委list# */ public function relationUser(){ $data = $this->request->post(); $url = 'http://journalapi.tmrjournals.com/public/index.php/api/Main/bindBoard'; $cs['user_id'] = $data['user_id']; $cs['board_id'] = $data['jboard_id']; $cs['email'] = $data['email']; $list = myPost($url, $cs); $check = $this->board_to_journal_obj->where('user_id',$data['user_id'])->where('journal_id',$data['journal_id'])->where('state',0)->find(); if(!$check){ $insert['user_id'] = $data['user_id']; $insert['journal_id'] = $data['journal_id']; $this->board_to_journal_obj->insert($insert); } return jsonSuccess([]); } /** * @title 编委导入--获取全部审稿人 * @description 编委导入--获取全部审稿人 * @author wangjinlei * @url /api/Board/getAllReviewer * @method POST * * @return boards:编委list# */ public function getAllReviewer(){ $revs = $this->user_obj->where('is_reviewer',1)->where('state',0)->select(); $re['reviewers'] = $revs; return jsonSuccess($re); } /** * 编辑/添加H指数 */ // public function editIndex(){ // $data = $this->request->post(); // $rule = new Validate([ // 'user_id'=>'require', // 'year'=>'require', // 'index'=>'require' // ]); // if(!$rule->check($data)){ // return jsonError($rule->getError()); // } // $check = $this->user_index_obj->where('user_id',$data['user_id'])->where('year',$data['year'])->where('state',0)->find(); // if($check){ // $this->user_index_obj->where('in_id',$check['in_id'])->update(['h_index'=>$data['index']]); // }else{ // $insert['user_id'] = $data['user_id']; // $insert['year'] = $data['year']; // $insert['h_index'] = $data['index']; // $this->user_index_obj->insert($insert); // } // return jsonSuccess([]); // } /** * @title 编委导入--通过账号搜索用户 * @description 编委导入--通过账号搜索用户 * @author wangjinlei * @url /api/Board/searchUserByAccount * @method POST * * @param name:account type:string require:1 desc:用户名 * * @return users:用户# */ public function searchUserByAccount(){ $data = $this->request->post(); $users = $this->user_obj->where('state',0)->where('account','like','%'.$data['account'].'%')->select(); $re['users'] = $users; return jsonSuccess($re); } /** * @title 编委导入--通过邮箱搜索用户 * @description 编委导入--通过邮箱搜索用户 * @author wangjinlei * @url /api/Board/searchUserByEmail * @method POST * * @param name:email type:string require:1 desc:邮箱 * * @return user:用户信息# */ public function searchUserByEmail(){ $data = $this->request->post(); $user = $this->user_obj->where('state',0)->where('email',$data['email'])->find(); if($user == null){ return jsonError('can not find user!!'); } $re['user'] = $user; return jsonSuccess($re); } public function up_boardIcon_file(){ $file = request()->file('boardIcon'); if ($file) { $info = $file->move(ROOT_PATH . 'public' . DS . 'boardIcon'); if ($info) { return json(['code' => 0, 'msg' => 'success', 'upurl' => str_replace("\\", "/", $info->getSaveName())]); } else { return json(['code' => 1, 'msg' => $file->getError()]); } } } }