password)); return $xtToken === $token; } /** * 获取年各场馆统计数据 * @return array */ public function getYearVenueData() { $year = $this->request->param('year') ?: date('Y'); $token = $this->request->param('token'); if (!is_numeric($year)) return $this->renderError('请求失败'); if (empty($token)) return $this->renderError('请求失败'); if (!$this->validateToken($token)) return $this->renderError('请求验证不通过'); $dm = new Dm(); $start_time = "{$year}-01-01" . 'T00:00:00.000+08:00'; $end_time = "{$year}-12-31" . 'T23:59:59.000+08:00'; $yearWhere = '"date" =' . "'month'" . ' and "granularity"=' . "'monthly'" . ' and "statTime">=' . "'{$start_time}'" . ' and "statTime"<=' . "'{$end_time}'"; # 体育馆 体育场 劳务博物馆 游泳场馆 $tyData = []; $tyResult = $dm->select('bt_passenger_flow_all',$yearWhere,'"groupId","flowInNum","statTime"'); foreach ($tyResult as $item) { $groupId = $item['groupId']; $month = date("m", strtotime($item['statTime'])); if (!isset($tyData[$groupId]['sum_year'])) $tyData[$groupId]['sum_year'] = 0; $tyData[$groupId]['sum_year'] += $item['flowInNum']; if (!isset($tyData[$groupId]['month'][$month])) $tyData[$groupId]['month'][$month] = 0; $tyData[$groupId]['month'][$month] += $item['flowInNum']; } $data = [ 'yearDate' => $year, 'dataResult' => [] ]; foreach ($tyData as $groupId => $monthData) { $getGroup = $dm->find('bt_passenger_monitor_group',' "groupId" = ' . "'{$groupId}'"); $groupName = $getGroup['groupName'] ?: ''; $tempData = [ 'name' => $groupName, 'year' => $monthData['sum_year'], 'monthDate' => [] ]; foreach ($monthData['month'] as $month => $value) { $tempData['monthDate'][] = [ 'month' => $month, 'value' => $value ]; } $data['dataResult'][] = $tempData; } # 文化馆 图书馆 $start_time = "{$year}-01-01 00:00:00"; $end_time = "{$year}-12-31 23:59:59"; $whWhere = '"date"=' . "'month'" .' and "group_id"<>' . "'lib001'" .' and "create_time">=' . "'{$start_time}'" .' and "create_time"<=' . "'{$end_time}'"; $whResult = $dm->select('bt_library_data',$whWhere,'"group_id","group_name","incount","create_time"'); $whData = []; $whGroupName = []; foreach ($whResult as $item) { $groupId = $item['group_id']; $month = date("m", strtotime($item['create_time'])); $whGroupName[$groupId] = $item['group_name']; if (!isset($whData[$groupId]['sum_year'])) $whData[$groupId]['sum_year'] = 0; $whData[$groupId]['sum_year'] += $item['incount']; if (!isset($whData[$groupId]['month'][$month])) $whData[$groupId]['month'][$month] = 0; $whData[$groupId]['month'][$month] += $item['incount']; } foreach ($whData as $groupId => $monthData) { $groupName = isset($whGroupName[$groupId]) ? $whGroupName[$groupId] : ''; $tempData = [ 'name' => $groupName, 'year' => $monthData['sum_year'], 'monthDate' => [] ]; foreach ($monthData['month'] as $month => $value) { $tempData['monthDate'][] = [ 'month' => $month, 'value' => $value ]; } $data['dataResult'][] = $tempData; } return $this->renderSuccess($data); } }