diff --git a/application/master/controller/Datebase.php b/application/master/controller/Datebase.php index 7d0c3c4..220b4d0 100644 --- a/application/master/controller/Datebase.php +++ b/application/master/controller/Datebase.php @@ -220,9 +220,12 @@ class Datebase extends Controller{ */ public function dataPush(){ $data = $this->request->post(); -// $data["journal_stage_id"] = 305; + //$data["journal_stage_id"] = 305; $stage_info = $this->journal_stage_obj->where("journal_stage_id",$data["journal_stage_id"])->find(); $this->createEmailFile($data["journal_stage_id"]); + // 发送ftp + $this->createFtpFileInfo($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,

"; @@ -234,7 +237,7 @@ class Datebase extends Controller{ $tt .= "Telephone: +64 02108293806
"; $tt .= "Email: publisher@tmrjournals.com
"; $tt .= "Website:www.tmrjournals.com"; - + $elist = []; $elist[] = "jgatelicensing@informaticsglobal.com"; $elist[] = "3601240974@qq.com"; @@ -245,6 +248,8 @@ class Datebase extends Controller{ $elist[] = "3097953993@qq.com"; $elist[] = "849192806@qq.com";//皮皮 $elist[] = "751475802@qq.com";//我 + $elist[] = "ELD@dia.govt.nz"; + foreach ($elist as $v){ $cdata['email'] = $v; $cdata['title'] = "Data submitted-TMR Publishing Group"; @@ -258,7 +263,6 @@ class Datebase extends Controller{ } return jsonSuccess([]); - } @@ -304,7 +308,42 @@ class Datebase extends Controller{ + private function createFtpFileInfo($journal_stage_id){ + //查找分期信息 + $stage_info = $this->journal_stage_obj->where("journal_stage_id",$journal_stage_id)->find(); + $journalInfo = $this->journal_obj->where('journal_id',$stage_info['journal_id'])->find(); + //获取分期文章 + $articles = $this->article_obj->where(['journal_stage_id'=>$journal_stage_id,'state'=>0])->field('title as articleTitle,abbr as author,pub_date as date,keywords as keyWords,doi,abstract,file_pdf as pdf,article_id,journal_id')->select(); + foreach ($articles as $k=>$v){ + $articles[$k]['abstract'] = strip_tags($v['abstract']); + $articles[$k]['journalTitle'] = $journalInfo['title']; + $articles[$k]['issn'] = $journalInfo['title']; + $articles[$k]['vol'] = $stage_info['stage_vol']; + $articles[$k]['issue'] = $stage_info['stage_no']; + $articles[$k]['pdf'] = 'https://www.tmrjournals.cn/public/articlePDF/'.$v['pdf']; + $articles[$k]['linkToAbstract'] = 'https://www.tmrjournals.cn/article.html?J_num='.$v['journal_id'].'&a_id='.$v['article_id']; + $articles[$k]['publisher'] = 'TMR publishing group'; + $articles[$k]['reference'] = ''; + $articles[$k]['eissn'] = ''; + + } + $baseDir = ROOT_PATH.'public' . DS . 'ftpFile' . DS . '/'; + $outfileTitle = $journalInfo['title']."-".$stage_info['stage_vol']."卷".$stage_info['stage_no']."期"; + // 生成zip + $res= $this->createZip($articles,$baseDir,$outfileTitle); + + $resJosn = json_decode($res,true); + + // zip生成成功后发送ftp + if($resJosn['code'] = 0){ + $name = $baseDir.$outfileTitle.".zip"; + // 发送ftp + $this->sendFtp($name); + } + + + } @@ -319,9 +358,106 @@ class Datebase extends Controller{ return $frag; } - - - + + // 先生成excel - 再压缩zip - 删除excel + private function createZip($articles,$baseDir,$outfileTitle){ + Vendor('PHPExcel.PHPExcel');//调用类库,路径是基于vendor文件夹的 + Vendor('PHPExcel.PHPExcel.Worksheet.Drawing'); + Vendor('PHPExcel.PHPExcel.Writer.Excel2007'); + $objExcel = new \PHPExcel(); + //set document Property + $objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007'); + + $objActSheet = $objExcel->getActiveSheet(); + $key = ord("A"); + $letter =explode(',',"A,B,C,D,E,F,G,H,I,J,K,L,M,N,O"); + $arrHeader = array('Article Title','Author','Publishing Date','Key Words','Journal Title','ISSN','EISSN','Volume','Issue','Link to Full-Text Articles (PDF)','Abstract','DOI','Link to Abstract','Publisher','Reference'); + //填充表头信息 + $lenth = count($arrHeader); + for($i = 0;$i < $lenth;$i++) { + $objActSheet->setCellValue("$letter[$i]1","$arrHeader[$i]"); + // 设置表头高度 + $objActSheet->getRowDimension('1')->setRowHeight(25); + }; + //填充表格信息 + foreach($articles as $k=>$v){ + $k +=2; + $objActSheet->setCellValue('A'.$k,$v['articleTitle']); + $objActSheet->setCellValue('B'.$k, $v['author']); + $objActSheet->setCellValue('C'.$k, $v['date']); + $objActSheet->setCellValue('D'.$k, $v['keyWords']); + $objActSheet->setCellValue('E'.$k, $v['journalTitle']); + $objActSheet->setCellValue('F'.$k, $v['issn']); + $objActSheet->setCellValue('G'.$k, $v['eissn']); + $objActSheet->setCellValue('H'.$k, $v['vol']); + $objActSheet->setCellValue('I'.$k, $v['issue']); + $objActSheet->setCellValue('J'.$k, $v['pdf']); + $objActSheet->setCellValue('K'.$k, $v['abstract']); + $objActSheet->setCellValue('L'.$k, $v['doi']); + $objActSheet->setCellValue('M'.$k, $v['linkToAbstract']); + $objActSheet->setCellValue('N'.$k, $v['publisher']); + $objActSheet->setCellValue('O'.$k, $v['reference']); + // 表格高度 + $objActSheet->getRowDimension($k)->setRowHeight(25); + } + $width = array(10,15,20,25,30); + //设置表格的宽度 + $objActSheet->getColumnDimension('A')->setWidth($width[4]); + $objActSheet->getColumnDimension('B')->setWidth($width[2]); + $objActSheet->getColumnDimension('C')->setWidth($width[1]); + $objActSheet->getColumnDimension('D')->setWidth($width[4]); + $objActSheet->getColumnDimension('E')->setWidth($width[4]); + $objActSheet->getColumnDimension('F')->setWidth($width[2]); + $objActSheet->getColumnDimension('G')->setWidth($width[3]); + $objActSheet->getColumnDimension('H')->setWidth($width[1]); + $objActSheet->getColumnDimension('I')->setWidth($width[1]); + $objActSheet->getColumnDimension('J')->setWidth($width[4]); + $objActSheet->getColumnDimension('K')->setWidth($width[3]); + $objActSheet->getColumnDimension('L')->setWidth($width[3]); + $objActSheet->getColumnDimension('M')->setWidth($width[4]); + $objActSheet->getColumnDimension('N')->setWidth($width[2]); + $objActSheet->getColumnDimension('O')->setWidth($width[1]); + if(!is_dir($baseDir)){ + @mkdir($baseDir); + } + $res = $objWriter->save($baseDir.$outfileTitle.".xlsx"); + + // 生成zip + $path = $baseDir.$outfileTitle.".xlsx"; + $fileName = $outfileTitle.".zip"; + $zip = new \ZipArchive; + $zip->open($baseDir.$fileName,\ZipArchive::CREATE); + $zip->addFile($path,basename($path)); + $zip->close(); + unlink($baseDir.$outfileTitle.".xlsx"); + + if (!file_exists($baseDir.$fileName)) { + return json_encode(['code'=>1,'msg'=>'无法找到文件']); + } + return json_encode(['code'=>0,'msg'=>'成功','data'=>$baseDir.$fileName]); + } + + + // 连接ftp + private function sendFtp($name,$url){ + $ftp=[ + 'server'=>'FTP.cnki.net', + 'user'=>'glo616cnki', + 'pass'=>'glo616cnki' + ]; + $con = ftp_connect($ftp['server']); + $res = ftp_login($con, $ftp['user'], $ftp['pass']); + if(!$res){ //连接失败 + exit('连接失败'); + } + $data = ftp_put($con,ROOT_PATH,$url,FTP_ASCII); + if(!$data){ // 上传失败 + exit('上传失败'); + } + ftp_close($con); + + } + }