Browse Source

优化接口数据

master
wanghongjun 3 years ago
parent
commit
0b07f142de
  1. 17
      source/application/api/controller/pass/Passcc.php

17
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'));

Loading…
Cancel
Save