From 15f023b87582953daa164aeef1b01a36500fa3e0 Mon Sep 17 00:00:00 2001 From: wanghongjun <1445693971@qq,com> Date: Wed, 19 Jul 2023 16:51:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E5=AE=9E=E6=97=B6=E6=9F=A5?= =?UTF-8?q?=E7=BB=84id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- module/Pass/Pass.php | 48 ++++++++++++++++++++++++++++++++++++++++++++ tasks/Pass.php | 2 +- tasks/Passall.php | 2 +- tasks/Passreal.php | 2 +- 4 files changed, 51 insertions(+), 3 deletions(-) diff --git a/module/Pass/Pass.php b/module/Pass/Pass.php index 7d074f4..797895a 100644 --- a/module/Pass/Pass.php +++ b/module/Pass/Pass.php @@ -53,4 +53,52 @@ class Pass $groupIdArr = array_column($groupRes,'groupId') ?: []; return $dataType == 2 ? $groupIdArr : implode(",",$groupIdArr); } + + /** + * 获取实时统计组id + * @param $config + * @param $token + * @param $dataType + * @return array|string + */ + public static function getRealGroupIds($config,$token,$dataType) + { + $url = $config['host_url'] . "/api/cfas/v2/countGroup/groups/page"; + $pageNo = 1; + $pageSize = 1; + + $groupIdArr = []; + while (1) { + + $dataArr = [ + "regionId"=> "root000000", + "isCascade"=> 1, + "groupType"=> 0, + "statType"=> 0, + "pageNo"=> $pageNo, + "pageSize"=> $pageSize + ]; + + $json_data = json_encode($dataArr); + $result = post_token($url,$json_data,false,[],$token); + $res_data = json_decode($result,true); + + # 存在错误结束循环 + if ($res_data['code'] != 0) break; + # 数据不存在结束循环 + $list = (array)$res_data['data']['list']; + if (empty($list)) break; + + foreach ($list as $value) { + + $groupIdArr[] = $value['groupId']; + } + + # 总条数不够结束循环 + if (count($list) < $pageSize) break; + ++$pageNo; + } + + return $dataType == 2 ? $groupIdArr : implode(",",$groupIdArr); + } } \ No newline at end of file diff --git a/tasks/Pass.php b/tasks/Pass.php index 0b28178..c1821ca 100644 --- a/tasks/Pass.php +++ b/tasks/Pass.php @@ -33,7 +33,7 @@ class Pass $requestData = []; try { - $ids = \task\module\Pass\Pass::getGroupIds(1); + $ids = \task\module\Pass\Pass::getRealGroupIds($config,$token,1); foreach ($arr as $granularity => $value) { $dataArr = [ diff --git a/tasks/Passall.php b/tasks/Passall.php index f9727cc..04a5083 100644 --- a/tasks/Passall.php +++ b/tasks/Passall.php @@ -43,7 +43,7 @@ class Passall $requestData = []; try { - $ids = Pass::getGroupIds(1); + $ids = Pass::getRealGroupIds($config,$token,1); foreach ($dateArr as $date => $value) { diff --git a/tasks/Passreal.php b/tasks/Passreal.php index 336b0f9..61d598c 100644 --- a/tasks/Passreal.php +++ b/tasks/Passreal.php @@ -19,9 +19,9 @@ class Passreal try{ $url = $config['host_url'] . "/api/cfas/v3/passenger/realTime"; - $dataArr = Pass::getGroupIds(2); $token = get_access_token(); + $dataArr = Pass::getRealGroupIds($config,$token,2); $json_data = json_encode($dataArr); $result = post_token($url,$json_data,false,[],$token);