Files
tougao/application/api/controller/Email.php
wangjinlei a215aae054 1
2024-05-17 10:20:41 +08:00

260 lines
9.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
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\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 addEmailTemplateNum(){
$data = $this->request->post();
$rule = new Validate([
'eid'=>'require'
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$this->email_template_obj->where('eid',$data['eid'])->setInc('num');
return jsonSuccess([]);
}
/**
* 发送模板邮件
*/
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 lsPushEmail(){
$journal_info = $this->journal_obj->where("journal_id",1)->find();
$list[] = "751475802@qq.com";
$list[] = "17627882183@163.com";
// $list = $this->user_obj->where("state",0)->select();
// echo "<pre>";
// var_dump($list);
// echo "</pre>";
// die;
$tt = "Dear <br/>
Hope this email finds you well.<br/>
We have good news to share with you: On May 15, 2024, Traditional Medicine Research received notification from the Scopus Review Committee: the journal has passed the rigorous review of the Scopus Content Selection & Advisory Board (CSAB) and has been officially indexed in the Scopus database! The review highly praised the academic quality of the journals articles and our significant progress over the years. This inclusion signifies international recognition of Traditional Medicine Research in terms of academic level and publishing quality, which is crucial for enhancing the journals international impact.<br/>
As of now, the databases that index Traditional Medicine Research include: ESCI, Scopus, ROAD, Embase, ScienceGate, ProQuest, Google Scholar, and so on.<br/>
For more details about the journal, please click on the official website link below:<br/>
https://www.tmrjournals.com/tmr/<br/><br/>
Best regards.<br/>
Editorial Office<br/>
Traditional Medicine Research";
foreach ($list as $v){
// $maidata['email'] = $v['email'];
$maidata['email'] = $v;
$maidata['title'] = "Great news! Traditional Medicine Research has been formally indexed in the Scopus database";
$maidata['content'] = $tt;
$maidata['has_hb'] = 1;
// $maidata['tmail'] = $journal_info['email'];
// $maidata['tpassword'] = $journal_info['epassword'];
aliemail($maidata['email'],$maidata['title'],$maidata['content'],$maidata['has_hb']);
// Queue::push('app\api\job\mail@promotion', $maidata, "tmail");
}
echo "ok";
}
/**
* 获取邮件发送记录通过文章
*/
public function getEmailsByArticle(){
$data = $this->request->post();
$rule = new Validate([
'article_id'=>'require'
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$list = $this->email_log_obj->where('article_id',$data['article_id'])->where('is_success',1)->select();
$re['emails'] = $list;
return jsonSuccess($re);
}
/**
* 上传文章的文件
*/
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()]);
}
}
}
}