|
|
|
@ -38,7 +38,7 @@ class PassFlow |
|
|
|
$where .= $where ? ' and "granularity" = ' . "'hourly'" : ' "granularity" = ' . "'hourly'"; |
|
|
|
$where .= ' and "statTime" >= ' . "'{$start_time}'" . ' and "statTime" <= ' . "'{$end_time}'"; |
|
|
|
$list = $dm->select('bt_passenger_flow', $where); |
|
|
|
$data = self::handleGroupData($list); |
|
|
|
$data = self::handleGroupData($list,'H:00',$dm); |
|
|
|
$allTimeData = $data['allTimeData']; |
|
|
|
$groupsData = $data['groupsData']; |
|
|
|
$dkeys = $data['dkeys']; |
|
|
|
@ -49,7 +49,7 @@ class PassFlow |
|
|
|
$where .= $where ? ' and "granularity" = ' . "'daily'" : ' "granularity" = ' . "'daily'"; |
|
|
|
$where .= ' and "statTime" >= ' . "'{$start_time}'" . ' and "statTime" <= ' . "'{$end_time}'"; |
|
|
|
$list = $dm->select('bt_passenger_flow', $where); |
|
|
|
$data = self::handleGroupData($list, 'd'); |
|
|
|
$data = self::handleGroupData($list, 'd',$dm); |
|
|
|
$allTimeData = $data['allTimeData']; |
|
|
|
$groupsData = $data['groupsData']; |
|
|
|
$dkeys = $data['dkeys']; |
|
|
|
@ -60,7 +60,7 @@ class PassFlow |
|
|
|
$where .= $where ? ' and "granularity" = ' . "'monthly'" : ' "granularity" = ' . "'monthly'"; |
|
|
|
$where .= ' and "statTime" >= ' . "'{$start_time}'" . ' and "statTime" <= ' . "'{$end_time}'"; |
|
|
|
$list = $dm->select('bt_passenger_flow', $where); |
|
|
|
$data = self::handleGroupData($list, 'm'); |
|
|
|
$data = self::handleGroupData($list, 'm',$dm); |
|
|
|
$allTimeData = $data['allTimeData']; |
|
|
|
$groupsData = $data['groupsData']; |
|
|
|
$dkeys = $data['dkeys']; |
|
|
|
@ -111,7 +111,7 @@ class PassFlow |
|
|
|
* @param $date_str |
|
|
|
* @return array |
|
|
|
*/ |
|
|
|
protected static function handleGroupData($list,$date_str = 'H:00') { |
|
|
|
protected static function handleGroupData($list,$date_str = 'H:00',$dm = null) { |
|
|
|
$allTimeData = []; |
|
|
|
$groupsData = []; |
|
|
|
$dkey=[]; |
|
|
|
@ -143,15 +143,28 @@ class PassFlow |
|
|
|
} |
|
|
|
$sumNoRepeatInNum = 0; |
|
|
|
foreach ($list as $value) { |
|
|
|
$sumNoRepeatInNum += $value['noRepeatInNum']; // 进馆总人数 |
|
|
|
$sumNoRepeatInNum += $value['flowInNum']; // 进馆总人数 |
|
|
|
if (!isset($groupsData[$value['groupName']]['noRepeatInNum'])) $groupsData[$value['groupName']]['noRepeatInNum'] = 0; |
|
|
|
$groupsData[$value['groupName']]['noRepeatInNum'] += $value['noRepeatInNum']; // 分租进馆人数 |
|
|
|
$date = date($date_str,ceil($value['createTime'] / 1000) + (8*3600)); // 各时间端进馆人数 |
|
|
|
$groupsData[$value['groupName']]['noRepeatInNum'] += $value['flowInNum']; // 分租进馆人数 |
|
|
|
$date = date($date_str,strtotime($value['statTime'])); // 各时间端进馆人数 |
|
|
|
if (!isset($allTimeData[$date])) continue; |
|
|
|
$allTimeData[$date]['num'] += $value['noRepeatInNum']; |
|
|
|
$allTimeData[$date]['num'] += $value['flowInNum']; |
|
|
|
} |
|
|
|
ksort($allTimeData); |
|
|
|
|
|
|
|
$res = $dm->select('bt_library',['group_id' => ['baz001','BAF055']]); |
|
|
|
foreach ($res as $row) { |
|
|
|
if ($date_str == 'H:00') { |
|
|
|
$sumNoRepeatInNum += $row['today_incount']; |
|
|
|
$groupsData[$row['group_name']]['noRepeatInNum'] = $row['today_incount']; |
|
|
|
} elseif ($date_str == 'd') { |
|
|
|
$sumNoRepeatInNum += $row['month_incount']; |
|
|
|
$groupsData[$row['group_name']]['noRepeatInNum'] = $row['month_incount']; |
|
|
|
} elseif ($date_str == 'm') { |
|
|
|
$sumNoRepeatInNum += $row['year_incount']; |
|
|
|
$groupsData[$row['group_name']]['noRepeatInNum'] = $row['year_incount']; |
|
|
|
} |
|
|
|
} |
|
|
|
// 计算各组占比 |
|
|
|
foreach ($groupsData as &$val) { |
|
|
|
$val['proportion'] = $val['noRepeatInNum'] > 0 ? (round($val['noRepeatInNum']/$sumNoRepeatInNum,2) * 100) ."%" : '0%'; |
|
|
|
@ -208,11 +221,11 @@ class PassFlow |
|
|
|
$returnData[$date]['noRepeatInNum'] = 0; |
|
|
|
foreach ($list as $value) { |
|
|
|
if ($date == 'year') { |
|
|
|
$yearSum += $value['noRepeatInNum']; |
|
|
|
$yearSum += $value['flowInNum']; |
|
|
|
$yDate = date('Y',ceil($value['createTime'] / 1000)); // 各今年端进馆人数 |
|
|
|
if ($y == $yDate) $returnData[$date]['noRepeatInNum'] += $value['noRepeatInNum']; |
|
|
|
if ($y == $yDate) $returnData[$date]['noRepeatInNum'] += $value['flowInNum']; |
|
|
|
} else { |
|
|
|
$returnData[$date]['noRepeatInNum'] += $value['noRepeatInNum']; |
|
|
|
$returnData[$date]['noRepeatInNum'] += $value['flowInNum']; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -327,7 +340,7 @@ class PassFlow |
|
|
|
$date = date('H:00',ceil($value['createTime'] / 1000)); // 各时间端进馆人数 |
|
|
|
if (!isset($allTimeData[$date])) continue; |
|
|
|
if (!isset($returnData[$value['groupName']][$allTimeData[$date]])) $returnData[$value['groupName']][$date] = 0; |
|
|
|
$returnData[$value['groupName']][$date] += $value['noRepeatInNum']; |
|
|
|
$returnData[$value['groupName']][$date] += $value['flowInNum']; |
|
|
|
} |
|
|
|
|
|
|
|
$data = []; |
|
|
|
@ -444,7 +457,7 @@ class PassFlow |
|
|
|
foreach ($list as $value) { |
|
|
|
$date = date('H:00',strtotime($value['statTime']) + (8*3600)); // 各时间端进馆人数 |
|
|
|
if (!isset($allTimeData[$date])) continue; |
|
|
|
$returnData[$date] += $value['noRepeatInNum']; |
|
|
|
$returnData[$date] += $value['flowInNum']; |
|
|
|
} |
|
|
|
|
|
|
|
$data = []; |
|
|
|
|