diff --git a/source/application/common/logic/PassFlow.php b/source/application/common/logic/PassFlow.php index 291503d..95695c1 100644 --- a/source/application/common/logic/PassFlow.php +++ b/source/application/common/logic/PassFlow.php @@ -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 = [];