diff --git a/admin/controllers/receiver/orderv2/Orders.php b/admin/controllers/receiver/orderv2/Orders.php index ad2e3c24..74345932 100644 --- a/admin/controllers/receiver/orderv2/Orders.php +++ b/admin/controllers/receiver/orderv2/Orders.php @@ -971,4 +971,86 @@ class Orders extends HD_Controller } return $this->show_view('receiver/orderv2/edit_status'); } + //下载pdf + public function get_down(){ + require_once COMMPATH.'/third_party/TCPDF/tcpdf.php'; + $id = $this->input->get('id'); + $row = $this->receiver_orders_v2_model->get(['id'=>$id],'id,sid,owner_mobile,owner_name'); + $contract = $this->order_contracts_model->get(['o_id'=>$row['id'],'type'=>0],'id,o_id,file,imgs,type'); + if(!$row || !$contract){ + return false; + } + $type_arr = [0=>'汽车购车协议',1=>'委托服务协议',2=>'车辆确定',3=>'车辆交付']; + $old_type_arr = [0=>'整车合同',1=>'委托服务协议',2=>'车辆确定',3=>'交车信息',4=>'车辆买卖合同补充协议',5=>'委托服务补充协议']; + $path = FCPATH."pdf/{$row['owner_name']}"; + $row['owner_mobile'] && $path .= "({$row['owner_mobile']})"; + if($contract['o_id']>=10000){ + $file_name = $type_arr[$contract['type']] ? $type_arr[$contract['type']].'.pdf' : '其它_'.time().'.pdf'; + }else{ + $file_name = $old_type_arr[$contract['type']] ? $old_type_arr[$contract['type']].'.pdf' : '其它_'.time().'.pdf'; + } + $file=$path.'/'.$file_name; + if(!file_exists($file)){ + $imgs = json_decode($contract['imgs'],true); + if(!$imgs){ + file_get_contents("https://api.liche.cn/wxapp/licheb/protocol/pdf_img?id={$contract['id']}"); + $contract = $this->order_contracts_model->get(['o_id'=>$row['o_id'],'type'=>0],'id,o_id,file,imgs,type'); + $imgs = json_decode($contract['imgs'],true); + } + if (!file_exists($path)) { + $oldumask = umask(0); + mkdir($path, 0777, true); + umask($oldumask); + } + $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT,true, 'UTF-8', false); + $pdf->SetCreator(PDF_CREATOR); + //删除预定义的打印 页眉/页尾 + $pdf->setPrintHeader(false); + $pdf->setPrintFooter(false); + //设置默认等宽字体 + $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); + $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); + $pdf->SetFont('stsongstdlight', '', 20); + $pdf->AddPage(); + $options = array( + // 解决SSL证书验证失败的问题 + "ssl"=>array( + "verify_peer"=>false, + "verify_peer_name"=>false, + ) + ); + //设置文件信息 + foreach ($imgs as $item) { + $img_url = build_qiniu_image_url($item); + $res = file_get_contents($img_url,false, stream_context_create($options)); + $pdf->Ln(); + $pdf->Image('@'.$res, '', '', '', '', '', $img_url,'' , false, 300, '', false, false, 0.05, false, false, false); + } + + $pdf->Output( $file,'F'); + } + ob_end_clean(); + //检查文件是否存在于目录 + if (!file_exists ($file)) { + header('HTTP/1.1 404 NOT FOUND'); + } else { + ob_end_clean(); + header('Content-Description: File Transfer'); + header('Content-Type: application/octet-stream'); + //请求范围的度量单位 + Header ( "Accept-Ranges: bytes" ); + //下载后的文件名称为$file_name + header('Content-Disposition: attachment; filename='.$file_name); + header('Content-Transfer-Encoding: binary'); + #Expires:设置页面缓存时间 + header('Expires: 0'); + header('Cache-Control: must-revalidate'); + header('Pragma: no cache'); + //Content-Length是指定包含于请求或响应中数据的字节长度 + header('Content-Length: ' . filesize($file)); + ob_clean(); flush(); + readfile($file); + ob_end_clean(); + } + } } diff --git a/admin/views/receiver/orderv2/get/index.php b/admin/views/receiver/orderv2/get/index.php index ad157b23..34217c0c 100644 --- a/admin/views/receiver/orderv2/get/index.php +++ b/admin/views/receiver/orderv2/get/index.php @@ -228,6 +228,11 @@ 车辆交付
+
+ + 下载汽车购车协议 +
+