publicfunctionexportOrderqk(){set_time_limit(0);@ini_set('memory_limit','512M');$where=array();try{$ids=request()->param('ids/s')?request()->param('ids/s'):'';if($ids>0){$ids=trim($ids,',');$where['o.id']=['in',$ids];}//状态$formData=request()->param('formData/a')?request()->param('formData/a'):0;$status=$formData['status']?$formData['status']:0;$third_nav='all';if($status>0){$where['o.status']=$status;switch($status){case1:$third_nav='submit';break;case2:$third_nav='confirm';break;case4:$third_nav='receive';break;case8:$third_nav='unshipment';break;case16:$third_nav='shipment';break;case32:$third_nav='clearance';break;case64:$third_nav='deliver';break;case128:$third_nav='temporary';break;case256:$third_nav='cancel';break;case512:$third_nav='withdrawal';break;}}//内容查询$sval=$formData['sval']?$formData['sval']:2;$value=$formData['value']?$formData['value']:'';$lsql='';if($value){$valArr=explode("\r\n",$value);$valArr=array_filter($valArr);switch($sval){case1:$where['o.orderSn']=['in',$valArr];break;case2:$where['o.logisticsCode']=['in',$valArr];break;case3:$where['o.loadOrderNum']=['in',$valArr];break;case4:$where['o.deliverCode']=['in',$valArr];break;case6:$where['o.idCard']=['in',$valArr];break;case5:foreach($valArras$vlike){$lsql.=" (o.orderSn LIKE '%{$vlike}%' OR o.logisticsCode LIKE '%{$vlike}%' OR o.loadOrderNum LIKE '%{$vlike}%' OR o.deliverCode LIKE '%{$vlike}%') or";}$lsql=trim($lsql,'or');break;//$where}}//日期查询$tval=$formData['tval']?$formData['tval']:1;//收货日期$start=$formData['start']?$formData['start']:'';//清关日期$end=$formData['end']?$formData['end']:'';$tsql='';switch($tval){case1:if($start&&$end){$tsql="o.createTime>='{$start}' and o.createTime<='{$end}'";}elseif($start){$tsql="o.createTime>='{$start}'";}elseif($end){$tsql="o.createTime<='{$end}'";}break;case2:if($start&&$end){$tsql="o.deliverTime>='{$start}' and o.deliverTime<='{$end}'";}elseif($start){$tsql="o.deliverTime>='{$start}'";}elseif($end){$tsql="o.deliverTime<='{$end}'";}break;case3:if($start&&$end){$tsql="o.declareTime>='{$start}' and o.declareTime<='{$end}'";}elseif($start){$tsql="o.declareTime>='{$start}'";}elseif($end){$tsql="o.declareTime<='{$end}'";}break;}$list=Order::alias('o')->join('customer c','c.id=o.customerId','left')->join('user_address ua','ua.buyerIdNumber=o.idCard','left')->field('o.id,c.name customerName,o.orderSn,o.logisticsCode,o.idCard,o.consignee,o.mobile,o.province,o.city,o.district,o.address,o.gnum,o.pweight,o.smobile,o.saddress,o.createTime,ua.frontPhoto,ua.backPhoto,o.status,o.remark')->where($where)->whereor($lsql)->whereor($tsql)->order('o.id desc')->select();if(!$list)errorMsg('400','没有查询到数据');//导入表格文件vendor("phpexcel.PHPExcel");//实例化表格$objPHPExcel=new\PHPExcel();//生成表头$objPHPExcel->getProperties()->setCreator("jason")->setLastModifiedBy("jason")->setTitle("orders")->setSubject("Office 2007 csv")->setDescription("country")->setKeywords("orders")->setCategory("orders");// 设置行高$objPHPExcel->setActiveSheetIndex(0)->getDefaultRowDimension()->setRowHeight(20);$objPHPExcel->setActiveSheetIndex(0)->setCellValue("A1","编号")->setCellValue("B1","订单编号")->setCellValue("C1","运单号")->setCellValue("D1","身份证")->setCellValue("E1","收件人姓名")->setCellValue("F1","收件人电话")->setCellValue("G1","收件人省/自治区/直辖市")->setCellValue("H1","收件人城镇/市")->setCellValue("I1","收件人区")->setCellValue("J1","收件人详细地址")->setCellValue("K1","件数")->setCellValue("L1","实重")->setCellValue("M1","订单备注")->setCellValue("N1","订单状态")->setCellValue("O1","寄件人姓名")->setCellValue("P1","寄件人电话")->setCellValue("Q1","寄件人地址")->setCellValue("R1","时间");// ->setCellValue("S1","身份证正反面");$url='http://'.$_SERVER['HTTP_HOST'];$path='./public/download/'.date('Ymd');if(!is_dir($path))mkdir($path,0755,true);$zipFile=date('YmdHis').$this->adminId.str_pad(rand(0,999),3,'0',STR_PAD_LEFT).'.zip';$zip=new\ZipArchive();$zip->open($path.'/'.$zipFile,1|8);//打开压缩包$domain=Request()->domain();foreach($listas$key=>$value){if(is_file('./'.$value['frontPhoto'])){//获取后缀名$extesionArr=explode('.',$value['frontPhoto']);$extesion=$extesionArr[1];$zip->addFile('./'.$value['frontPhoto'],$value['logisticsCode'].'.'.$extesion);}if(is_file('./'.$value['backPhoto'])){//获取后缀名$extesionArr=explode('.',$value['backPhoto']);$extesion=$extesionArr[1];$zip->addFile('./'.$value['backPhoto'],$value['logisticsCode'].'_A'.'.'.$extesion);}$i=$key+2;$j=$key+1;$url='--';if(!empty($value['frontPhoto'])){$url='http://'.$_SERVER['HTTP_HOST'];}if(!empty($value['backPhoto'])){$url='http://'.$_SERVER['HTTP_HOST'];}$statusStr=0;switch($value['status']){case1:$statusStr='待提交';break;case2:$statusStr='已确认';break;case4:$statusStr='已收货';break;case8:$statusStr='待发运';break;case16:$statusStr='已发运';break;case32:$statusStr='清关中';break;case64:$statusStr='派送中';break;case128:$statusStr='暂存中';break;case256:$statusStr='已取消';break;case512:$statusStr='已退运';break;}if($value['status']==1)$statusStr='待提交';if($value['status'])$objPHPExcel->setActiveSheetIndex(0)->setCellValueExplicit("A".$i,$j,\PHPExcel_Cell_DataType::TYPE_STRING)->setCellValueExplicit("B".$i,$value['orderSn'],\PHPExcel_Cell_DataType::TYPE_STRING)->setCellValueExplicit("C".$i,$value['logisticsCode'],\PHPExcel_Cell_DataType::TYPE_STRING)->setCellValueExplicit("D".$i,$value['idCard'],\PHPExcel_Cell_DataType::TYPE_STRING)->setCellValueExplicit("E".$i,$value['consignee'],\PHPExcel_Cell_DataType::TYPE_STRING)->setCellValueExplicit("F".$i,$value['mobile'],\PHPExcel_Cell_DataType::TYPE_STRING)->setCellValueExplicit("G".$i,$value['province'],\PHPExcel_Cell_DataType::TYPE_STRING)->setCellValueExplicit("H".$i,$value['city'],\PHPExcel_Cell_DataType::TYPE_STRING)->setCellValueExplicit("I".$i,$value['district'],\PHPExcel_Cell_DataType::TYPE_STRING)->setCellValueExplicit("J".$i,$value['address'],\PHPExcel_Cell_DataType::TYPE_STRING)->setCellValueExplicit("K".$i,$value['gnum'],\PHPExcel_Cell_DataType::TYPE_STRING)->setCellValueExplicit("L".$i,$value['pweight'],\PHPExcel_Cell_DataType::TYPE_STRING)->setCellValueExplicit("M".$i,$value['remark'],\PHPExcel_Cell_DataType::TYPE_STRING)->setCellValueExplicit("N".$i,$statusStr,\PHPExcel_Cell_DataType::TYPE_STRING)->setCellValueExplicit("O".$i,$value['customerName'],\PHPExcel_Cell_DataType::TYPE_STRING)->setCellValueExplicit("P".$i,$value['smobile'],\PHPExcel_Cell_DataType::TYPE_STRING)->setCellValueExplicit("Q".$i,$value['saddress'],\PHPExcel_Cell_DataType::TYPE_STRING)->setCellValueExplicit("R".$i,$value['createTime'],\PHPExcel_Cell_DataType::TYPE_STRING);}$zip->close();$objPHPExcel->getActiveSheet(0)->getStyle('A1:BB1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::VERTICAL_CENTER);$objPHPExcel->getActiveSheet(0)->getStyle('A1:BB1')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);$objPHPExcel->getActiveSheet(0)->getStyle('A1:BB1')->getFill()->getStartColor()->setRGB('DCDCDC');$objActSheet=$objPHPExcel->getActiveSheet(0);$objActSheet->getColumnDimension('A')->setWidth(10);$objActSheet->getColumnDimension('B')->setWidth(25);$objActSheet->getColumnDimension('C')->setWidth(25);$objActSheet->getColumnDimension('D')->setWidth(25);$objActSheet->getColumnDimension('E')->setWidth(25);$objActSheet->getColumnDimension('F')->setWidth(25);$objActSheet->getColumnDimension('G')->setWidth(25);$objActSheet->getColumnDimension('H')->setWidth(25);$objActSheet->getColumnDimension('I')->setWidth(25);$objActSheet->getColumnDimension('J')->setWidth(25);$objActSheet->getColumnDimension('K')->setWidth(25);$objActSheet->getColumnDimension('L')->setWidth(25);$objActSheet->getColumnDimension('M')->setWidth(25);$objActSheet->getColumnDimension('N')->setWidth(25);$objActSheet->getColumnDimension('O')->setWidth(25);$objActSheet->getColumnDimension('P')->setWidth(25);$objActSheet->getColumnDimension('Q')->setWidth(25);$objActSheet->getColumnDimension('R')->setWidth(25);// $objActSheet->getColumnDimension('S')->setWidth(60);$objActSheet->setTitle("订单清关");$filename=date('YmdHis').str_pad(rand(0,999),3,'0',STR_PAD_LEFT).'.csv';header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');header('Content-Disposition: attachment;filename="'.$filename.'.csv"');header('Cache-Control: max-age=0');$objWriter=\PHPExcel_IOFactory::createWriter($objPHPExcel,"Excel2007");$objWriter->save($path.'/'.$filename);$path=request()->domain().'/public/download/'.date('Ymd').'/'.$filename;$paths=request()->domain().'/public/download/'.date('Ymd').'/'.$zipFile;//$path='http://www.localhost.com/Public/'.$filename;// errorMsg(200, 'success',$zipFile);$valArr=[['name'=>$zipFile,'url'=>$paths],['name'=>$filename,'url'=>$path]];// $valArr=[$paths,$path];errorMsg(200,'success',$valArr);}catch(Exception$e){errorMsg(400,$e->getLine().'.'.$e->getMessage());}}