Browse Source

优化获取参数

master
wanghongjun 3 years ago
parent
commit
638e93b3ca
  1. 91
      app/common.php
  2. 47
      app/controller/Index.php

91
app/common.php

@ -123,4 +123,95 @@ function post2($url, array $data = [])
}
curl_close($ch);
return $result;
}
function getStartAndEndDatetime($period) {
switch ($period) {
case 'today':
$startDatetime = strtotime('today');
$endDatetime = strtotime('tomorrow - 1 second');
break;
case 'this_week':
$startDatetime = strtotime('this week');
$endDatetime = strtotime('next week - 1 second');
break;
case 'this_month':
$startDatetime = strtotime('first day of this month');
$endDatetime = strtotime('first day of next month - 1 second');
break;
case 'this_year':
$startDatetime = strtotime('first day of January this year');
$endDatetime = strtotime('first day of January next year - 1 second');
break;
default:
return null;
}
$startDatetimeStr = date('Y-m-d H:i:s', $startDatetime);
$endDatetimeStr = date('Y-m-d H:i:s', $endDatetime);
return [
'start_datetime' => $startDatetimeStr,
'end_datetime' => $endDatetimeStr
];
}
function getTargetDate($granularity = 'all') {
$data = [];
if ($granularity === 'day' || $granularity === 'all') {
$date = $granularity !== 'all' ? $granularity : 'day';
$data[$date] = [
'start_time' => strtotime('today'),
'end_time' => strtotime('tomorrow - 1 second'),
];
}
if ($granularity === 'week' || $granularity === 'all') {
$date = $granularity !== 'all' ? $granularity : 'week';
$data[$date] = [
'start_time' => strtotime('this week midnight'),
'end_time' => strtotime('next week midnight - 1 second'),
];
}
if ($granularity === 'month' || $granularity === 'all') {
$date = $granularity !== 'all' ? $granularity : 'month';
$data[$date] = [
'start_time' => strtotime(date('Y-m-01 00:00:00')),
'end_time' => strtotime(date('Y-m-t 23:59:59')),
];
}
if ($granularity === 'year' || $granularity === 'all') {
$date = $granularity !== 'all' ? $granularity : 'year';
$data[$date] = [
'start_time' => strtotime('first day of January this year'),
'end_time' => strtotime('first day of January next year - 1 second'),
];
}
foreach ($data as &$val) {
$val['c_start_time'] = date("c",$val['start_time']);
$val['c_end_time'] = date("c",$val['end_time']);
$val['start_time'] = date("Y-m-d H:i:s",$val['start_time']);
$val['end_time'] = date("Y-m-d H:i:s",$val['end_time']);
}
return $data;
}
function formatNumber($number) {
if ($number < 10000) {
return number_format($number);
} else if ($number < 100000000) {
if ($number % 10000 == 0) {
return number_format($number / 10000) . '万';
} else {
return number_format($number);
}
} else {
if ($number % 100000000 == 0) {
return number_format($number / 100000000) . '亿';
} else {
return number_format($number);
}
}
}

47
app/controller/Index.php

@ -80,41 +80,49 @@ class Index extends BaseController
$config = config('app');
$dayStatTime = date('c',strtotime(date("Y-m-d 00:00:00")));
$monday = date('Y-m-d 00:00:00', strtotime("last Monday", strtotime(date('Y-m-d'))));
$weekStatTime = date('c',strtotime($monday));
$monthStatTime = date('c',strtotime(date("Y-m-01 00:00:00")));
$dateData = getTargetDate();
$dateArr = [
'day' => [
'startTime' => $dayStatTime,// 当天开始时间
'endTime' => date('c',strtotime(date("Y-m-d 23:59:59"))),// 当天结束时间
'startTime' => $dateData['day']['c_start_time'],// 当天开始时间
'endTime' => $dateData['day']['c_end_time'],// 当天结束时间
'granularity' => 'daily'
],
'week' => [
'startTime' => $weekStatTime,
'endTime' => date('c',strtotime(date("Y-m-d 23:59:59"))),
'startTime' => $dateData['week']['c_start_time'],
'endTime' => $dateData['week']['c_end_time'],
'granularity' => 'daily'
],
'month' =>[
'startTime' => $monthStatTime,
'endTime' => date('c',strtotime(date("Y-m-t 23:59:59")))
]
'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'
],
];
$returnData = [];
foreach ($dateArr as $date => $dateTime) {
foreach ($dateArr as $date => $dateRow) {
$url = $config['host_url'] . "/api/cfas/v2/passengerFlow/groups";
$granularity = $date == 'month' ? 'monthly' :'daily';
$granularity = $dateRow['granularity'];
$data = [
'granularity' => $granularity,
'startTime' => $dateTime['startTime'],
'endTime' => $dateTime['endTime'],
'startTime' => $dateRow['startTime'],
'endTime' => $dateRow['endTime'],
'ids' => '01'
];
$json_data = json_encode($data);
$result = postToken($url,$json_data,false,[],'60NDtZnTUiPtXEFC2MAszjZ9fbedfBTQ');
$result = postToken($url,$json_data,false,[],'rqhzG171BROnwBhhcZJJDudZ4vdvC3nm');
$res_data = json_decode($result,true);
if ($res_data['code'] != 0) {
return ['code' => 404, 'msg' => $res_data['msg']];
@ -127,10 +135,13 @@ class Index extends BaseController
// $createTime = date("H",$value['createTime'] /1000 + (3600*8));
$returnData[$date]['flowInNum'] += $value['flowInNum'];
}
$returnData['sumNum'] += $returnData[$date]['flowInNum'];
}
return $returnData;
foreach ($returnData as &$val) {
$val['flowInNum'] = formatNumber($val['flowInNum']);
}
return json_encode($returnData);
}
}

Loading…
Cancel
Save