From cff82c6c25e07425df99827de3be790bb366f89e Mon Sep 17 00:00:00 2001 From: wangjinlei <751475802@qq.com> Date: Sun, 9 Jan 2022 08:57:19 +0800 Subject: [PATCH] 20201112 --- application/api/controller/Article.php | 24 ++++ application/api/controller/Journal.php | 5 +- application/api/job/mail.php | 11 ++ application/common.php | 61 +++++++++++ application/master/controller/Datebase.php | 121 ++++++++++++++++++++- application/master/controller/Journal.php | 6 +- application/super/controller/Publish.php | 1 + 7 files changed, 224 insertions(+), 5 deletions(-) diff --git a/application/api/controller/Article.php b/application/api/controller/Article.php index b589017..1f1da7a 100644 --- a/application/api/controller/Article.php +++ b/application/api/controller/Article.php @@ -109,6 +109,28 @@ class Article extends Controller { return jsonSuccess($re); } + /** + * @title 获取文章话题 + * @description 获取文章话题 + * @author wangjinlei + * @url /api/Article/getTopicsForArticle + * @method POST + * + * @param name:article_id type:int require:1 desc:文章id + * + * @return topics:话题列表# + */ + public function getTopicsForArticle(){ + $data = $this->request->post(); + $list = $this->article_to_topic_obj + ->field("j_journal_topic.*") + ->join("j_journal_topic","j_journal_topic.journal_topic_id = j_article_to_topic.topic_id","left") + ->where("j_article_to_topic.article_id",$data['article_id']) + ->where('j_article_to_topic.state',0) + ->select(); + $re['topics'] = $list; + return jsonSuccess($re); + } public function mytest(){ $article_info = $this->article_obj->where('article_id',1689)->find(); @@ -194,8 +216,10 @@ class Article extends Controller { ->limit($limit_start,$data['pageSize']) ->select(); $count = $this->article_to_topic_obj + ->join(array(['j_article', 'j_article_to_topic.article_id = j_article.article_id', 'LEFT'], ['j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT'])) ->where('j_article_to_topic.topic_id', $data['topic_id']) ->where('j_article_to_topic.state', 0) + ->where('j_journal_stage.stage_year','>',intval(date('Y'))-3) ->count(); //获取作者 foreach ($list as $k => $v) { diff --git a/application/api/controller/Journal.php b/application/api/controller/Journal.php index bc8b3bf..6f519c8 100644 --- a/application/api/controller/Journal.php +++ b/application/api/controller/Journal.php @@ -390,7 +390,7 @@ class Journal extends Controller { $data = $this->request->post(); $list = []; if($data['journal_topic_id'] == 0){ - $journals = $this->journal_obj->where('state',0)->select(); + $journals = $this->journal_obj->where('state',0)->order("sort desc")->select(); foreach ($journals as $k => $v){ $topic_info = $this->journal_topic_obj->where('journal_id',$v['journal_id'])->where('title','Topics')->where('state',0)->find(); $cache = $this->journal_topic_obj->where('parent_id',$topic_info['journal_topic_id'])->where('state',0)->limit(5)->select(); @@ -406,6 +406,7 @@ class Journal extends Controller { ->where('j_journal_topic.parent_id','in',$tpids) ->where('j_journal_topic.title',$topic_info['title']) ->where('j_journal_topic.state',0) + ->order("j_journal.sort desc") ->select(); $list = $journals; } @@ -443,7 +444,7 @@ class Journal extends Controller { } $ids = $this->article_to_topic_obj->where('topic_id','in',$topicids)->where('state',0)->column('article_id'); $list = $this->article_obj - ->field('j_article.*,j_journal_stage.*,j_journal.title journal_title') + ->field('j_article.*,j_journal_stage.*,j_journal.jabbr,j_journal.usx,j_journal.title journal_title') ->join('j_journal','j_article.journal_id = j_journal.journal_id','left') ->join('j_journal_stage','j_article.journal_stage_id = j_journal_stage.journal_stage_id','left') ->where('j_article.article_id','in',$ids) diff --git a/application/api/job/mail.php b/application/api/job/mail.php index 7dd203e..ec542a6 100644 --- a/application/api/job/mail.php +++ b/application/api/job/mail.php @@ -26,6 +26,12 @@ class mail { // } } + public function puchAndFJ(Job $job, $data){ + $res = $this->sendFJ($data); + $job->delete(); + } + + public function propa(Job $job, $data){ $res = $this->push($data); $job->delete(); @@ -54,5 +60,10 @@ class mail { } } + + + public function sendFJ($data){ + sendEmail_data($data['email'],$data['title'],$data['fromname'],$data['content'],$data['temail'],$data['tpassword'],$data["fj"]); + } } diff --git a/application/common.php b/application/common.php index 4e3b2b6..922940b 100644 --- a/application/common.php +++ b/application/common.php @@ -130,6 +130,67 @@ function sendEmail($email = '', $title = '', $from_name = '', $content = '', $me return ['status' => $status, 'data' => $data]; //返回值(可选) } +function sendEmail_data($email = '', $title = '', $from_name = '', $content = '', $memail = '', $mpassword = '', $attachmentFile = '') { + ini_set('memory_limit','3200M'); + date_default_timezone_set('PRC'); + //Create a new PHPMailer instance + $mail = new PHPMailer; + //Tell PHPMailer to use SMTP + $mail->isSMTP(); + //Enable SMTP debugging + // 0 = off (for production use) + // 1 = client messages + // 2 = client and server messages + $mail->SMTPDebug = 0; + //Ask for HTML-friendly debug output + $mail->Debugoutput = 'html'; + //charset + $mail->CharSet = 'UTF-8'; + //Set the hostname of the mail server + $mail->Host = "smtp.qiye.aliyun.com"; //请填写你的邮箱服务器 + //Set the SMTP port number - likely to be 25, 465 or 587 + $mail->Port = 25; //端口号 + //Whether to use SMTP authentication + $mail->SMTPAuth = true; + //Username to use for SMTP authentication + $mail->Username = $memail == '' ? "tmrweb@tmrjournals.com" : $memail; //发件邮箱用户名 + //Password to use for SMTP authentication + $mail->Password = $mpassword == '' ? "Wu999999tmrwe" : $mpassword; //发件邮箱密码 + //Set who the message is to be sent from + $mail->setFrom($memail == '' ? "tmrweb@tmrjournals.com" : $memail, $from_name); + //Set an alternative reply-to address(用户直接回复邮件的地址) + $mail->addReplyTo($memail == '' ? "tmrweb@tmrjournals.com" : $memail, $from_name); + //Set who the message is to be sent to + $mail->addAddress($email); + //Set the subject line + $mail->Subject = $title; + //Read an HTML message body from an external file, convert referenced images to embedded, + //convert HTML into a basic plain-text alternative body + $mail->msgHTML($content); + //Replace the plain text body with one created manually + $mail->AltBody = ''; +// if (is_array($attachmentFile)) { +// for ($i = 0; $i < count($attachmentFile); $i++) { +// $mail->addAttachment($attachmentFile[$i], 'thanks.pdf' . $i); //这里可以是多维数组,然后循环附件的文件和名称 +// } +// } else { + if ($attachmentFile != '') { + //Attach an image file + $mail->addAttachment($attachmentFile, 'journal.zip'); + } +// } + //send the message, check for errors + if (!$mail->send()) { + $status = 0; + $data = "邮件发送失败" . $mail->ErrorInfo; + ; + } else { + $status = 1; + $data = "邮件发送成功"; + } + return ['status' => $status, 'data' => $data]; //返回值(可选) +} + function sendEmail1($email = '', $title = '', $from_name = '', $content = '', $memail = '', $mpassword = '', $attachmentFile = '') { date_default_timezone_set('PRC'); //Create a new PHPMailer instance diff --git a/application/master/controller/Datebase.php b/application/master/controller/Datebase.php index a021a2c..4a7314b 100644 --- a/application/master/controller/Datebase.php +++ b/application/master/controller/Datebase.php @@ -2,7 +2,7 @@ namespace app\master\controller; use think\Controller; use think\Db; - +use think\Queue; /** * @title 数据库接口 * @description 数据库接口 @@ -14,6 +14,7 @@ class Datebase extends Controller{ protected $journal_obj = ''; protected $article_obj = ''; protected $journal_topic_obj = ''; + protected $article_author_obj = ''; protected $journal_stage_obj = ''; protected $journal_line_obj = ''; protected $journal_notices_obj = ''; @@ -32,6 +33,7 @@ class Datebase extends Controller{ $this->journal_obj = Db::name('journal'); $this->article_obj = Db::name('article'); $this->journal_topic_obj = Db::name('journal_topic'); + $this->article_author_obj = Db::name('article_author'); $this->journal_stage_obj = Db::name('journal_stage'); $this->journal_line_obj = Db::name('journal_line'); $this->journal_notices_obj = Db::name('journal_notices'); @@ -205,4 +207,121 @@ class Datebase extends Controller{ } } } + + /** + * @title 提交数据库 + * @description 提交数据库 + * @author wangjinlei + * @url /master/Datebase/dataPush + * @method POST + * + * @param name:journal_stage_id type:int require:1 desc:分期id + * + */ + public function dataPush(){ + $data = $this->request->post(); +// $data["journal_stage_id"] = 297; + $stage_info = $this->journal_stage_obj->where("journal_stage_id",$data["journal_stage_id"])->find(); + $this->createEmailFile($data["journal_stage_id"]); + $journal_info = $this->journal_obj->where("journal_id",$stage_info["journal_id"])->find(); + $zipfile = ROOT_PATH."public/dataFile/".$data["journal_stage_id"].'/'.$data["journal_stage_id"].'.zip'; + $tt = "Dear Database,

"; + $tt .= "Please find the PDF files in attachment of published issue (Vol. ".$stage_info['stage_vol'].", No.".$stage_info['stage_no'].") of ".$journal_info['title'].".

"; + $tt .= "Yours Sincerely
"; + $tt .= "Dan Chen
"; + $tt .= "Manager
"; + $tt .= "TMR Publishing Group | Editorial Office | New Zealand
"; + $tt .= "Telephone: +64 02108293806
"; + $tt .= "Email: publisher@tmrjournals.com
"; + $tt .= "Website:www.tmrjournals.com"; + + $elist = []; + $elist[] = "jgatelicensing@informaticsglobal.com"; + $elist[] = "3601240974@qq.com"; + if($journal_info["journal_id"]==1){ + $elist[] = "958518573@qq.com"; + $elist[] = "swyy2@wanfangdata.com.cn"; + } + $elist[] = "3097953993@qq.com"; + $elist[] = "849192806@qq.com";//皮皮 + $elist[] = "751475802@qq.com";//我 + foreach ($elist as $v){ + $cdata['email'] = $v; + $cdata['title'] = "Data submitted-TMR Publishing Group"; + $cdata["fromname"] = "Data submitted-TMR Publishing Group"; + $cdata["content"] = $tt; + $cdata["temail"] = $journal_info['email']; + $cdata["tpassword"] = $journal_info['epassword']; + $cdata["fj"] = $zipfile; + Queue::push('app\api\job\mail@puchAndFJ', $cdata, "mail"); +// sendEmail_data($v, "Data submitted-TMR Publishing Group", "Data submitted-TMR Publishing Group", $tt, $journal_info['email'], $journal_info['epassword'],$zipfile); + } + + return jsonSuccess([]); + + } + + + + private function createEmailFile($journal_stage_id){ + $url = "http://ts.tmrjournals.com/api/dataApi/createTemplate"; + //查找分期信息 + $stage_info = $this->journal_stage_obj->where("journal_stage_id",$journal_stage_id)->find(); + $journal_info = $this->journal_obj->where("journal_id",$stage_info["journal_id"])->find(); + $re['issue'] = $stage_info['issue_date'].", Volume ".$stage_info['stage_vol']." Issue ".$stage_info["stage_no"]; + $adate = []; + $alist = $this->article_obj->where("journal_stage_id",$journal_stage_id)->where("state",0)->order("npp")->select(); + foreach ($alist as $k => $v){ + $cache["type"] = $v["type"]; + $cache["npp"] = $v["npp"]; + $cache["title"] = $v["title"]; + $cache["author"] = $this->getAuthor($v); + $adate[] = $cache; + } + $re["date_list"] = json_encode($adate); + $res = myPost($url, $re); + $r = object_to_array(json_decode($res)); + $file = $r['data']["file"]; + //创建目录加压缩操作 + $base_dir = ROOT_PATH."public/dataFile/".$stage_info["journal_stage_id"]; + if(!is_dir($base_dir)){ + @mkdir($base_dir); + } + $zip = new \ZipArchive; + $zip->open($base_dir.'/'.$stage_info["journal_stage_id"].'.zip', \ZipArchive::CREATE); + copy('http://ts.tmrjournals.com/upload/'.$file,$base_dir.'/'.$stage_info["journal_stage_id"].".docx"); + $zip->addFile($base_dir.'/'.$stage_info["journal_stage_id"].".docx","Contents.docx"); + foreach ($alist as $k=>$v){ + copy("https://www.tmrjournals.com/public/articlePDF/".$v['file_pdf'],$base_dir.'/'.$v["npp"].".pdf"); + $zip->addFile($base_dir.'/'.$v["npp"].".pdf",$v["npp"].".pdf"); + } + //添加封面图片 + copy("https://www.tmrjournals.com/public/journalicon/".$journal_info["icon"],$base_dir."/journal.jpg"); + $zip->addFile($base_dir."/journal.jpg","journal.jpg"); + $zip->close(); + } + + + + + + + + + private function getAuthor($article) { + $where['article_id'] = $article['article_id']; + $where['state'] = 0; + $list = $this->article_author_obj->where($where)->select(); + $frag = ''; + foreach ($list as $k => $v) { + $frag = $frag == '' ? '' . $v['author_name'] : $frag . ', ' . $v['author_name']; + } + return $frag; + } + + + + + + } diff --git a/application/master/controller/Journal.php b/application/master/controller/Journal.php index 3524948..3067467 100644 --- a/application/master/controller/Journal.php +++ b/application/master/controller/Journal.php @@ -1079,9 +1079,10 @@ class Journal extends Controller { } public function myttt(){ - $this->msg_subscript_journal(5, 1); +// $this->msg_subscript_journal(320, 1); } + private function msg_subscript_journal($journal_stage_id,$journal_id){ $articles = $this->article_obj->where('journal_stage_id',$journal_stage_id)->where('state',0)->select(); $stage_info = $this->journal_stage_obj->where('journal_stage_id', $journal_stage_id)->find(); @@ -1124,7 +1125,8 @@ class Journal extends Controller { $maidata['title'] = $journal_info['title']; $maidata['content'] = $cache; $maidata['tmail'] = 'publicrelations@tmrjournals.com'; - $maidata['tpassword'] = '999999Wu'; + $maidata['tpassword'] = 'pRWU999999'; +// sendEmail($maidata['email'],$maidata['title'],$maidata['title'],$maidata['content'],$maidata['tmail'],$maidata['tpassword']); Queue::push('app\api\job\mail@fire', $maidata, "mail"); echo $v['email']; } diff --git a/application/super/controller/Publish.php b/application/super/controller/Publish.php index 20e5bc8..b089f3e 100644 --- a/application/super/controller/Publish.php +++ b/application/super/controller/Publish.php @@ -243,6 +243,7 @@ class Publish extends Controller { * @dates SUBJOURNAL:订阅期刊数 * @dates SUBTOPIC:订阅话题数 * @dates LYL:录用率 + * @dates JST:接收时间 * @dates CC:查重 * @dates WS:外审 * @dates SJ:时间