user_obj = Db::name('user'); $this->user_act_obj = Db::name('user_act'); $this->article_obj = Db::name('article'); $this->journal_obj = Db::name('journal'); $this->user_log_obj = Db::name('user_log'); $this->reviewer_major_obj = Db::name('reviewer_major'); $this->reviewer_to_journal_obj = Db::name('reviewer_to_journal'); $this->article_msg_obj = Db::name('article_msg'); $this->article_file_obj = Db::name('article_file'); $this->article_reviewer_obj = Db::name('article_reviewer'); $this->article_author_obj = Db::name('article_author'); $this->article_transfer_obj = Db::name('article_transfer'); $this->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_to_journal_obj = Db::name('chief_to_journal'); $this->board_to_journal_obj = Db::name('board_to_journal'); $this->chief_msg_obj = Db::name('chief_msg'); $this->article_to_board_obj = Db::name('article_to_board'); $this->chief_to_journal_obj = Db::name('chief_to_journal'); $this->login_auto_obj = Db::name('login_auto'); $this->user_index_obj = Db::name('user_index'); $this->user_email_index_obj = Db::name('user_email_index'); } /** * @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 getBoards(){ $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]['hindex'] = $h_index_num; $boards[$k]['ghindex'] = $gh_index_num; } 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([ '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']; dump($board);die; $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()); } $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 addBoardGroup(){ $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 delBoardGroup(){ $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 addBoard(){ $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('journal_id',$data['journal_id'])->find(); if($check){ return jsonError("Add repeatedly"); } // $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([ '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); $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()]); } } } }