diff --git a/source/application/api/controller/pass/Passcc.php b/source/application/api/controller/pass/Passcc.php index 42385a4..405ed8e 100644 --- a/source/application/api/controller/pass/Passcc.php +++ b/source/application/api/controller/pass/Passcc.php @@ -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'));