public function exportOrderSectionFile()
{
if(IS_GET)
{
$request = $this->requests;
$map['dor.status'] = 1;
$where['status'] = 1;
if($request['start_date'])
{
$map['dor.date'] = array('egt',$request['start_date']);
$where['date'] = array('egt',$request['start_date']);
}
if($request['end_date'])
{
$map['dor.date'] = array('elt',$request['end_date']);
$where['date'] = array('elt', $request['end_date']);
}
$model = M('order_revenue');
$list = $model->table('db_order_revenue dor')->join('db_order o on o.id=dor.order_id')->join('db_district d on d.id = o.district_id')->join('db_district c on d.upid = c.id')->where($map)->field('o.id,d.upid province_id,c.name province_name,dor.amount,dor.date')->select();
$provinceList = $model->table('db_order_revenue dor')->join('db_order o on o.id = dor.order_id')->join('db_district d on d.id = o.district_id')->join('db_district c on d.upid = c.id')->where($map)->field('o.id,d.upid province_id,c.name province_name,dor.amount,dor.date')->group('dor.order_id')->select();
$total_benefit = M('order_revenue')->where($where)->sum('amount');
$total_num = M('order_revenue')->where($where)->count('distinct order_id');
$province_list = [];
if($list)
{
foreach($list as $k => $v)
{
$province_list[$v['province_id']]['order_id'] = $v['id'];
$province_list[$v['province_id']]['province_id'] = $v['province_id'];
$province_list[$v['province_id']]['province_name'] = $v['province_name'];
$province_list[$v['province_id']]['amount']+=$v['amount'];
}
}
$province_rate = [];
if($provinceList)
{
foreach($provinceList as $k => $v)
{
$province_rate[$v['province_id']]['order_id'] = $v['id'];
$province_rate[$v['province_id']]['province_id'] = $v['province_id'];
$province_rate[$v['province_id']]['province_name'] = $v['province_name'];
$province_rate[$v['province_id']]['num']+=1;
$province_rate[$v['province_id']]['amount'] = $province_list[$v['province_id']]['amount'];
}
}
if($province_rate)
{
foreach($province_rate as $k => $v)
{
$province_rate[$k]['rate'] = (number_format($v['num']/$total_num,4)*100)."%";
}
}
if(empty($province_rate))
{
$this->returnInfo(0, '暂时没有可导出的数据');
}
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename=订单分布地域统计.csv');
header('Cache-Controller: max-age=0');
$fp = fopen('php://output', 'a');
$title = array('分布省份','订单总数量','占比');
$return = eval('return '.iconv('utf-8','gb2312',var_export($title,true)).';');
fputcsv($fp,$return);
$mnt = 0;
$limit = 10000;
foreach($province_rate as $k => $v)
{
$mnt++;
if($mnt==10000)
{
ob_flush();
flush();
$mnt = 0;
}
$data = array($v['province_name'],$v['amount'],$v['rate']);
$row = eval('return '.iconv('utf-8', 'gb2312',var_export($data,true)).';');
fputcsv($fp, $row);
}
exit();
}
$this->returnInfo(1,'');
}