Browse Source

获取年各场馆统计数据接口

master
wanghongjun 2 years ago
parent
commit
9423ee36a2
  1. 124
      source/application/api/controller/pass/Statistics.php

124
source/application/api/controller/pass/Statistics.php

@ -0,0 +1,124 @@
<?php
namespace app\api\controller\pass;
use app\api\controller\Controller;
use app\common\dm\Dm;
class Statistics extends Controller
{
private $password = 'batyg@2023';
private function validateToken($token) {
$xtToken = md5(base64_encode($this->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);
}
}
Loading…
Cancel
Save