|
@@ -9,10 +9,15 @@ class ExcelToArrayService extends Service
|
|
|
{
|
|
|
|
|
|
|
|
|
- /* 导出excel函数*/
|
|
|
- public function push($data, $name = 'Excel') {
|
|
|
+ /**
|
|
|
+ * @param $data 数据
|
|
|
+ * @param string $name 导出的excel名称
|
|
|
+ * @param $export 导出的类型 execute_export 执行订单汇总 order订单明细 tech保洁师明细
|
|
|
+ */
|
|
|
+ public function push($data, $name = 'Excel',$export) {
|
|
|
error_reporting(E_ALL);
|
|
|
date_default_timezone_set('Asia/Shanghai');
|
|
|
+ $channel_option = ROrder::$channel_option;
|
|
|
$objPHPExcel = new PHPExcel();
|
|
|
/*以下是一些设置 ,什么作者 标题啊之类的*/
|
|
|
$objPHPExcel->getProperties()->setCreator("north")
|
|
@@ -24,78 +29,151 @@ class ExcelToArrayService extends Service
|
|
|
->setCategory("result file");
|
|
|
/*以下就是对处理Excel里的数据, 横着取数据,主要是这一步,其他基本都不要改*/
|
|
|
$num = 1;
|
|
|
- $objPHPExcel->setActiveSheetIndex(0)
|
|
|
- //Excel的第A列,uid是你查出数组的键值,下面以此类推
|
|
|
- ->setCellValue('A' . $num, 'ID')
|
|
|
- ->setCellValue('B' . $num, '订购的服务')
|
|
|
- //->setCellValue('C' . $num, '数量')
|
|
|
- //->setCellValue('D' . $num, '使用的代金券')
|
|
|
- ->setCellValue('C' . $num, '地址/联系方式')
|
|
|
- ->setCellValue('D' . $num, '支付方式')
|
|
|
- //->setCellValue('G' . $num, 'charge_id')
|
|
|
- ->setCellValue('E' . $num, '预约时间')
|
|
|
- //->setCellValue('F' . $num, '订单处理时间')
|
|
|
- ->setCellValue('F' . $num, '保洁师')
|
|
|
- ->setCellValue('G' . $num, '备注')
|
|
|
- ->setCellValue('H' . $num, '后台备注')
|
|
|
- ->setCellValue('I' . $num, '状态')
|
|
|
- ->setCellValue('J'.$num,'总额')
|
|
|
- ->setCellValue('K'.$num,'折后')
|
|
|
- ;
|
|
|
- $num += 1;
|
|
|
- foreach($data as $key => $value){
|
|
|
- $technicians = '';
|
|
|
- foreach($value['technicians'] as $k => $v){
|
|
|
- $technicians .= $v['technician_name'].' ';
|
|
|
- }
|
|
|
- if (!empty($value['products'][0]['extra']['type']) && !empty($value['products'][0]['extra']['type'])){
|
|
|
- $product_str = $value['products_str'].$value['products'][0]['extra']['type'].$value['products'][0]['extra']['price'];
|
|
|
- } else {
|
|
|
- $product_str = $value['products_str'];
|
|
|
- }
|
|
|
- //var_dump();exit;.
|
|
|
+ if($export == 'execute_order'){
|
|
|
$objPHPExcel->setActiveSheetIndex(0)
|
|
|
//Excel的第A列,uid是你查出数组的键值,下面以此类推
|
|
|
- ->setCellValue('A' . $num, $value['id'])
|
|
|
- ->setCellValue('B' . $num, $product_str)
|
|
|
- //->setCellValue('C' . $num, $value['counts'])
|
|
|
- // ->setCellValue('D' . $num, $coupons)
|
|
|
- ->setCellValue('C' . $num, $value['address']['city'].$value['address']['area'].$value['address']['poi']['name']
|
|
|
- .$value['address']['detail'].$value['address']['name'].',手机号'.$value['address']['mobile'])
|
|
|
- ->setCellValue('D' . $num, $value['channel'])
|
|
|
- // ->setCellValue('G' . $num, $value['charge_id'])
|
|
|
- ->setCellValue('E' . $num, $value['booking_time_str'])
|
|
|
- //->setCellValue('F' . $num, $value['deal_time_str'])
|
|
|
- ->setCellValue('F' . $num, $technicians)
|
|
|
- ->setCellValue('G' . $num, $value['memo'])
|
|
|
- ->setCellValue('H' . $num, $value['remark'])
|
|
|
- ->setCellValue('I' . $num, $value['status_str'])
|
|
|
- ->setCellValue('J'.$num,$value['af_sum_price'])
|
|
|
- ->setCellValue('K'.$num,$value['sum_price'])
|
|
|
+ ->setCellValue('A' . $num, '服务日期')
|
|
|
+ ->setCellValue('B' . $num, '时间')
|
|
|
+ //->setCellValue('C' . $num, '数量')
|
|
|
+ //->setCellValue('D' . $num, '使用的代金券')
|
|
|
+ ->setCellValue('C' . $num, '联系人')
|
|
|
+ ->setCellValue('D' . $num, '联系方式')
|
|
|
+ //->setCellValue('G' . $num, 'charge_id')
|
|
|
+ ->setCellValue('E' . $num, '所在区')
|
|
|
+ ->setCellValue('F' . $num, '地址')
|
|
|
+ //->setCellValue('F' . $num, '订单处理时间')
|
|
|
+ ->setCellValue('G' . $num, '服务项目')
|
|
|
+ ->setCellValue('H' . $num, '居室')
|
|
|
+ ->setCellValue('I' . $num, '保洁师')
|
|
|
+ ->setCellValue('J' . $num, '备注')
|
|
|
+ ->setCellValue('K'.$num,'支付方式')
|
|
|
+ ->setCellValue('L'.$num,'本单实收')
|
|
|
+ ->setCellValue('M'.$num,'本单营收')
|
|
|
;
|
|
|
$num += 1;
|
|
|
- }
|
|
|
- /* foreach ($data as $key => $value) {
|
|
|
- $ch1 = 65;
|
|
|
- $ch2 = 65;
|
|
|
- foreach ($value as $k => $v){
|
|
|
+ foreach($data as $key => $value){
|
|
|
+ if(!empty($value['pay_channel'])){
|
|
|
+ $pay_option = $channel_option[$value['pay_channel']]['name'];
|
|
|
+ } else {
|
|
|
+ $pay_option = '';
|
|
|
+ }
|
|
|
|
|
|
- if(is_array($v)){
|
|
|
|
|
|
+ $technicians = '';
|
|
|
+ $server_date = date('Y-m-d',$value['booking_time']);
|
|
|
+ $server_time = date('H:i:s',$value['booking_time']);
|
|
|
+
|
|
|
+ foreach($value['technicians'] as $k => $v){
|
|
|
+ $technicians .= $v['technician_name'].' ';
|
|
|
+ }
|
|
|
+ if (!empty($value['products'][0]['extra']['type']) && !empty($value['products'][0]['extra']['type'])){
|
|
|
+ $product_str = $value['products_str'].$value['products'][0]['extra']['type'].$value['products'][0]['extra']['price'];
|
|
|
} else {
|
|
|
+ $product_str = $value['products_str'];
|
|
|
+ }
|
|
|
+ //var_dump();exit;.
|
|
|
+ $objPHPExcel->setActiveSheetIndex(0)
|
|
|
+ //Excel的第A列,uid是你查出数组的键值,下面以此类推
|
|
|
+ ->setCellValue('A' . $num, $server_date)
|
|
|
+ ->setCellValue('B' . $num, $server_time)
|
|
|
+ ->setCellValue('C' . $num, $value['address']['name'])
|
|
|
+ // ->setCellValue('D' . $num, $coupons)
|
|
|
+ //->setCellValue('C' . $num, $value['address']['city'].$value['address']['area'].$value['address']['poi']['name']
|
|
|
+ //.$value['address']['detail'].$value['address']['name'].',手机号'.$value['address']['mobile'])
|
|
|
+ ->setCellValue('D' . $num, $value['address']['mobile'])
|
|
|
+ // ->setCellValue('G' . $num, $value['charge_id'])
|
|
|
+ ->setCellValue('E' . $num, $value['address']['area'])
|
|
|
+ ->setCellValue('F' . $num, $value['address']['poi']['name'].$value['address']['detail'])
|
|
|
+ ->setCellValue('G' . $num, $value['products_str'])
|
|
|
+ ->setCellValue('H' . $num, $value['products'][0]['extra']['type'])
|
|
|
+ ->setCellValue('I' . $num, $technicians)
|
|
|
+ ->setCellValue('J' . $num, $value['memo'].$value['remark'])
|
|
|
+ ->setCellValue('K'.$num,$pay_option)
|
|
|
+ ->setCellValue('L'.$num,$value['sum_price'])
|
|
|
+ ->setCellValue('M'.$num,$value['sum_price'])
|
|
|
+ ;
|
|
|
+ $num += 1;
|
|
|
+ }
|
|
|
+ } else if($export == 'order'){
|
|
|
+ $objPHPExcel->setActiveSheetIndex(0)
|
|
|
//Excel的第A列,uid是你查出数组的键值,下面以此类推
|
|
|
- if ($ch1 > 90) {
|
|
|
- $ch1 = 65;
|
|
|
- $objPHPExcel->setActiveSheetIndex(0)->setCellValue(chr($ch1) . chr($ch2++).$num, $v);
|
|
|
- } else{
|
|
|
- $objPHPExcel->setActiveSheetIndex(0)->setCellValue(chr($ch1++) . $num, $v);
|
|
|
- }
|
|
|
-
|
|
|
+ ->setCellValue('A' . $num, '服务日期')
|
|
|
+ ->setCellValue('B' . $num, '时间')
|
|
|
+ ->setCellValue('C' . $num, '地址')
|
|
|
+ ->setCellValue('D' . $num, '服务项目')
|
|
|
+ ->setCellValue('E' . $num, '保洁师')
|
|
|
+ ->setCellValue('F' . $num, '备注')
|
|
|
+ ->setCellValue('G'.$num,'每人实收')
|
|
|
+ ->setCellValue('H'.$num,'每人营收')
|
|
|
+ ->setCellValue('I'.$num,'车费')
|
|
|
+ ;
|
|
|
+ $num += 1;
|
|
|
+ foreach($data as $key => $value){
|
|
|
+ $technicians = '';
|
|
|
+ $server_date = date('Y-m-d',$value['booking_time']);
|
|
|
+ $server_time = date('H:i:s',$value['booking_time']);
|
|
|
+ $tech_count = count($value['technicians']);
|
|
|
+ foreach($value['technicians'] as $k => $v){
|
|
|
+ $technicians .= $v['technician_name'].' ';
|
|
|
|
|
|
}
|
|
|
+ $objPHPExcel->setActiveSheetIndex(0)
|
|
|
+ //Excel的第A列,uid是你查出数组的键值,下面以此类推
|
|
|
+ ->setCellValue('A' . $num, $server_date)
|
|
|
+ ->setCellValue('B' . $num, $server_time)
|
|
|
+ ->setCellValue('C' . $num, $value['address']['detail'])
|
|
|
+ ->setCellValue('D' . $num, $value['products_str'])
|
|
|
+ ->setCellValue('E' . $num, $technicians)
|
|
|
+ ->setCellValue('F' . $num, $value['memo'].$value['remark'])
|
|
|
+ ->setCellValue('G' . $num, $value['sum_price']/$tech_count)
|
|
|
+ ->setCellValue('H' . $num, $value['sum_price']/$tech_count)
|
|
|
+ ->setCellValue('I' . $num, $value['tech_money'])
|
|
|
+ ;
|
|
|
+ $num += 1;
|
|
|
}
|
|
|
+ }else if($export == 'tech'){
|
|
|
+ $objPHPExcel->setActiveSheetIndex(0)
|
|
|
+ //Excel的第A列,uid是你查出数组的键值,下面以此类推
|
|
|
+ ->setCellValue('A' . $num, 'id')
|
|
|
+ ->setCellValue('B' . $num, '订单号')
|
|
|
+ ->setCellValue('C' . $num, '服务日期')
|
|
|
+ ->setCellValue('D' . $num, '下单日期')
|
|
|
+ ->setCellValue('E' . $num, '联系人')
|
|
|
+ ->setCellValue('F' . $num, '联系方式')
|
|
|
+ ->setCellValue('G' . $num, '所在区')
|
|
|
+ ->setCellValue('H' . $num, '地址')
|
|
|
+ ->setCellValue('I' . $num, '保洁师')
|
|
|
+ ->setCellValue('J' . $num, '备注')
|
|
|
+ ;
|
|
|
$num += 1;
|
|
|
- }*/
|
|
|
+ foreach($data as $key => $value){
|
|
|
+
|
|
|
+ $technicians = '';
|
|
|
+ $server_date = date('Y-m-d',$value['booking_time']);
|
|
|
+ $server_time = date('H:i:s',$value['booking_time']);
|
|
|
+ $order_id =Yii::app()->params['o2o_service'][$value['products'][0]['product']['type']].'-'.time();
|
|
|
+ foreach($value['technicians'] as $k => $v){
|
|
|
+ $technicians .= $v['technician_name'].' ';
|
|
|
+ }
|
|
|
+
|
|
|
+ //var_dump();exit;.
|
|
|
+ $objPHPExcel->setActiveSheetIndex(0)
|
|
|
+ //Excel的第A列,uid是你查出数组的键值,下面以此类推
|
|
|
+ ->setCellValue('A' . $num, $value['id'])
|
|
|
+ ->setCellValue('B' . $num, $order_id)
|
|
|
+ ->setCellValue('C' . $num, $server_date)
|
|
|
+ ->setCellValue('D' . $num, $value['order_time_str'])
|
|
|
+ ->setCellValue('E' . $num, $value['address']['name'])
|
|
|
+ ->setCellValue('F' . $num, $value['address']['mobile'])
|
|
|
+ ->setCellValue('G' . $num, $value['address']['area'])
|
|
|
+ ->setCellValue('H' . $num, $value['address']['detail'])
|
|
|
+ ->setCellValue('I' . $num, $technicians)
|
|
|
+ ->setCellValue('J' . $num, $value['memo'].$value['remark'])
|
|
|
+
|
|
|
+ ;
|
|
|
+ $num += 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
$objPHPExcel->getActiveSheet()->setTitle('User');
|
|
|
$objPHPExcel->setActiveSheetIndex(0);
|