Files
tougao/application/api/controller/Email.php
wangjinlei 29c6b4c627 1
2022-08-23 15:20:37 +08:00

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()]);
}
}
}
}