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();