|
|
|
@ -30,27 +30,31 @@ class Passcc extends Controller |
|
|
|
if (!empty($groupsId)) $where['groups_id'] = implode(",",$groupsId); |
|
|
|
$allTimeData = []; |
|
|
|
$groupsData = []; |
|
|
|
$dkeys=[]; |
|
|
|
if ($granularity == 'daily') { |
|
|
|
$where['granularity'] = 'hourly'; |
|
|
|
$list = Db::table('bt_passenger_flow')->where($where)->select()->toArray(); |
|
|
|
$data = $this->handleGroupData($list); |
|
|
|
$allTimeData = $data['allTimeData']; |
|
|
|
$groupsData = $data['groupsData']; |
|
|
|
$dkeys = $data['dkeys']; |
|
|
|
} elseif ($granularity == 'monthly') { |
|
|
|
$where['granularity'] = 'daily'; |
|
|
|
$list = Db::table('bt_passenger_flow')->where($where)->select()->toArray(); |
|
|
|
$data = $this->handleGroupData($list,'d'); |
|
|
|
$allTimeData = $data['allTimeData']; |
|
|
|
$groupsData = $data['groupsData']; |
|
|
|
$dkeys = $data['dkeys']; |
|
|
|
} elseif ($granularity == 'yearly') { |
|
|
|
$where['granularity'] = 'monthly'; |
|
|
|
$list = Db::table('bt_passenger_flow')->where($where)->select()->toArray(); |
|
|
|
$data = $this->handleGroupData($list,'m'); |
|
|
|
$allTimeData = $data['allTimeData']; |
|
|
|
$groupsData = $data['groupsData']; |
|
|
|
$dkeys = $data['dkeys']; |
|
|
|
} |
|
|
|
|
|
|
|
$data = ['allTimeData' => $allTimeData, 'groupsData' => $groupsData]; |
|
|
|
$data = ['allTimeData' => $allTimeData, 'groupsData' => $groupsData, 'dkeys' => $dkeys]; |
|
|
|
return $this->renderSuccess(compact('data')); |
|
|
|
} |
|
|
|
|
|
|
|
@ -63,11 +67,13 @@ class Passcc extends Controller |
|
|
|
protected function handleGroupData($list,$date_str = 'H:00') { |
|
|
|
$allTimeData = []; |
|
|
|
$groupsData = []; |
|
|
|
$dkey=[]; |
|
|
|
if ($date_str == 'H:00') { |
|
|
|
for ($i = 9; $i < 23; $i++) { |
|
|
|
$str = strlen($i) == 1 ? '0'.$i.':00' : $i.':00'; |
|
|
|
$allTimeData[$str]['num'] = 0; |
|
|
|
$allTimeData[$str]['title'] = $str; |
|
|
|
$dkey[]=$str; |
|
|
|
} |
|
|
|
} elseif ($date_str == 'd') { |
|
|
|
$d = date('d') * 1; |
|
|
|
@ -76,6 +82,7 @@ class Passcc extends Controller |
|
|
|
$str = strlen($i) == 1 ? '0'.$i : $i; |
|
|
|
$allTimeData[$str]['num'] = 0; |
|
|
|
$allTimeData[$str]['title'] = $str; |
|
|
|
$dkey[]=$str; |
|
|
|
} |
|
|
|
} elseif ($date_str == 'm') { |
|
|
|
$m = date('m') * 1; |
|
|
|
@ -84,6 +91,7 @@ class Passcc extends Controller |
|
|
|
$str = strlen($i) == 1 ? '0'.$i : $i; |
|
|
|
$allTimeData[$str]['num'] = 0; |
|
|
|
$allTimeData[$str]['title'] = $str; |
|
|
|
$dkey[]=$str; |
|
|
|
} |
|
|
|
} |
|
|
|
$sumNoRepeatInNum = 0; |
|
|
|
@ -99,12 +107,13 @@ class Passcc extends Controller |
|
|
|
|
|
|
|
// 计算各组占比 |
|
|
|
foreach ($groupsData as &$val) { |
|
|
|
$val['proportion'] = (round($val['noRepeatInNum']/$sumNoRepeatInNum,2) * 100) ."%"; |
|
|
|
$val['proportion'] = $val['noRepeatInNum'] > 0 ? (round($val['noRepeatInNum']/$sumNoRepeatInNum,2) * 100) ."%" : '0%'; |
|
|
|
} |
|
|
|
|
|
|
|
return [ |
|
|
|
'allTimeData' => $allTimeData, // 总客流趋势时间段 |
|
|
|
'groupsData' => $groupsData // 各组总数及占比 |
|
|
|
'groupsData' => $groupsData, // 各组总数及占比 |
|
|
|
'dkeys' =>$dkey |
|
|
|
]; |
|
|
|
} |
|
|
|
|
|
|
|
@ -168,7 +177,7 @@ class Passcc extends Controller |
|
|
|
} |
|
|
|
|
|
|
|
foreach ($returnData as &$val) { |
|
|
|
$val['proportion'] = (round($val['allEnter']/$sumAllEnter,2) * 100) ."%"; |
|
|
|
$val['proportion'] = $val['allEnter'] > 0 ? (round($val['allEnter']/$sumAllEnter,2) * 100) ."%" : '0%'; |
|
|
|
} |
|
|
|
|
|
|
|
return $this->renderSuccess(compact('returnData')); |
|
|
|
|