Files
tougao/application/api/controller/Chief.php
wangjinlei a0eacfd144 1
2022-04-08 14:01:38 +08:00

888 lines
34 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
namespace app\api\controller;
use think\Controller;
use think\Db;
use think\Env;
use think\Queue;
/**
* @title 主编相关接口
* @description 主编相关接口
*/
class Chief extends Controller {
protected $article_obj = '';
protected $user_obj = '';
protected $user_act_obj = '';
protected $journal_obj = '';
protected $user_log_obj = '';
protected $reviewer_major_obj = '';
protected $reviewer_to_journal_obj = '';
protected $article_msg_obj = '';
protected $article_file_obj = '';
protected $article_reviewer_obj = '';
protected $article_author_obj = '';
protected $article_transfer_obj = '';
protected $staff_obj = '';
protected $staff_level_obj = '';
protected $staff_log_obj = '';
protected $staff_to_journal_obj = '';
protected $chief_to_journal_obj = '';
protected $board_to_journal_obj = '';
protected $chief_msg_obj = '';
protected $article_to_board_obj = '';
protected $login_auto_obj = '';
public function __construct(\think\Request $request = null) {
parent::__construct($request);
$this->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');
}
/**
* @title 获取主编列表
* @description 获取主编列表
* @author wangjinlei
* @url /api/Chief/getChiefList
* @method POST
*
* @param name:journal_id type:int require:1 desc:期刊id(0为全部)
* @param name:pageIndex type:int require:1 desc:当前页码数
* @param name:pageSize type:int require:1 desc:单页数据条数
*
* @return chiefs:主编列表#
* @return count:总数#
*/
public function getChiefList(){
$data = $this->request->post();
$where['t_chief_to_journal.state'] = 0;
if($data['journal_id']!=0){
$where['t_chief_to_journal.journal_id'] = $data['journal_id'];
}
$limit_start = ($data['pageIndex'] - 1) * $data['pageSize'];
$chiefs = $this->chief_to_journal_obj
->join('t_user','t_user.user_id = t_chief_to_journal.user_id','left')
->where($where)
->limit($limit_start,$data['pageSize'])
->select();
$count = $this->chief_to_journal_obj->where($where)->count();
foreach ($chiefs as $k => $v){
$chiefs[$k]['journal'] = $this->journal_obj->where('journal_id',$v['journal_id'])->find();
}
$re['chiefs'] = $chiefs;
$re['count'] = $count;
return jsonSuccess($re);
}
/**
* @title 获取全部期刊
* @description 获取全部期刊
* @author wangjinlei
* @url /api/Chief/getAllJournals
* @method POST
*
* @return journals:期刊列表#
*/
public function getAllJournals(){
$journals = $this->journal_obj->where('state',0)->select();
$re['journals'] = $journals;
return jsonSuccess($re);
}
/**
* @title 添加主编
* @description 添加主编
* @author wangjinlei
* @url /api/Chief/addChief
* @method POST
*
* @param name:journal_id type:int require:1 desc:期刊id
* @param name:account type:string require:1 desc:主编账号
* @param name:email type:string require:1 desc:邮箱
* @param name:realname type:string require:0 desc:真实姓名
* @param name:password type:string require:1 desc:密码
* @param name:phone type:string require:0 desc:电话
*/
public function addChief(){
$data = $this->request->post();
$check = $this->user_obj->where('account',trim($data['account']))->whereOr('email',trim($data['email']))->find();
if($check){
return jsonError('Account or Email occupy!');
}
//存入数据
$insert['account'] = trim($data['account']);
$insert['email'] = trim($data['email']);
$insert['realname'] = isset($data['realname'])?trim($data['realname']):'';
$insert['password'] = md5(trim($data['password']));
$insert['phone'] = isset($data['phone'])?trim($data['phone']):'';
$insert['type'] = 3;
$insert['ctime'] = time();
$uid = $this->user_obj->insertGetId($insert);
//添加对应关系
$insert1['user_id'] = $uid;
$insert1['journal_id'] = $data['journal_id'];
$this->chief_to_journal_obj->insert($insert1);
return jsonSuccess([]);
}
/**
* @title 获取文章信息
* @description 获取文章信息
* @author wangjinlei
* @url /api/Chief/getArticleDetail
* @method POST
*
* @param name:article_id type:int require:1 desc:文章id
*/
public function getArticleDetail(){
$data = $this->request->post();
$article_info = $this->article_obj->where('article_id',$data['article_id'])->find();
$aus = $this->article_author_obj->where('article_id',$article_info['article_id'])->where('state',0)->select();
$au = '';
foreach ($aus as $k => $v){
$au .= $v['firstname'].' '.$v['lastname'].';';
}
$article_info['type'] = translateType($article_info['type']);
$article_info['author'] = substr($au, 0,-1);
$files = $this->article_file_obj->where('article_id',$article_info['article_id'])->where('type_name','manuscirpt')->select();
$article_info['file'] = $files;
$journal_info = $this->journal_obj->where('journal_id',$article_info['journal_id'])->find();
$article_info['journal'] = $journal_info;
$re['article'] = $article_info;
return jsonSuccess($re);
}
/**
* @title 主编自适应登录
* @description 主编自适应登录
* @author wangjinlei
* @url /api/Chief/autoLoginForChief
* @method POST
*
* @param name:code type:string require:1 desc:code码
*
* @return roles:身份列表#
* @return user:用户信息#
*/
public function autoLoginForChief(){
$data = $this->request->post();
$info = $this->login_auto_obj->where('code',$data['code'])->find();
if($info == null){
return jsonError('system error!');
}
$user_info = $this->user_obj->where('user_id',$info['user_id'])->find();
$roles = $this->getUserRoles($user_info['account']);
$re['roles'] = $roles;
$re['user'] = $user_info;
return jsonSuccess($re);
}
/**
* @title 获取主编主页进行中的文章列表
* @description 获取主编主页进行中的文章列表
* @author wangjinlei
* @url /api/Chief/getPArticlesForChief
* @method POST
*
* @param name:journal_id type:int require:1 desc:期刊id
*/
public function getPArticlesForChief() {
$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/Chief/getHArticlesForChief
* @method POST
*
* @param name:journal_id type:int require:1 desc:期刊id
* @param name:pageIndex type:int require:1 desc:当前页码数
* @param name:pageSize type:int require:1 desc:单页数据条数
*
*/
public function getHArticlesForChief(){
$data = $this->request->post();
$limit_start = ($data['pageIndex'] - 1) * $data['pageSize'];
$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)
->limit($limit_start,$data['pageSize'])->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);
}
$count = $this->article_obj->where('journal_id',$data['journal_id'])->where('state',5)->count();
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['count'] = $count;
$re['articles'] = $list;
return jsonSuccess($re);
}
/**
* @title 获取主编期刊列表
* @description 获取主编期刊列表
* @author wangjinlei
* @url /api/Chief/getJournalsFromChief
* @method POST
*
* @param name:user_id type:int require:1 desc:主编userid
*/
public function getJournalsFromChief() {
$data = $this->request->post();
$journals = $this->chief_to_journal_obj->field('t_journal.*')->join('t_journal','t_journal.journal_id = t_chief_to_journal.journal_id','left')->where('t_chief_to_journal.user_id',$data['user_id'])->where('t_chief_to_journal.state',0)->select();
$re['journals'] = $journals;
return jsonSuccess($re);
}
/**
* @title 添加主编已注册
* @description 添加主编已注册
* @author wangjinlei
* @url /api/Chief/addChiefHas
* @method POST
*
* @param name:user_id type:int require:1 desc:用户id
* @param name:journal_id type:int require:1 desc:期刊id
*/
public function addChiefHas(){
$data = $this->request->post();
$check = $this->chief_to_journal_obj
->where('user_id',$data['user_id'])
->where('journal_id',$data['journal_id'])
->where('state',0)->find();
if($check!=null){
return jsonError('has register!');
}
$insert['user_id'] = $data['user_id'];
$insert['journal_id'] = $data['journal_id'];
$this->chief_to_journal_obj->insert($insert);
return jsonSuccess([]);
}
/**
* @title 编辑主编信息
* @description 编辑主编信息
* @author wangjinlei
* @url /api/Chief/editChief
* @method POST
*
* @param name:user_id type:int require:1 desc:用户id
* @param name:email type:email require:1 desc:邮箱
* @param name:realname type:string require:0 desc:真实姓名
* @param name:phone type:string require:0 desc:电话
*/
public function editChief(){
$data = $this->request->post();
//存入数据
$insert['email'] = trim($data['email']);
$insert['realname'] = isset($data['realname'])?trim($data['realname']):'';
$insert['phone'] = isset($data['phone'])?trim($data['phone']):'';
$this->user_obj->where('user_id',$data['user_id'])->update($insert);
return jsonSuccess([]);
}
/**
* @title 主编期刊对应关系添加
* @description 主编期刊对应关系添加
* @author wangjinlei
* @url /api/Chief/addChiefToJournal
* @method POST
*
* @param name:user_id type:int require:1 desc:用户id
* @param name:journal_id type:int require:1 desc:期刊id
*/
public function addChiefToJournal(){
$data = $this->request->post();
$insert['user_id'] = $data['user_id'];
$insert['journal_id'] = $data['journal_id'];
$this->chief_to_journal_obj->insert($insert);
return jsonSuccess([]);
}
/**
* @title 获取期刊详情
* @description 获取期刊详情
* @author wangjinlei
* @url /api/Chief/getJournalDetail
* @method POST
*
* @param name:journal_id type:int require:1 desc:期刊id
*/
public function getJournalDetail(){
$data = $this->request->post();
$journal = $this->journal_obj->where('journal_id',$data['journal_id'])->find();
$re['journal'] = $journal;
return jsonSuccess($re);
}
/**
* @title 删除主编期刊对应关系
* @description 删除主编期刊对应关系
* @author wangjinlei
* @url /api/Chief/delChiefToJournal
* @method POST
*
* @param name:ctj_id type:int require:1 desc:关系表id
*/
public function delChiefToJournal(){
$data = $this->request->post();
$this->chief_to_journal_obj->where('ctj_id',$data['ctj_id'])->update(['state'=>1]);
return jsonSuccess([]);
}
/**
* @title 获取期刊列表for主编
* @description 获取期刊列表for主编
* @author wangjinlei
* @url /api/Chief/getJournalForChief
* @method POST
*/
public function getJournalForChief(){
$list = $this->journal_obj->where('state',0)->select();
foreach ($list as $k => $v){
//获取期刊对应主编
$ca = $this->chief_to_journal_obj->field('t_user.*,t_chief_to_journal.*')->join('t_user','t_user.user_id = t_chief_to_journal.user_id','LEFT')->where('t_chief_to_journal.journal_id',$v['journal_id'])->where('t_chief_to_journal.state',0)->select();
$list[$k]['chief'] = $ca;
}
$re['journals'] = $list;
return jsonSuccess($re);
}
/**
* @title 增加期刊编委
* @description 增加期刊编委
* @author wangjinlei
* @url /api/Chief/addJournalBoard
* @method POST
*
* @param name:account type:string require:1 desc:主编账号
* @param name:journal_id type:int require:1 desc:期刊id
* @param name:password type:string require:1 desc:密码
* @param name:email type:string require:1 desc:邮箱
* @param name:realname type:string require:0 desc:真实姓名
* @param name:phone type:string require:0 desc:电话
*/
public function addJournalBoard(){
$data = $this->request->post();
$check = $this->user_obj->where('account',trim($data['account']))->where('email',trim($data['email']))->where('state',0)->find();
if($check){
return jsonError('Account or Email has been register!');
}
$insert['account'] = trim($data['account']);
$insert['email'] = trim($data['email']);
$insert['password'] = md5(trim($data['password']));
$insert['realname'] = isset($data['realname'])?trim($data['realname']):'';
$insert['phone'] = isset($data['phone'])?trim($data['phone']):'';
$insert['type'] = 4;
$insert['ctime'] = time();
$uid = $this->user_obj->insertGetId($insert);
//添加对应关系
$to_insert['user_id'] = $uid;
$to_insert['journal_id'] = $data['journal_id'];
$this->board_to_journal_obj->insert($to_insert);
return jsonSuccess([]);
}
/**
* @title 增加期刊编委对应关系
* @description 增加期刊编委对应关系
* @author wangjinlei
* @url /api/Chief/addJournalBoardHas
* @method POST
*
* @param name:user_id type:int require:1 desc:用户id
* @param name:journal_id type:int require:1 desc:期刊id
*/
public function addJournalBoardHas(){
$data = $this->request->post();
$check = $this->board_to_journal_obj->where('user_id',$data['user_id'])->where('journal_id',$data['journal_id'])->where('state',0)->find();
if($check!=null){
return jsonError('has register!');
}
$insert['journal_id'] = $data['journal_id'];
$insert['user_id'] = $data['user_id'];
$this->board_to_journal_obj->insert($insert);
return jsonSuccess([]);
}
/**
* @title 获取编辑对应的期刊列表
* @description 获取编辑对应的期刊列表
* @author wangjinlei
* @url /api/Chief/getJournalsByEditor
* @method POST
*
* @param name:user_id type:int require:1 desc:用户表id
*
* @return journals:期刊列表#
*/
public function getJournalsByEditor(){
$data = $this->request->post();
$list = $this->journal_obj->where('editor_id',$data['user_id'])->where('state',0)->select();
$re['journals'] = $list;
return jsonSuccess($re);
}
/**
* @title 验证用户邮箱是否已注册
* @description 验证用户邮箱是否已注册
* @author wangjinlei
* @url /api/Chief/checkEmailForUser
* @method POST
*
* @param name:email type:string require:1 desc:用户名或邮箱
*
* @return user_info:用户详情#
*/
public function checkEmailForUser(){
$data = $this->request->post();
$user_info = $this->user_obj->where('account|email',$data['email'])->find();
$re['user_info'] = $user_info;
return jsonSuccess($re);
}
/**
* @title 删除期刊编委
* @description 删除期刊编委
* @author wangjinlei
* @url /api/Chief/delJournalBoard
* @method POST
*
* @param name:btj_id type:int require:1 desc:关系表id
*/
public function delJournalBoard(){
$data = $this->request->post();
$this->board_to_journal_obj->where('btj_id',$data['btj_id'])->update(['state'=>1]);
return jsonSuccess([]);
}
/**
* @title 升级审稿人至青年编委
* @description 升级审稿人至青年编委
* @author wangjinlei
* @url /api/Chief/upgradeReviewer
* @method POST
*
* @param name:user_id type:int require:1 desc:用户id
*/
public function upgradeReviewer(){
$data = $this->request->post();
$has = $this->user_obj->where('user_id',$data['user_id'])->find();
if($has['is_reviewer']!=1){
return jsonError('Only reviewer can become young board!');
}
$this->user_obj->where('user_id',$data['user_id'])->update(['is_yboard'=>1]);
return jsonSuccess([]);
}
/**
* @title 获取待审文章列表
* @description 获取待审文章列表
* @author wangjinlei
* @url /api/Chief/getBerevArticle
* @method POST
*
* @param name:journal_id type:int require:1 desc:期刊id
*/
public function getBerevArticle(){
$data = $this->request->post();
//获取送审状态的文章
$article_list = $this->article_obj->where('journal_id',$data['journal_id'])->where('state',2)->select();
$re['article_list'] = $article_list;
return jsonSuccess($re);
}
/**
* @title 添加文章消息
* @description 添加文章消息
* @author wangjinlei
* @url /api/Chief/addMsgForArticle
* @method POST
*
* @param name:article_id type:int require:1 desc:文章id
* @param name:content type:string require:1 desc:内容
* @param name:user_id type:int require:1 desc:发送用户的id
*/
public function addMsgForArticle(){
$data = $this->request->post();
$insert['article_id'] = $data['article_id'];
$insert['user_id'] = $data['user_id'];
$insert['content'] = trim($data['content']);
$insert['ctime'] = time();
$this->chief_msg_obj->insert($insert);
return jsonSuccess([]);
}
/**
* @title 获取文章消息列表
* @description 获取文章消息列表
* @author wangjinlei
* @url /api/Chief/getMsgList
* @method POST
*
* @param name:article_id type:int require:1 desc:文章id
*/
// public function getMsgList(){
// $data = $this->request->post();
// $list = $this->chief_msg_obj->join('t_user','t_user.user_id = t_chief_msg.user_id','LEFT')
// ->where('t_chief_msg.article_id',$data['article_id'])
// ->where('t_chief_msg.state',0)
// ->order('t_chief_msg.ctime desc')
// ->select();
// $re['msgs'] = $list;
//
// return jsonSuccess($re);
// }
/**
* @title 发送文章信息
* @description 发送文章信息
* @author wangjinlei
* @url /api/Chief/pushChiefMsg
* @method POST
*
* @param name:article_id type:int require:1 desc:文章id
* @param name:user_id type:int require:1 desc:发送者用户id
* @param name:content type:string require:1 desc:发送的内容
*/
public function pushChiefMsg(){
$data = $this->request->post();
$insert['article_id'] = $data['article_id'];
$insert['user_id'] = $data['user_id'];
$insert['content'] = trim($data['content']);
$insert['ctime'] = time();
$this->chief_msg_obj->insert($insert);
return jsonSuccess([]);
}
/**
* @title 获取主编详情信息列表
* @description 获取主编详情信息列表
* @author wangjinlei
* @url /api/Chief/getAllChiefMsg
* @method POST
*
* @param name:article_id type:int require:1 desc:文章id
*
* @return msgs:消息列表#
*/
public function getAllChiefMsg(){
$data = $this->request->post();
$msg = $this->chief_msg_obj
->where('t_chief_msg.article_id',$data['article_id'])
->where('t_chief_msg.state',0)
->order('t_chief_msg.chief_msg_id desc')
->select();
foreach ($msg as $k => $v){
$uinfo = $this->user_obj->where('user_id',$v['user_id'])->find();
$msg[$k]['user'] = $uinfo;
$msg[$k]['role'] = $this->getRoleForJournal($uinfo,$data['article_id']);
}
$re['msgs'] = $msg;
return jsonSuccess($re);
}
private function getRoleForJournal($uinfo,$article_id){
$article_info = $this->article_obj->where('article_id',$article_id)->find();
if($uinfo['type']==2){
return 'editor';
}
$reviewer_res = $this->reviewer_to_journal_obj->where('journal_id',$article_info['journal_id'])->where('reviewer_id',$uinfo['user_id'])->where('state',0)->find();
if($reviewer_res!=null){
return 'yboard';
}
// $yboard_res = $this->reviewer_to_journal_obj->where('reviewer_id',$user_info['user_id'])->where('is_yboard',1)->where('state',0)->find();
// if($yboard_res!=null){
// $roles[] = 'yboard';
// }
$chief_res = $this->chief_to_journal_obj->where('journal_id',$article_info['journal_id'])->where('user_id',$uinfo['user_id'])->where('state',0)->find();
if($chief_res != null){
return 'chief';
}
$board_res = $this->board_to_journal_obj->where('journal_id',$article_info['journal_id'])->where('user_id',$uinfo['user_id'])->where('state',0)->find();
if($board_res != null){
return 'board';
}
return 'author';
}
/**
* @title 增加文章编委
* @description 增加文章编委
* @author wangjinlei
* @url /api/Chief/addArticleBoard
* @method POST
*
* @param name:article_id type:int require:1 desc:文章id
* @param name:board_id type:int require:1 desc:user_id用户id
*/
public function addArticleBoard(){
$data = $this->request->post();
$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();
$board_info = $this->user_obj->where('user_id',$data['board_id'])->find();
// $board_rev_info = $this->user_reviewer_info_obj->where("reviewer_id",$board_info['user_id'])->find();
$check = $this->article_to_board_obj->where('article_id',$data['article_id'])->where('board_id',$data['board_id'])->find();
if($check!=null){
return jsonError('Applied!');
}
$insert['article_id'] = $data['article_id'];
$insert['board_id'] = $data['board_id'];
$this->article_to_board_obj->insert($insert);
//发送邮件给编委,并创造直连链接
$tt = $article_info['accept_sn'].'<br>';
$tt .= 'Dear Dr. '.($board_info['realname']==''?$board_info["account"]:$board_info['realname']).'<br>';
$tt .= 'The manuscript entitled “'.$article_info['title'].'”is under fininal decision status of the journal '.$journal_info['title'].'.<br>';
$tt .= '(The manuscripit in fininal decision status has been peer-reviewed, and the authors had revised all review opinions.)<br>';
$tt .= 'The Editor-in-Chief would be most grateful if you could offer an opinion regarding its suitability for publication in the journal '.$journal_info['title'].'.<br>';
$tt .= 'Any comments and decisions you make will be valued by the editorial board and the editor in chief. If you choose not to make a decision on this article, you need not to reply and log in the submission system, we will refer to the opinions of other experts.'
. '<a href="'.$this->creatLoginUrlForBoard($board_info,$article_info['article_id']).'">Plese click here</a><br>';
$tt .= 'Please bring into our knowledge if there is any potential Conflict of Interest.<br><br><br>';
$tt .= 'Thank you for your consideration.<br>';
$tt .= 'Look forward for your reply.<br>';
$tt .= 'ReviewerCenter<br>';
$tt .= 'Your username:'.$board_info['realname'].'<br><br>';
$tt .= 'Sincerely,<br>';
$tt .= 'Editorial Office<br>';
$tt .= $journal_info['title'].'<br>';
$tt .= 'Email: '.$journal_info['email'].'<br>';
$tt .= 'Website: '.$journal_info['website'];
$maidata['email'] = $board_info['email'];
$maidata['title'] = $journal_info['title'];
$maidata['content'] = $tt;
$maidata['tmail'] = $journal_info['email'];
$maidata['tpassword'] = $journal_info['epassword'];
Queue::push( 'app\api\job\mail@fire' , $maidata , "tmail" );
$sendUser=[
'title'=>$journal_info['title'], // 邮件标题
'content'=>$tt,//邮件内容
'user_id'=>$board_info['user_id'], //收件人ID
'email'=>$board_info['email'],// 收件人邮箱
'journal_id'=>$journal_info['journal_id'], // 期刊ID
'sendEmail'=>$journal_info['email'], // 期刊邮箱
'sendPassword'=>$journal_info['epassword'], // 期刊密码
'from_name'=>'TMR'
];
// Queue::push('app\api\job\domail@fire',$sendUser,'domail');
return jsonSuccess([]);
}
private function creatLoginUrlForBoard($user,$article_id){
$code = md5(time().rand(1000,9999).'thinkphp');
$insert['user_id'] = $user['user_id'];
$insert['code'] = $code;
$insert['ctime'] = time();
$this->login_auto_obj->insert($insert);
$url = 'https://submission.tmrjournals.com/edit_text?Art_id='.$article_id.'&act='.$code;
return $url;
}
/**
* @title 删除文章编委
* @description 删除文章编委
* @author wangjinlei
* @url /api/Chief/delArticleBoard
* @method POST
*
* @param name:article_board_id type:int require:1 desc:id号
*/
public function delArticleBoard(){
$data = $this->request->post();
$this->article_to_board_obj->where('article_board_id',$data['article_board_id'])->update(['state'=>1]);
return jsonSuccess([]);
}
/**
* @title 获取文章编委列表
* @description 获取文章编委列表
* @author wangjinlei
* @url /api/Chief/getArticleBoard
* @method POST
*
* @param name:article_id type:int require:1 desc:文章id
*
* @return boards:编委列表#
*/
public function getArticleBoard(){
$data = $this->request->post();
$list = $this->article_to_board_obj
->field('t_user.*,t_reviewer_major.ctitle major_title,t_user_reviewer_info.field field')
->join('t_user','t_user.user_id = t_article_to_board.board_id','left')
->join('t_user_reviewer_info','t_user_reviewer_info.reviewer_id = t_user.user_id','left')
->join('t_reviewer_major','t_reviewer_major.major_id = t_user_reviewer_info.major','left')
->where('t_article_to_board.article_id',$data['article_id'])
->where('t_article_to_board.state',0)->select();
$re['boards'] = $list;
return jsonSuccess($re);
}
/**
* @title 获取文章编委池
* @description 获取文章编委池
* @author wangjinlei
* @url /api/Chief/getAllArticleBoards
* @method POST
*
* @param name:journal_id type:int require:1 desc:期刊id
* @param name:pageIndex type:int require:1 desc:当前页码
* @param name:pageSize type:int require:1 desc:每个页面的数据条数
*
* @return boards:编委池#
*/
public function getAllArticleBoards(){
$data = $this->request->post();
$limit_start = ($data['pageIndex'] - 1) * $data['pageSize'];
$list = $this->board_to_journal_obj
->field('t_user.*,t_reviewer_major.ctitle major_title,t_user_reviewer_info.field field')
->join('t_user','t_user.user_id = t_board_to_journal.user_id')
->join('t_user_reviewer_info','t_user_reviewer_info.reviewer_id = t_user.user_id','left')
->join('t_reviewer_major','t_reviewer_major.major_id = t_user_reviewer_info.major','left')
->where('t_board_to_journal.journal_id',$data['journal_id'])
->where('t_board_to_journal.state',0)
->limit($limit_start,$data['pageSize'])
->select();
$count = $this->board_to_journal_obj
->where('t_board_to_journal.journal_id',$data['journal_id'])
->where('t_board_to_journal.state',0)
->count();
$re['boards'] = $list;
$re['count'] = $count;
return jsonSuccess($re);
}
/**
* @title 获取期刊编委列表
* @description 获取期刊编委列表
* @author wangjinlei
* @url /api/Chief/getJournalBoard
* @method POST
*
* @param name:journal_id type:int require:1 desc:期刊id
*/
public function getJournalBoard(){
$data = $this->request->post();
$boards = $this->board_to_journal_obj->join('t_user','t_user.user_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();
$re['boards']=$boards;
return jsonSuccess($re);
}
private function getUserRoles($account) {
$user_info = $this->user_obj->where('account',$account)->find();
if($user_info['type']==2){
$ros[] = 'editor';
return $ros;
}
$roles[] = 'author';
$reviewer_res = $this->reviewer_to_journal_obj->where('reviewer_id',$user_info['user_id'])->where('state',0)->find();
if($reviewer_res!=null){
$roles[] = 'reviewer';
}
$yboard_res = $this->reviewer_to_journal_obj->where('reviewer_id',$user_info['user_id'])->where('is_yboard',1)->where('state',0)->find();
if($yboard_res!=null){
$roles[] = 'yboard';
}
$chief_res = $this->chief_to_journal_obj->where('user_id',$user_info['user_id'])->where('state',0)->find();
if($chief_res != null){
$roles[] = 'chief';
}
$board_res = $this->board_to_journal_obj->where('user_id',$user_info['user_id'])->where('state',0)->find();
if($board_res != null){
$roles[] = 'board';
}
return $roles;
}
}