1
This commit is contained in:
@@ -39,6 +39,7 @@ class Article extends Controller {
|
||||
protected $user_reviewer_recommend_obj = '';
|
||||
protected $email_log_obj = '';
|
||||
protected $email_template_obj = '';
|
||||
protected $production_article_obj = '';
|
||||
|
||||
public function __construct(\think\Request $request = null) {
|
||||
parent::__construct($request);
|
||||
@@ -68,6 +69,7 @@ class Article extends Controller {
|
||||
$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');
|
||||
$this->production_article_obj = Db::name('production_article');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -132,10 +134,37 @@ class Article extends Controller {
|
||||
->where('t_article_transfer.state', 2)
|
||||
->find();
|
||||
$res[$key]['transinfo'] = $transfer_info;
|
||||
|
||||
|
||||
//对于接受的文章查询后续状态
|
||||
$proof_state = 0;
|
||||
if($val['state']==5){
|
||||
proofState($val['article_id']);
|
||||
$p_info = $this->production_article_obj->where('article_id',$val['article_id'])->where('state',0)->find();
|
||||
if($p_info&&$p_info['proof_state']==1){
|
||||
$proof_state = 1;
|
||||
}
|
||||
}
|
||||
$res[$key]['proof'] = $proof_state;
|
||||
}
|
||||
|
||||
//返回数据
|
||||
return json(['total' => $count, 'data' => $res]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取proof的详情
|
||||
*/
|
||||
public function getProofDetail(){
|
||||
$data = $this->request->post();
|
||||
$rule = new Validate([]);
|
||||
if(!$rule->check($data)){
|
||||
return jsonError($rule->getError());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -924,6 +924,128 @@ class Production extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 开始proof
|
||||
*/
|
||||
public function pushProof(){
|
||||
$data = $this->request->post();
|
||||
$rule = new Validate([
|
||||
'p_article_id'=>'require'
|
||||
]);
|
||||
if(!$rule->check($data)){
|
||||
return jsonError($rule->getError());
|
||||
}
|
||||
$p_info = $this->production_article_obj->where('p_article_id',$data['p_article_id'])->find();
|
||||
$article_info = $this->article_obj->where('article_id',$p_info['article_id'])->find();
|
||||
$journal_info = $this->journal_obj->where('journal_id',$article_info['journal_id'])->find();
|
||||
$user_info = $this->user_obj->where('user_id',$article_info['user_id'])->find();
|
||||
$this->pdfAddProof($p_info['article_id']);
|
||||
if($p_info['file_pdf']==''){
|
||||
return jsonError('To the editor: PROOF is the final form before the article goes online. The PROOF link step not be opened if you have not completed the previous steps.');
|
||||
}
|
||||
//发送邮件
|
||||
$tt = "Dear Author,<br/><br/>";
|
||||
$tt .= "Please confirm proof of your manuscript on the submission website within 48 hours. (https://submission.tmrjournals.com)<br/><br/>";
|
||||
$tt .= "<a href=''>Click here to confirm the proof.</a><br/>";
|
||||
$tt .= "<a href=''>Click here to make changes based on this version.</a><br/><br/>";
|
||||
$tt .= "If your response is not received, we will regard the author's consent to the version if the time exceeds.<br/><br/>";
|
||||
$tt .= "If you have any questions, please feel free to contact us.<br/>";
|
||||
$tt .= "Note: Double-check the authors' information carefully to ensure they are correct.";
|
||||
|
||||
|
||||
$maidata['email'] = $user_info['email'];
|
||||
$maidata['title'] = "PROOF|".$journal_info['title'];
|
||||
$maidata['content'] = $tt;
|
||||
$maidata['tmail'] = $journal_info['email'];
|
||||
$maidata['tpassword'] = $journal_info['epassword'];
|
||||
$file = ROOT_PATH . 'public' . DS.'proofPDF'.DS.$p_info['article_id'].'.pdf';
|
||||
sendEmail($maidata['email'],$maidata['title'],$journal_info['title'],$maidata['content'],$maidata['tmail'],$maidata['tpassword'],$file);
|
||||
// Queue::push('app\api\job\mail@fire', $maidata, "tmail");
|
||||
|
||||
//更改数据库
|
||||
$update['proof_state'] = 1;
|
||||
$updata['proof_stime'] = time();
|
||||
$updata['proof_etime'] = strtotime("+2 day");
|
||||
$this->production_article_obj->where('p_article_id',$data['p_article_id'])->update($updata);
|
||||
|
||||
return jsonSuccess([]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 自动执行
|
||||
*/
|
||||
public function proofState(){
|
||||
$this->production_article_obj->where('proof_state',1)->where('proof_etime','<',time())->update(['proof_state'=>2]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 作者反馈proof
|
||||
*/
|
||||
public function editProof(){
|
||||
$data = $this->request->post();
|
||||
$rule = new Validate([
|
||||
'article_id'=>'require',
|
||||
'code'=>'require'
|
||||
]);
|
||||
if(!$rule->check($data)){
|
||||
return jsonError($rule->getError());
|
||||
}
|
||||
$updata = [];
|
||||
if($data['code']==0){//同意
|
||||
$update['proof_state'] = 2;
|
||||
}else{//拒绝
|
||||
$update['proof_state'] = 2;
|
||||
$update['proof_content'] = trim($data['content']);
|
||||
}
|
||||
//发送邮件提醒编辑
|
||||
|
||||
|
||||
return jsonSuccess([]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 同意proof通过邮件链接
|
||||
*/
|
||||
public function editProofFromEmail($articleId){
|
||||
$this->production_article_obj->where('article_id',$articleId)->where('state',0)->update(['proof'=>2]);
|
||||
echo 'Commit Succeeded';
|
||||
}
|
||||
|
||||
|
||||
private function pdfAddProof($article_id)
|
||||
{
|
||||
$p_info = $this->production_article_obj->where('article_id',$article_id)->where('state',0)->find();
|
||||
vendor('fpdf.fpdf');
|
||||
vendor('fpdi/fpdi');
|
||||
$pdf = new \FPDI();
|
||||
$pageCount = $pdf->setSourceFile(ROOT_PATH . 'public' . DS.$p_info['file_pdf']);
|
||||
|
||||
// iterate through all pages
|
||||
for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {
|
||||
// import a page
|
||||
$templateId = $pdf->importPage($pageNo);
|
||||
|
||||
// get the size of the imported page
|
||||
$size = $pdf->getTemplateSize($templateId);
|
||||
|
||||
// create a page (landscape or portrait depending on the imported page size)
|
||||
if ($size['w'] > $size['h']) $pdf->AddPage('L', array($size['w'], $size['h']));
|
||||
else $pdf->AddPage('P', array($size['w'], $size['h']));
|
||||
|
||||
// use the imported page
|
||||
// $pdf->useTemplate($templateId);
|
||||
|
||||
$pdf->image(ROOT_PATH . 'public' . DS.'pdf'.DS.'bg2.png',55, 25, 80);
|
||||
$pdf->image(ROOT_PATH . 'public' . DS.'pdf'.DS.'bg2.png',55, 155, 80);
|
||||
$pdf->useTemplate($templateId);
|
||||
// $pdf->SetFont('Arial', 'B', '12');
|
||||
// // sign with current date
|
||||
// $pdf->SetXY(0, 0); // you should keep testing untill you find out correct x,y values
|
||||
// $pdf->Write(7, date('Y-m-d'));
|
||||
}
|
||||
$pdf->Output(ROOT_PATH . 'public' . DS.'proofPDF'.DS.$article_id.'.pdf');
|
||||
}
|
||||
|
||||
/**
|
||||
* @title 文章文件上传
|
||||
*
|
||||
|
||||
@@ -538,7 +538,7 @@ class Typeset extends Controller
|
||||
/**
|
||||
* pdf文件加水印
|
||||
*/
|
||||
public function pdfAddPfroof()
|
||||
public function pdfAddProof()
|
||||
{
|
||||
vendor('fpdf.fpdf');
|
||||
vendor('fpdi/fpdi');
|
||||
|
||||
Reference in New Issue
Block a user