You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
133 lines
5.0 KiB
133 lines
5.0 KiB
<?php
|
|
|
|
namespace task\tasks;
|
|
|
|
include 'Base.php';
|
|
|
|
class Passreal extends Base
|
|
{
|
|
public function run()
|
|
{
|
|
$config = $this->config('api_config');
|
|
|
|
$requestData = [];
|
|
|
|
try{
|
|
date_default_timezone_set('Asia/Shanghai');
|
|
# $url = $config['host_url'] . "/api/cfas/v3/passenger/realTime";
|
|
$url = $config['host_url'] . "/api/cfas/v2/passengerFlow/groups";
|
|
|
|
$token = $this->get_access_token();
|
|
|
|
$dataArr = [
|
|
'ids' => $this->get_real_group_ids($config,$token,1),
|
|
'granularity' => 'hourly',
|
|
'startTime' => date("c",strtotime('today')),
|
|
'endTime' => date('c',time())
|
|
];
|
|
|
|
$json_data = json_encode($dataArr);
|
|
$result = $this->post_token($url,$json_data,false,[],$token);
|
|
|
|
$res_data = json_decode($result,true);
|
|
|
|
$list = (array) $res_data['data'];
|
|
$existsArr = [];
|
|
$resultList = [];
|
|
foreach ($list['list'] as $value) {
|
|
|
|
$value['netValue'] = $value['netValue'] > 0 ? $value['netValue'] : 0;
|
|
$groupId = $value['groupId'];
|
|
|
|
# 统计时间
|
|
if (!isset($resultList[$groupId]['statisticsTime'])) {
|
|
$resultList[$groupId]['statisticsTime'] = $value['statTime'];
|
|
}
|
|
# 去重后进客流
|
|
if (!isset($resultList[$groupId]['enter'])) {
|
|
$resultList[$groupId]['enter'] = $value['noRepeatOutNum'];
|
|
} else {
|
|
$resultList[$groupId]['enter'] += $value['noRepeatOutNum'];
|
|
}
|
|
# 去重后出客流
|
|
if (!isset($resultList[$groupId]['exit'])) {
|
|
$resultList[$groupId]['exit'] = $value['flowOutNum'];
|
|
} else {
|
|
$resultList[$groupId]['exit'] += $value['flowOutNum'];
|
|
}
|
|
# 总经过人数
|
|
if (!isset($resultList[$groupId]['pass'])) {
|
|
$resultList[$groupId]['pass'] = $value['holdValue'] ?: 0;
|
|
} else {
|
|
$resultList[$groupId]['pass'] += $value['holdValue'] ?: 0;
|
|
}
|
|
# 保有量
|
|
if (!isset($resultList[$groupId]['holdValue'])) {
|
|
$resultList[$groupId]['holdValue'] = $value['netValue'];
|
|
} else {
|
|
$resultList[$groupId]['holdValue'] += $value['netValue'];
|
|
}
|
|
# 去重前进入人数
|
|
if (!isset($resultList[$groupId]['allEnter'])) {
|
|
$resultList[$groupId]['allEnter'] = $value['flowInNum'];
|
|
} else {
|
|
$resultList[$groupId]['allEnter'] += $value['flowInNum'];
|
|
}
|
|
# 去重前离开人数
|
|
if (!isset($resultList[$groupId]['allExit'])) {
|
|
$resultList[$groupId]['allExit'] = $value['noRepeatInNum'];
|
|
} else {
|
|
$resultList[$groupId]['allExit'] += $value['noRepeatInNum'];
|
|
}
|
|
}
|
|
|
|
# 总和数据发送,存储
|
|
foreach ($resultList as $groupId => $insert_arr) {
|
|
$existsArr[] = $groupId;
|
|
$insert_arr['groupId'] = $groupId;
|
|
$insert_arr['regionId'] = '0';
|
|
$requestData[] = $insert_arr;
|
|
}
|
|
# 如果数据不存在,传输数据全部为0
|
|
$idsArr = explode(",",$dataArr['ids']);
|
|
foreach ($idsArr as $id) {
|
|
$is_continue = true;
|
|
if (empty($id)) {
|
|
continue;
|
|
}
|
|
if (in_array($id,$existsArr)) {
|
|
$is_continue = false;
|
|
}
|
|
if ($is_continue) {
|
|
$requestData[] = [
|
|
'groupId' => $id,
|
|
'regionId' => '0',
|
|
'statisticsTime' => date("Y-m-d\TH") . ':00:00.000+08:00',
|
|
'enter' => 0,
|
|
'exit' => 0,
|
|
'pass' => 0,
|
|
'holdValue' => 0,
|
|
'allEnter' => 0,
|
|
'allExit' => 0
|
|
];
|
|
}
|
|
}
|
|
} catch (\Exception $e) {
|
|
return $e->getMessage();
|
|
}
|
|
|
|
$requestRes = $this->request_create_data($requestData,'/api/pass.create/createPassengerFlowReal', $config['host_path'],true);
|
|
|
|
if (!$requestRes['status']) {
|
|
return $requestRes['msg'];
|
|
}
|
|
#$file = fopen('/tmp/passreal.txt','a');
|
|
#$file_msg = '['.date('Y-m-d H:i:s',time()).']';
|
|
#fwrite($file,$file_msg . PHP_EOL);
|
|
#fclose($file);
|
|
# file_put_contents('/tmp/passreal.txt','['.date('Y-m-d H:i:s',time()).']'.PHP_EOL,FILE_APPEND);
|
|
return true;
|
|
}
|
|
}
|
|
$Passall = new Passreal();
|
|
echo $Passall->run();
|
|
|