Browse Source

优化接口

master
wanghongjun 3 years ago
parent
commit
3b50211bae
  1. 89
      app/controller/Index.php

89
app/controller/Index.php

@ -108,21 +108,24 @@ class Index extends BaseController
if ($date_str == 'H:00') {
for ($i = 9; $i < 23; $i++) {
$str = strlen($i) == 1 ? '0'.$i.':00' : $i.':00';
$allTimeData[$str] = 0;
$allTimeData[$str]['num'] = 0;
$allTimeData[$str]['title'] = $str;
}
} elseif ($date_str == 'd') {
$d = date('d') * 1;
$date = $d - 12 > 0 ? $d - 12 : 1;
for ($i = $date; $i <= $d; $i++) {
$str = strlen($i) == 1 ? '0'.$i : $i;
$allTimeData[$str] = 0;
$allTimeData[$str]['num'] = 0;
$allTimeData[$str]['title'] = $str;
}
} elseif ($date_str == 'm') {
$m = date('m') * 1;
$date = $m - 12 > 0 ? $m - 12 : 1;
for ($i = $date; $i <= $m; $i++) {
$str = strlen($i) == 1 ? '0'.$i : $i;
$allTimeData[$str] = 0;
$allTimeData[$str]['num'] = 0;
$allTimeData[$str]['title'] = $str;
}
}
$sumNoRepeatInNum = 0;
@ -132,7 +135,7 @@ class Index extends BaseController
$groupsData[$value['groupName']]['noRepeatInNum'] += $value['noRepeatInNum']; // 分租进馆人数
$date = date($date_str,ceil($value['createTime'] / 1000) + (8*3600)); // 各时间端进馆人数
if (!isset($allTimeData[$date])) continue;
$allTimeData[$date] += $value['noRepeatInNum'];
$allTimeData[$date]['num'] += $value['noRepeatInNum'];
}
ksort($allTimeData);
@ -149,69 +152,24 @@ class Index extends BaseController
/**
* 总览总数据接口 <首页-中间部分总览>
* @return array|void
* @return false|string
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function allGroupNum() {
$config = config('app');
$dateData = getTargetDate();
$token = getAccessToken();
$dateArr = [
'day' => [
'startTime' => $dateData['day']['c_start_time'],// 当天开始时间
'endTime' => $dateData['day']['c_end_time'],// 当天结束时间
'granularity' => 'daily'
],
'week' => [
'startTime' => $dateData['week']['c_start_time'],
'endTime' => $dateData['week']['c_end_time'],
'granularity' => 'daily'
],
'month' =>[
'startTime' => $dateData['month']['c_start_time'],
'endTime' => $dateData['month']['c_end_time'],
'granularity' => 'monthly'
],
'year' =>[
'startTime' => $dateData['year']['c_start_time'],
'endTime' => $dateData['year']['c_end_time'],
'granularity' => 'yearly'
],
];
$dateArr = ['day' => 'daily', 'week' => 'daily', 'month' => 'monthly'];
$returnData = [];
$groupIds = [];
foreach ($dateArr as $date => $dateRow) {
$url = $config['host_url'] . "/api/cfas/v2/passengerFlow/groups";
foreach ($dateArr as $date => $granularity) {
$granularity = $dateRow['granularity'];
$data = [
'granularity' => $granularity,
'startTime' => $dateRow['startTime'],
'endTime' => $dateRow['endTime'],
'ids' => '01' // --- <replace> --- //
];
$json_data = json_encode($data);
$result = postToken($url,$json_data,false,[],$token);
$res_data = json_decode($result,true);
if ($res_data['code'] != 0) {
return ['code' => 403, 'msg' => $res_data['msg']];
}
$list = $res_data['data']['list'];
$list = Db::table('tp_passenger_flow_all')
->where(['granularity' => $granularity, 'date' => $date])->select()->toArray();
$returnData[$date]['noRepeatInNum'] = 0;
foreach ($list as $value) {
// $createTime = date("H",$value['createTime'] /1000 + (3600*8));
$returnData[$date]['noRepeatInNum'] += $value['noRepeatInNum'];
$groupIds[] = $value['groupId'];
}
}
@ -222,10 +180,7 @@ class Index extends BaseController
$returnArr = [
'code' => 0,
'msg' => '成功',
'data' => [
'dataAll' => $returnData,
'groupIds' => array_unique($groupIds)
]
'data' => $returnData
];
return json_encode($returnArr);
}
@ -266,12 +221,14 @@ class Index extends BaseController
/**
* 今日各场馆人数趋势
* @return void
* @return false|string
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function toDayGroupsEnterNum()
{
$dateData = getTargetDate();
$list = $this->getGroupData('hourly',$dateData['day']['c_start_time'],$dateData['day']['c_end_time']);
$list = Db::table('tp_passenger_flow')->where(['granularity' => 'hourly'])->select()->toArray();
$allTimeData = [];
for ($i = 9; $i < 23; $i++) {
$str = strlen($i) == 1 ? '0'.$i.':00' : $i.':00';
@ -279,11 +236,11 @@ class Index extends BaseController
}
$returnData = [];
foreach ($list as $value) {
$date = date('H:00',ceil($value['createTime'] / 1000) + (8*3600)); // 各时间端进馆人数
$date = date('H:00',ceil($value['createTime'] / 1000)); // 各时间端进馆人数
if (!isset($allTimeData[$date])) continue;
if (!isset($returnData[$value['groupName']][$allTimeData[$date]])) $returnData[$value['groupName']][$date] = 0;
$returnData[$value['groupName']][$date] += $value['flowInNum'];
}
dump($returnData);
return json(['code' => 0, 'msg' => '成功', 'data' => $returnData]);
}
}

Loading…
Cancel
Save