This commit is contained in:
wangjinlei
2022-06-21 17:24:06 +08:00
parent 7016414402
commit d1e973388a
8 changed files with 633 additions and 283 deletions

View File

@@ -391,151 +391,6 @@ class Admin extends Controller {
return json($res);
}
/**
* 导入reviewer
*/
public function reviewerImport() {
die("server stoped");
//接收信息
$data = $this->request->post();
// $data['journal'] = 5;
// $data['url'] = 'reviewer/import/20210819/beb6de5c69e4878d995fd8de192d17af.xlsx';
$journal = $data['journal'];
$journal_info = $this->journal_obj->where('journal_id', $journal)->find();
//读取excel
$path = ROOT_PATH . 'public' . DS . $data['url'];
$frag = self::readExcel($path);
//check数据分开存储
$su_data = [];
$er_data = [];
foreach ($frag as $v) {
if($v['username']==''){
continue;
}
//验证数据完整性
if ($v['username'] == '' || $v['email'] == '' || $v['realname'] == '' || $v['major'] == '' || $v['username'] == null || $v['email'] == null || $v['realname'] == null || $v['major'] == null) {
$er_data[] = [
'username' => trim($v['username']),
'realname' => trim($v['realname']),
'email' => $v['email'],
'reason' => 'Missing data'
];
continue;
}
//验证major
$major = self::get_major($v['major']);
if ($major === null) {
$er_data[] = [
'username' => trim($v['username']),
'realname' => trim($v['realname']),
'email' => $v['email'],
'reason' => 'major is error'
];
continue;
}
//验证是否存在此用户并且存在对应关系
$this_reviewer = self::get_username(trim($v['username']));
$mme = self::get_userByEmail(trim($v['email']));
if ($this_reviewer == null && $mme != null) {
$er_data[] = [
'username' => trim($v['username']),
'realname' => trim($v['realname']),
'email' => $v['email'],
'reason' => 'Email occupied,and username is:'.$mme['account']
];
continue;
}
if ($this_reviewer != null && $this_reviewer['type'] == 2) {
$er_data[] = [
'username' => $v['username'],
'realname' => $v['realname'],
'email' => $v['email'],
'reason' => "Editor can't become reviewer"
];
continue;
}
if ($this_reviewer != null && self::get_retojo($this_reviewer['user_id'], $journal) != null) {
$su_data[] = [
'username' => trim($v['username']),
'realname' => trim($v['realname']),
'email' => $v['email'],
'reason' => 'success(has register)'
];
continue;
}
//执行存储,按实际逻辑存储
$cache_id = 0;
if ($this_reviewer == null) {
//添加user主体基本信息
$cache_reviewer['account'] = trim($v['username']);
$cache_reviewer['password'] = md5('123456qwe');
$cache_reviewer['email'] = trim($v['email']);
$cache_reviewer['realname'] = trim($v['realname']);
$cache_reviewer['is_reviewer'] = 1;
$cache_reviewer['ctime'] = time();
$cache_id = $this->user_obj->insertGetId($cache_reviewer);
//添加reviewer_info信息
$cache_insert_info['reviewer_id'] = $cache_id;
$cache_insert_info['gender'] = $v['gender'] == '女' ? 2 : 1;
$cache_insert_info['technical'] = $v['technical'] == null ? '' : $v['technical'];
$cache_insert_info['country'] = $v['country'] == null ? '' : $v['country'];
$cache_insert_info['introduction'] = $v['introduction'] == null ? '' : $v['introduction'];
$cache_insert_info['company'] = $v['company'] == null ? '' : $v['company'];
$cache_insert_info['major'] = $major['major_id'];
$cache_insert_info['field'] = $v['field'] == null ? '' : $v['field'];
$this->user_reviewer_info_obj->insert($cache_insert_info);
} else if ($this_reviewer != null && $this_reviewer['is_reviewer'] == 0) {
$this->user_obj->where('user_id', $this_reviewer['user_id'])->update(['is_reviewer' => 1]);
//添加reviewer_info信息
$cache_insert_info['reviewer_id'] = $this_reviewer['user_id'];
$cache_insert_info['gender'] = $v['gender'] == '女' ? 2 : 1;
$cache_insert_info['technical'] = $v['technical'] == null ? '' : $v['technical'];
$cache_insert_info['country'] = $v['country'] == null ? '' : $v['country'];
$cache_insert_info['introduction'] = $v['introduction'] == null ? '' : $v['introduction'];
$cache_insert_info['company'] = $v['company'] == null ? '' : $v['company'];
$cache_insert_info['major'] = $major['major_id'];
$cache_insert_info['field'] = $v['field'] == null ? '' : $v['field'];
$this->user_reviewer_info_obj->insert($cache_insert_info);
}
//存储关系表信息
$cache_insert_rtj['reviewer_id'] = $this_reviewer == null ? $cache_id : $this_reviewer['user_id'];
$cache_insert_rtj['journal_id'] = $journal;
$cache_insert_rtj['account'] = trim($v['username']);
$cache_insert_rtj['journal_title'] = $journal_info['title'];
$cache_insert_rtj['ctime'] = time();
$this->reviewer_to_journal_obj->insert($cache_insert_rtj);
//增加成功信息
$su_data[] = [
'username' => trim($v['username']),
'realname' => trim($v['realname']),
'email' => $v['email'],
'reason' => 'success'
];
//发送邮件提醒审稿人
$content = "Thank you for registering as a " . $journal_info['title'] . " reviewer<br/>". "At present, you have passed our examination<br/>";
$content .= '<a href="https://submission.tmrjournals.com">SubmissionSystem</a><br>';
$content .= '<p>username:' . trim($v['username']) . '</p>';
$content .= '<p>Original Password: 123456qwe</p>';//$has_res ? '' : '<p>password:123456qwe</p>';
$maidata['email'] = $v['email'];
$maidata['title'] = $journal_info['title'];
$maidata['content'] = $content;
$maidata['tmail'] = $journal_info['email'];
$maidata['tpassword'] = $journal_info['epassword'];
Queue::push( 'app\api\job\mail@fire' , $maidata , "tmail" );
}
return json(['sudata' => $su_data, 'erdata' => $er_data]);
}
/**
* 获取领域分类