192 lines
6.7 KiB
PHP
192 lines
6.7 KiB
PHP
<?php
|
|
|
|
namespace app\api\controller;
|
|
|
|
use think\Controller;
|
|
use think\Db;
|
|
use think\Queue;
|
|
use think\Validate;
|
|
|
|
class Email extends Controller{
|
|
|
|
protected $article_obj = '';
|
|
protected $user_obj = '';
|
|
protected $user_act_obj = '';
|
|
protected $journal_obj = '';
|
|
protected $user_log_obj = '';
|
|
protected $user_reviewer_info_obj = '';
|
|
protected $reviewer_major_obj = '';
|
|
protected $reviewer_to_journal_obj = '';
|
|
protected $article_reviewer_question_obj = '';
|
|
protected $article_msg_obj = '';
|
|
protected $article_file_obj = '';
|
|
protected $article_reviewer_obj = '';
|
|
protected $article_author_obj = '';
|
|
protected $article_transfer_obj = '';
|
|
protected $chief_to_journal_obj = '';
|
|
protected $login_auto_obj = '';
|
|
protected $major_obj = "";
|
|
protected $major_to_journal_obj = '';
|
|
protected $reviewer_from_author_obj = '';
|
|
protected $article_dialog_obj = '';
|
|
protected $article_proposal_obj = '';
|
|
protected $article_response_to_reviewer_obj = '';
|
|
protected $user_black_obj = '';
|
|
protected $user_reviewer_recommend_obj = '';
|
|
protected $email_log_obj = '';
|
|
protected $email_template_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->user_reviewer_info_obj = Db::name("user_reviewer_info");
|
|
$this->reviewer_major_obj = Db::name('reviewer_major');
|
|
$this->reviewer_to_journal_obj = Db::name('reviewer_to_journal');
|
|
$this->article_reviewer_question_obj = Db::name('article_reviewer_question');
|
|
$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->chief_to_journal_obj = Db::name('chief_to_journal');
|
|
$this->login_auto_obj = Db::name('login_auto');
|
|
$this->major_obj = Db::name("major");
|
|
$this->major_to_journal_obj = Db::name('major_to_journal');
|
|
$this->reviewer_from_author_obj = Db::name("reviewer_from_author");
|
|
$this->article_dialog_obj = Db::name('article_dialog');
|
|
$this->article_proposal_obj = Db::name('article_proposal');
|
|
$this->article_response_to_reviewer_obj = Db::name('article_response_to_reviewer');
|
|
$this->user_black_obj = Db::name('user_black');
|
|
$this->user_reviewer_recommend_obj = Db::name('user_reviewer_recommend');
|
|
$this->email_log_obj = Db::name('email_log');
|
|
$this->email_template_obj = Db::name('email_template');
|
|
}
|
|
|
|
/**
|
|
* 添加邮件模板
|
|
*/
|
|
public function addEmailTemplate(){
|
|
$data = $this->request->post();
|
|
$rule = new Validate([
|
|
'etitle'=>'require',
|
|
'epid'=>'require',
|
|
]);
|
|
if(!$rule->check($data)){
|
|
return jsonError($rule->getError());
|
|
}
|
|
$insert['etitle'] = $data['etitle'];
|
|
$insert['epid'] = $data['epid'];
|
|
$insert['econtent'] = isset($data['econtent'])?$data['econtent']:'';
|
|
$this->email_template_obj->insert($insert);
|
|
return jsonSuccess([]);
|
|
}
|
|
|
|
/**
|
|
* 删除邮件模板
|
|
*/
|
|
public function delEmailTemplate(){
|
|
$data = $this->request->post();
|
|
$rule = new Validate([
|
|
'eid'=>'require'
|
|
]);
|
|
if(!$rule->check($data)){
|
|
return jsonError($rule->getError());
|
|
}
|
|
$info = $this->email_template_obj->where('eid',$data['eid'])->find();
|
|
if($info['epid']==0){
|
|
$check = $this->email_template_obj->where('epid',$info['eid'])->where('estate',0)->find();
|
|
if($check){
|
|
return jsonError('Please delete all subitems first!');
|
|
}
|
|
}
|
|
$this->email_template_obj->where('eid',$data['eid'])->update(['estate'=>1]);
|
|
return jsonSuccess([]);
|
|
}
|
|
|
|
/**
|
|
* 获取全部邮件模板
|
|
*/
|
|
public function getAllEmailTemplate(){
|
|
$list = $this->email_template_obj->where('epid',0)->where('estate',0)->select();
|
|
foreach($list as $k => $v){
|
|
$cache = $this->email_template_obj->where('epid',$v['eid'])->where('estate',0)->select();
|
|
$list[$k]['children'] = $cache;
|
|
}
|
|
$re['templates'] = $list;
|
|
return jsonSuccess($re);
|
|
}
|
|
|
|
/**
|
|
* 获取邮件模板
|
|
*/
|
|
public function getEmailTemplate(){
|
|
$data = $this->request->post();
|
|
$rule = new Validate([
|
|
'eid'=>'require'
|
|
]);
|
|
if(!$rule->check($data)){
|
|
return jsonError($rule->getError());
|
|
}
|
|
$info = $this->email_template_obj->where('eid',$data['eid'])->where('estate',0)->find();
|
|
$re['template'] = $info;
|
|
return jsonSuccess($re);
|
|
}
|
|
|
|
/**
|
|
* 发送模板邮件
|
|
*/
|
|
public function pushEmailOnTemplate(){
|
|
$data = $this->request->post();
|
|
$rule = new Validate([
|
|
'email'=>'require',
|
|
'content'=>'require',
|
|
'article_id'=>'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();
|
|
|
|
|
|
$maidata['email'] = $data['email'];
|
|
$maidata['title'] = $journal_info['title'];
|
|
$maidata['content'] = $data['content'];
|
|
$maidata['tmail'] = $journal_info['email'];
|
|
$maidata['tpassword'] = $journal_info['epassword'];
|
|
$maidata['article_id'] = $data['article_id'];
|
|
$maidata['attachmentFile'] = (isset($data['attachment'])&&$data['attachment']!='')?ROOT_PATH . 'public' . DS . $data['attachment']:'';
|
|
|
|
Queue::push('app\api\job\mail@tgpu', $maidata, "tmail");
|
|
|
|
return jsonSuccess([]);
|
|
|
|
}
|
|
|
|
public function tttt(){
|
|
$str = "home".DS."ds".DS."12312321.jpg";
|
|
echo substr($str,strrpos($str,DS)+1);
|
|
}
|
|
|
|
|
|
/**
|
|
* 上传文章的文件
|
|
*/
|
|
public function up_enclosure_file() {
|
|
$file = request()->file("enclosure");
|
|
if ($file) {
|
|
$info = $file->move(ROOT_PATH . 'public' . DS . 'enclosure');
|
|
if ($info) {
|
|
return json(['code' => 0, 'upurl' => str_replace("\\", "/", $info->getSaveName())]);
|
|
} else {
|
|
return json(['code' => 1, 'msg' => $file->getError()]);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
} |