|
|
|
@ -27,6 +27,8 @@ class Index extends BaseController |
|
|
|
return $ret; |
|
|
|
} |
|
|
|
|
|
|
|
protected $token = 'y871T5okLEegC6WrcKN259Mhy4AGDcjm'; |
|
|
|
|
|
|
|
/** |
|
|
|
* 分时时间段接口 |
|
|
|
* @return array |
|
|
|
@ -38,19 +40,29 @@ class Index extends BaseController |
|
|
|
if (empty($granularity)) return json_encode(['code' => 403, 'date参数不能为空']); |
|
|
|
|
|
|
|
$dateData = getTargetDate(); |
|
|
|
$returnData = []; |
|
|
|
$allTimeData = []; |
|
|
|
$groupsData = []; |
|
|
|
if ($granularity == 'daily') { |
|
|
|
$list = $this->getGroupData('hourly',$dateData['day']['c_start_time'],$dateData['day']['c_end_time']); |
|
|
|
$returnData = $this->handleGroupData($list); |
|
|
|
$data = $this->handleGroupData($list); |
|
|
|
$allTimeData = $data['allTimeData']; |
|
|
|
$groupsData = $data['groupsData']; |
|
|
|
} elseif ($granularity == 'monthly') { |
|
|
|
$list = $this->getGroupData('daily',$dateData['month']['c_start_time'],$dateData['month']['c_end_time']); |
|
|
|
$returnData = $this->handleGroupData($list,'d'); |
|
|
|
$data = $this->handleGroupData($list,'d'); |
|
|
|
$allTimeData = $data['allTimeData']; |
|
|
|
$groupsData = $data['groupsData']; |
|
|
|
} elseif ($granularity == 'yearly') { |
|
|
|
$list = $this->getGroupData('monthly',$dateData['year']['c_start_time'],date('c')); |
|
|
|
$returnData = $this->handleGroupData($list,'m'); |
|
|
|
$data = $this->handleGroupData($list,'m'); |
|
|
|
$allTimeData = $data['allTimeData']; |
|
|
|
$groupsData = $data['groupsData']; |
|
|
|
} |
|
|
|
|
|
|
|
return json_encode(['code' => 0, 'data' => $returnData]); |
|
|
|
return json_encode(['code' => 0, 'msg' => '成功', 'data' => [ |
|
|
|
'allTimeData' => $allTimeData, |
|
|
|
'groupsData' => $groupsData |
|
|
|
]]); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
@ -71,7 +83,7 @@ class Index extends BaseController |
|
|
|
]; |
|
|
|
|
|
|
|
$json_data = json_encode($dataArr); |
|
|
|
$result = postToken($url,$json_data,false,[],'rqhzG171BROnwBhhcZJJDudZ4vdvC3nm'); |
|
|
|
$result = postToken($url,$json_data,false,[],$this->token); |
|
|
|
|
|
|
|
$res_data = json_decode($result,true); |
|
|
|
if ($res_data['code'] != 0) return json_encode(['code' => 403, 'msg' => $res_data['msg']]); |
|
|
|
@ -86,34 +98,48 @@ class Index extends BaseController |
|
|
|
* @return array |
|
|
|
*/ |
|
|
|
protected function handleGroupData($list,$date_str = 'H:00') { |
|
|
|
$returnData = []; |
|
|
|
$allTimeData = []; |
|
|
|
$groupsData = []; |
|
|
|
if ($date_str == 'H:00') { |
|
|
|
for ($i = 9; $i < 23; $i++) { |
|
|
|
$str = strlen($i) == 1 ? '0'.$i.':00' : $i.':00'; |
|
|
|
$returnData[$str] = 0; |
|
|
|
$allTimeData[$str] = 0; |
|
|
|
} |
|
|
|
} 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; |
|
|
|
$returnData[$str] = 0; |
|
|
|
$allTimeData[$str] = 0; |
|
|
|
} |
|
|
|
} 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; |
|
|
|
$returnData[$str] = 0; |
|
|
|
$allTimeData[$str] = 0; |
|
|
|
} |
|
|
|
} |
|
|
|
$sumFlowInNum = 0; |
|
|
|
foreach ($list as $value) { |
|
|
|
$date = date($date_str,ceil($value['createTime'] / 1000) + (8*3600)); |
|
|
|
if (!isset($returnData[$date])) continue; |
|
|
|
$returnData[$date] = $value['flowInNum']; |
|
|
|
$sumFlowInNum += $value['flowInNum']; // 进馆总人数 |
|
|
|
if (!isset($groupsData[$value['groupName']]['flowInNum'])) $groupsData[$value['groupName']]['flowInNum'] = 0; |
|
|
|
$groupsData[$value['groupName']]['flowInNum'] += $value['flowInNum']; // 分租进馆人数 |
|
|
|
$date = date($date_str,ceil($value['createTime'] / 1000) + (8*3600)); // 各时间端进馆人数 |
|
|
|
if (!isset($allTimeData[$date])) continue; |
|
|
|
$allTimeData[$date] += $value['flowInNum']; |
|
|
|
} |
|
|
|
ksort($allTimeData); |
|
|
|
|
|
|
|
// 计算各组占比 |
|
|
|
foreach ($groupsData as &$val) { |
|
|
|
$val['proportion'] = (round($val['flowInNum']/$sumFlowInNum,2) * 100) ."%"; |
|
|
|
} |
|
|
|
ksort($returnData); |
|
|
|
return $returnData; |
|
|
|
|
|
|
|
return [ |
|
|
|
'allTimeData' => $allTimeData, // 总客流趋势时间段 |
|
|
|
'groupsData' => $groupsData // 各组总数及占比 |
|
|
|
]; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
@ -166,7 +192,7 @@ class Index extends BaseController |
|
|
|
]; |
|
|
|
|
|
|
|
$json_data = json_encode($data); |
|
|
|
$result = postToken($url,$json_data,false,[],'rqhzG171BROnwBhhcZJJDudZ4vdvC3nm'); |
|
|
|
$result = postToken($url,$json_data,false,[],$this->token); |
|
|
|
|
|
|
|
$res_data = json_decode($result,true); |
|
|
|
if ($res_data['code'] != 0) { |
|
|
|
@ -210,15 +236,22 @@ class Index extends BaseController |
|
|
|
]; |
|
|
|
|
|
|
|
$json_data = json_encode($dataArr); |
|
|
|
$result = postToken($url,$json_data,false,[],'rqhzG171BROnwBhhcZJJDudZ4vdvC3nm'); |
|
|
|
$result = postToken($url,$json_data,false,[],$this->token); |
|
|
|
|
|
|
|
$res_data = json_decode($result,true); |
|
|
|
|
|
|
|
if ($res_data['code'] != 0) return json_encode(['code' => 403, 'msg' => $res_data['msg']]); |
|
|
|
$returnData = []; |
|
|
|
|
|
|
|
$sumAllEnter = 0; |
|
|
|
foreach ($res_data['data'] as $value) { |
|
|
|
$returnData[$value['regionId']] = $value['allEnter']; |
|
|
|
if (!isset($returnData[$value['groupId']]['allEnter'])) $returnData[$value['groupId']]['allEnter'] = 0; |
|
|
|
$returnData[$value['groupId']]['allEnter'] += $value['allEnter']; |
|
|
|
$sumAllEnter += $value['allEnter']; |
|
|
|
} |
|
|
|
|
|
|
|
foreach ($returnData as &$val) { |
|
|
|
$val['proportion'] = (round($val['allEnter']/$sumAllEnter,2) * 100) ."%"; |
|
|
|
} |
|
|
|
|
|
|
|
return json_encode(['code' => 0, 'msg' => '成功', 'data' => $returnData]); |
|
|
|
|