1
This commit is contained in:
@@ -2,60 +2,21 @@
|
||||
|
||||
namespace app\api\controller;
|
||||
|
||||
use think\Controller;
|
||||
use app\api\controller\Base;
|
||||
use think\Db;
|
||||
use think\Validate;
|
||||
use TCPDF;
|
||||
use think\Queue;
|
||||
|
||||
/**
|
||||
* @title 审稿人接口
|
||||
* @description 审稿人接口
|
||||
*/
|
||||
class Reviewer extends Controller
|
||||
class Reviewer extends Base
|
||||
{
|
||||
|
||||
protected $user_obj = '';
|
||||
protected $user_reviewer_obj = '';
|
||||
protected $journal_obj = '';
|
||||
protected $reviewer_major_obj = '';
|
||||
protected $reviewer_to_journal_obj = '';
|
||||
protected $user_reviewer_info_obj = '';
|
||||
protected $user_log_obj = '';
|
||||
protected $article_obj = '';
|
||||
protected $article_file_obj = '';
|
||||
protected $article_reviewer_obj = '';
|
||||
protected $article_reviewer_file_obj = '';
|
||||
protected $article_reviewer_question_obj = '';
|
||||
protected $chief_to_journal_obj = '';
|
||||
protected $board_to_journal_obj = '';
|
||||
protected $login_auto_obj = '';
|
||||
protected $country_obj = '';
|
||||
protected $user_reviewer_recommend_obj = '';
|
||||
protected $article_msg_obj = '';
|
||||
|
||||
//put your code here
|
||||
public function __construct(\think\Request $request = null)
|
||||
{
|
||||
parent::__construct($request);
|
||||
$this->user_obj = Db::name('user');
|
||||
$this->user_reviewer_obj = Db::name('user_reviewer_apply');
|
||||
$this->journal_obj = Db::name('journal');
|
||||
$this->reviewer_major_obj = Db::name('reviewer_major');
|
||||
$this->reviewer_to_journal_obj = Db::name('reviewer_to_journal');
|
||||
$this->user_reviewer_info_obj = Db::name('user_reviewer_info');
|
||||
$this->user_log_obj = Db::name('user_log');
|
||||
$this->article_obj = Db::name('article');
|
||||
$this->article_file_obj = Db::name('article_file');
|
||||
$this->article_reviewer_obj = Db::name('article_reviewer');
|
||||
$this->article_reviewer_file_obj = Db::name('article_reviewer_file');
|
||||
$this->article_reviewer_question_obj = Db::name('article_reviewer_question');
|
||||
$this->chief_to_journal_obj = Db::name('chief_to_journal');
|
||||
$this->board_to_journal_obj = Db::name('board_to_journal');
|
||||
$this->login_auto_obj = Db::name('login_auto');
|
||||
$this->country_obj = Db::name('country');
|
||||
$this->user_reviewer_recommend_obj = Db::name('user_reviewer_recommend');
|
||||
$this->article_msg_obj = Db::name('article_msg');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -250,6 +211,8 @@ class Reviewer extends Controller
|
||||
->where('t_user.account|t_user.email', 'like', '%' . $data['account'] . '%')
|
||||
->where('t_user.state', 0)
|
||||
->find();
|
||||
$check['majorshu'] = getMajorShu($check['major']);
|
||||
$check['cvs'] = getReviewerCvs($check['user_id']);
|
||||
$check['title'] = $check['technical'];
|
||||
$re['reviewer'] = $check;
|
||||
return jsonSuccess($re);
|
||||
@@ -1402,7 +1365,6 @@ class Reviewer extends Controller
|
||||
$info_insert['introduction'] = isset($data['introduction']) ? trim($data['introduction']) : '';
|
||||
$info_insert['company'] = isset($data['company']) ? trim($data['company']) : '';
|
||||
$info_insert['major'] = $data['major'];
|
||||
$info_insert['cmajor'] = $data['cmajor'];
|
||||
$info_insert['qualifications'] = isset($data['cv'])?trim($data['cv']):'';
|
||||
$info_insert['field'] = trim($data['field']);
|
||||
$res1 = $this->user_reviewer_info_obj->insertGetId($info_insert);
|
||||
@@ -1469,7 +1431,7 @@ class Reviewer extends Controller
|
||||
$info_insert['introduction'] = isset($data['introduction']) ? trim($data['introduction']) : '';
|
||||
$info_insert['company'] = isset($data['company']) ? trim($data['company']) : '';
|
||||
$info_insert['major'] = $data['major'];
|
||||
$info_insert['cmajor'] = $data['cmajor'];
|
||||
// $info_insert['cmajor'] = $data['cmajor'];
|
||||
$info_insert['field'] = trim($data['field']);
|
||||
$info_insert['qualifications'] = trim($data['cv']);
|
||||
if ($reviewer_info == null) {
|
||||
@@ -1602,10 +1564,11 @@ class Reviewer extends Controller
|
||||
}
|
||||
|
||||
foreach($res as $k => $v){
|
||||
$major_res = $this->reviewer_major_obj->where('major_id', $v['major'])->column('title');
|
||||
$res[$k]['major_title'] = $major_res ? $major_res[0] : '';
|
||||
$cmajor_res = $this->reviewer_major_obj->where('major_id', $v['cmajor'])->column('title');
|
||||
$res[$k]['cmajor_title'] = $cmajor_res ? $cmajor_res[0] : '';
|
||||
$res[$k]['major_title'] = getMajorStr($v['major']);
|
||||
// $major_res = $this->reviewer_major_obj->where('major_id', $v['major'])->column('title');
|
||||
// $res[$k]['major_title'] = $major_res ? $major_res[0] : '';
|
||||
// $cmajor_res = $this->reviewer_major_obj->where('major_id', $v['cmajor'])->column('title');
|
||||
// $res[$k]['cmajor_title'] = $cmajor_res ? $cmajor_res[0] : '';
|
||||
}
|
||||
return json(['code' => 0, 'data' => $res, 'total' => $count]);
|
||||
}
|
||||
@@ -1693,116 +1656,45 @@ class Reviewer extends Controller
|
||||
public function searchReviewer()
|
||||
{
|
||||
$data = $this->request->post();
|
||||
$rule = new Validate([
|
||||
'article_id'=>'require',
|
||||
'pageIndex'=>'require',
|
||||
'pageSize'=>'require'
|
||||
]);
|
||||
if(!$rule->check($data)){
|
||||
return jsonError($rule->getError());
|
||||
}
|
||||
$article_info = $this->article_obj->where("article_id", $data['article_id'])->find();
|
||||
$noids = $this->article_reviewer_obj->where('article_id', $data['article_id'])->column('reviewer_id');
|
||||
$limit_start = ($data['pageIndex'] - 1) * $data['pageSize'];
|
||||
$list = [];
|
||||
$gradewhere = '';
|
||||
if(isset($data['grade'])){
|
||||
$gradewhere = 't_reviewer_to_journal.grade = "'.$data['grade'].'"';
|
||||
|
||||
$where['t_reviewer_to_journal.journal_id'] = $article_info['journal_id'];
|
||||
$where['t_reviewer_to_journal.reviewer_id'] = ['not in',$noids];
|
||||
$where['t_reviewer_to_journal.state'] = 0;
|
||||
if(isset($data['keywords'])&&$data['keywords']!=''){
|
||||
$where['t_user_reviewer_info.introduction|t_user_reviewer_info.field|t_user.account|t_user.email|t_user.realname'] = ['like',"%" . $data["keywords"] . "%"];
|
||||
}
|
||||
$count = 0;
|
||||
if ($data["keywords"] == "") {
|
||||
if ($data["major_id"] == 0) {
|
||||
$list = $this->reviewer_to_journal_obj
|
||||
->field("t_user.user_id,t_user.realname,t_reviewer_major.title cmajor,t_reviewer_to_journal.grade,t_user.account,t_user_reviewer_info.company,t_user_reviewer_info.field,t_user.rs_num,t_user.rd_num")
|
||||
->join("t_user", "t_user.user_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->join("t_user_reviewer_info", "t_user_reviewer_info.reviewer_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->join("t_reviewer_major", "t_reviewer_major.major_id = t_user_reviewer_info.cmajor", "left")
|
||||
->where('t_reviewer_to_journal.journal_id', $article_info['journal_id'])
|
||||
->where('t_reviewer_to_journal.reviewer_id', 'not in', $noids)
|
||||
->where($gradewhere)
|
||||
->where('t_reviewer_to_journal.state', 0)
|
||||
->order("t_user.rs_num desc")
|
||||
->limit($limit_start, $data['pageSize'])
|
||||
->select();
|
||||
$count = $this->reviewer_to_journal_obj
|
||||
->where('t_reviewer_to_journal.journal_id', $article_info['journal_id'])
|
||||
->where('t_reviewer_to_journal.reviewer_id', 'not in', $noids)
|
||||
->where($gradewhere)
|
||||
->where('t_reviewer_to_journal.state', 0)
|
||||
->count();
|
||||
} else {
|
||||
$list = $this->reviewer_to_journal_obj
|
||||
->field("t_user.user_id,t_user.realname,t_reviewer_major.title cmajor,t_reviewer_to_journal.grade,t_user.account,t_user_reviewer_info.company,t_user_reviewer_info.field,t_user.rs_num,t_user.rd_num")
|
||||
->join("t_user", "t_user.user_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->join("t_user_reviewer_info", "t_user_reviewer_info.reviewer_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->join("t_reviewer_major", "t_reviewer_major.major_id = t_user_reviewer_info.cmajor", "left")
|
||||
->where('t_reviewer_to_journal.journal_id', $article_info['journal_id'])
|
||||
->where('t_reviewer_to_journal.reviewer_id', 'not in', $noids)
|
||||
->where($gradewhere)
|
||||
->where("t_user_reviewer_info.major", $data['major_id'])
|
||||
->where('t_reviewer_to_journal.state', 0)
|
||||
->order("t_user.rs_num desc")
|
||||
->limit($limit_start, $data['pageSize'])
|
||||
->select();
|
||||
$count = $this->reviewer_to_journal_obj
|
||||
->join("t_user_reviewer_info", "t_user_reviewer_info.reviewer_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->where('t_reviewer_to_journal.journal_id', $article_info['journal_id'])
|
||||
->where('t_reviewer_to_journal.reviewer_id', 'not in', $noids)
|
||||
->where($gradewhere)
|
||||
->where("t_user_reviewer_info.major", $data['major_id'])
|
||||
->where('t_reviewer_to_journal.state', 0)
|
||||
->count();
|
||||
}
|
||||
} else {
|
||||
if ($data["major_id"] == 0) {
|
||||
$list = $this->reviewer_to_journal_obj
|
||||
->field("t_user.user_id,t_user.realname,t_reviewer_major.title cmajor,t_reviewer_to_journal.grade,t_user.account,t_user_reviewer_info.company,t_user_reviewer_info.field,t_user.rs_num,t_user.rd_num")
|
||||
->join("t_user", "t_user.user_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->join("t_user_reviewer_info", "t_user_reviewer_info.reviewer_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->join("t_reviewer_major", "t_reviewer_major.major_id = t_user_reviewer_info.cmajor", "left")
|
||||
->where('t_reviewer_to_journal.journal_id', $article_info['journal_id'])
|
||||
->where('t_reviewer_to_journal.reviewer_id', 'not in', $noids)
|
||||
->where($gradewhere)
|
||||
->where("t_user_reviewer_info.introduction|t_user_reviewer_info.field|t_user.account|t_user.email|t_user.realname", "like", "%" . $data["keywords"] . "%")
|
||||
->where('t_reviewer_to_journal.state', 0)
|
||||
->order("t_user.rs_num desc")
|
||||
->limit($limit_start, $data['pageSize'])
|
||||
->select();
|
||||
$count = $this->reviewer_to_journal_obj
|
||||
->join("t_user", "t_user.user_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->join("t_user_reviewer_info", "t_user_reviewer_info.reviewer_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->where('t_reviewer_to_journal.journal_id', $article_info['journal_id'])
|
||||
->where('t_reviewer_to_journal.reviewer_id', 'not in', $noids)
|
||||
->where($gradewhere)
|
||||
->where("t_user_reviewer_info.introduction|t_user_reviewer_info.field|t_user.account|t_user.email|t_user.realname", "like", "%" . $data["keywords"] . "%")
|
||||
->where('t_reviewer_to_journal.state', 0)
|
||||
->count();
|
||||
} else {
|
||||
$list = $this->reviewer_to_journal_obj
|
||||
->field("t_user.user_id,t_user.realname,t_reviewer_major.title cmajor,t_reviewer_to_journal.grade,t_user.account,t_user_reviewer_info.company,t_user_reviewer_info.field,t_user.rs_num,t_user.rd_num")
|
||||
->join("t_user", "t_user.user_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->join("t_user_reviewer_info", "t_user_reviewer_info.reviewer_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->join("t_reviewer_major", "t_reviewer_major.major_id = t_user_reviewer_info.cmajor", "left")
|
||||
->where('t_reviewer_to_journal.journal_id', $article_info['journal_id'])
|
||||
->where("t_user_reviewer_info.major", $data['major_id'])
|
||||
->where('t_reviewer_to_journal.reviewer_id', 'not in', $noids)
|
||||
->where($gradewhere)
|
||||
->where("t_user_reviewer_info.introduction|t_user_reviewer_info.field|t_user.account|t_user.email|t_user.realname", "like", "%" . $data["keywords"] . "%")
|
||||
->where('t_reviewer_to_journal.state', 0)
|
||||
->order("t_user.rs_num desc")
|
||||
->limit($limit_start, $data['pageSize'])
|
||||
->select();
|
||||
$count = $this->reviewer_to_journal_obj
|
||||
->join("t_user", "t_user.user_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->join("t_user_reviewer_info", "t_user_reviewer_info.reviewer_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->where('t_reviewer_to_journal.journal_id', $article_info['journal_id'])
|
||||
->where("t_user_reviewer_info.major", $data['major_id'])
|
||||
->where('t_reviewer_to_journal.reviewer_id', 'not in', $noids)
|
||||
->where($gradewhere)
|
||||
->where("t_user_reviewer_info.introduction|t_user_reviewer_info.field|t_user.account|t_user.email|t_user.realname", "like", "%" . $data["keywords"] . "%")
|
||||
->where('t_reviewer_to_journal.state', 0)
|
||||
->count();
|
||||
}
|
||||
if(isset($data['major_id'])&&$data['major_id']!=0){
|
||||
$where['t_user_reviewer_info.major'] = $data['major_id'];
|
||||
}
|
||||
$list = $this->reviewer_to_journal_obj
|
||||
->join("t_user", "t_user.user_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->join("t_user_reviewer_info", "t_user_reviewer_info.reviewer_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->where($where)
|
||||
->order('t_user.rs_num desc')
|
||||
->limit($limit_start, $data['pageSize'])
|
||||
->select();
|
||||
$count = $this->reviewer_to_journal_obj
|
||||
->join("t_user", "t_user.user_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->join("t_user_reviewer_info", "t_user_reviewer_info.reviewer_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->where($where)
|
||||
->count();
|
||||
|
||||
foreach($list as $k => $v){
|
||||
$list[$k]['majorstr'] = getMajorStr($v['major']);
|
||||
$list[$k]['now'] = $this->article_reviewer_obj->where('reviewer_id',$v['user_id'])->where('state',0)->count();
|
||||
}
|
||||
|
||||
|
||||
|
||||
$re['reviewers'] = $list;
|
||||
$re['count'] = $count;
|
||||
return jsonSuccess($re);
|
||||
|
||||
Reference in New Issue
Block a user