diff --git a/application/api/controller/Article.php b/application/api/controller/Article.php index 45c7a06..af1e8db 100644 --- a/application/api/controller/Article.php +++ b/application/api/controller/Article.php @@ -1459,7 +1459,14 @@ class Article extends Controller { //通讯作者转为审稿人 $this->addReviewerFromArticle($res, $journal_info['journal_id']); - if ($res && $res_author && $transr && $res_file1 && $res_file2 && $res_file3 && $res_file4 && $res_log && $res_msg) { + + //如果存在推荐审稿人,则执行添加审稿人操作 + $res_recommend = true; + foreach($data['reviewers'] as $v){ + $res_recommend = $this->addRecommentReviewer($v,$journal_info['journal_id'],$user_res['user_id'],$res); + } + + if ($res && $res_author && $transr && $res_file1 && $res_file2 && $res_file3 && $res_file4 && $res_log && $res_msg && $res_recommend) { Db::commit(); return json(['code' => 0]); } else { @@ -1468,6 +1475,58 @@ class Article extends Controller { } } + + /** + * 添加推荐审稿人 + */ + public function addRecommentReviewer($reivewe,$journal_id,$user_id,$article_id){ + $journal_info = $this->journal_obj->where('journal_id',$journal_id)->find(); + //判断此用户是否存在 + $reviewer_info = $this->user_obj->where('email', $reivewe['email'])->where('state', 0)->find(); + if ($reviewer_info == null) { //添加用户 + $insert_user['account'] = $reivewe['email']; + $insert_user['password'] = md5('123456qwe'); + $insert_user['email'] = $reivewe['email']; + $insert_user['realname'] = $reivewe['realname']; + $insert_user['ctime'] = time(); + $i_id = $this->user_obj->insertGetId($insert_user); + $reviewer_info = $this->user_obj->where('user_id', $i_id)->find(); + } + //判断是否是此期刊审稿人 + $rtj = $this->reviewer_to_journal_obj->where('journal_id', $journal_id)->where('reviewer_id', $reviewer_info['user_id'])->where('state', 0)->find(); + // $res2 = true; + // $res3 = true; + if ($rtj == null) { + //判断是否具有审稿人身份,并具有审稿人资料 + $uri = $this->user_reviewer_info_obj->where('reviewer_id', $reviewer_info['user_id'])->where('state', 0)->find(); + if ($uri == null) { //添加审稿人信息 + $insert_reviewer_info['reviewer_id'] = $reviewer_info['user_id']; + $insert_reviewer_info['major'] = $reivewe['major']; + $insert_reviewer_info['cmajor'] = $reivewe['cmajor']; + $insert_reviewer_info['country'] = $reivewe['country']; + $res2 = $this->user_reviewer_info_obj->insert($insert_reviewer_info); + } + $insert_rtj['reviewer_id'] = $reviewer_info['user_id']; + $insert_rtj['journal_id'] = $journal_info['journal_id']; + $insert_rtj['account'] = $reviewer_info['account']; + $insert_rtj['journal_title'] = $journal_info['title']; + $insert_rtj['ctime'] = time(); + $res3 = $this->reviewer_to_journal_obj->insert($insert_rtj); + } + + //添加推荐审稿人信息 + $insert_recommend['reviewer_id'] = $reviewer_info['user_id']; + $insert_recommend['article_id'] = $article_id; + $insert_recommend['recommend_user_id'] = $user_id; + $insert_recommend['urr_ctime'] = time(); + $res_recommend = $this->user_reviewer_recommend_obj->insert($insert_recommend); + + if ($res2 && $res3 && $res_recommend) { + return true; + } else { + return false; + } + } /** * @title 获取待审文章 diff --git a/application/api/controller/Special.php b/application/api/controller/Special.php index d5afb5b..7697e19 100644 --- a/application/api/controller/Special.php +++ b/application/api/controller/Special.php @@ -32,6 +32,7 @@ class Special extends Controller protected $user_to_special_obj = ''; protected $chief_to_journal_obj = ''; protected $article_reviewer_obj = ''; + protected $user_reviewer_recommend_obj = ''; public function __construct(\think\Request $request = null) { @@ -56,6 +57,7 @@ class Special extends Controller $this->user_to_special_obj = Db::name('user_to_special'); $this->chief_to_journal_obj = Db::name('chief_to_journal'); $this->article_reviewer_obj = Db::name('article_reviewer'); + $this->user_reviewer_recommend_obj = Db::name('user_reviewer_recommend'); } /** @@ -531,22 +533,20 @@ class Special extends Controller { $data = $this->request->post(); $rule = new Validate([ + 'editor_id' => 'require', 'email' => 'require|email', 'realname' => 'require', 'article_id' => 'require', 'major' => 'require', - 'cmajor' => 'require' + 'cmajor' => 'require', + 'country' => 'require' ]); if (!$rule->check($data)) { return jsonError($rule->getError()); } $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(); - - - Db::startTrans(); - //判断此用户是否存在 $reviewer_info = $this->user_obj->where('email', $data['email'])->where('state', 0)->find(); if ($reviewer_info == null) { //添加用户 @@ -558,7 +558,6 @@ class Special extends Controller $i_id = $this->user_obj->insertGetId($insert_user); $reviewer_info = $this->user_obj->where('user_id', $i_id)->find(); } - //检验审稿实例是否存在 $check_repi = $this->article_reviewer_obj->where('article_id', $data['article_id'])->where('reviewer_id', $reviewer_info['user_id'])->find(); if ($check_repi != null) { @@ -575,6 +574,7 @@ class Special extends Controller $insert_reviewer_info['reviewer_id'] = $reviewer_info['user_id']; $insert_reviewer_info['major'] = $data['major']; $insert_reviewer_info['cmajor'] = $data['cmajor']; + $insert_reviewer_info['country'] = $data['country']; $res2 = $this->user_reviewer_info_obj->insert($insert_reviewer_info); } $insert_rtj['reviewer_id'] = $reviewer_info['user_id']; @@ -592,7 +592,14 @@ class Special extends Controller $insert_article_reviewer['ctime'] = time(); $arid = $this->article_reviewer_obj->insertGetId($insert_article_reviewer); - if ($res2 && $res3 && $arid) { + //添加推荐审稿人信息 + $insert_recommend['reviewer_id'] = $reviewer_info['user_id']; + $insert_recommend['recommend_user_id'] = $data['editor_id']; + $insert_recommend['urr_type'] = 1; + $insert_recommend['urr_ctime'] = time(); + $res_recommend = $this->user_reviewer_recommend_obj->insert($insert_recommend); + + if ($res2 && $res3 && $arid && $res_recommend) { Db::commit(); $articlecontroller = new articlecontroller(); //发送email提醒审稿员