Browse Source

同步线上版本PassFlow

master
wanghongjun 1 year ago
parent
commit
b769a216f3
  1. 44
      source/application/common/logic/PassFlow.php

44
source/application/common/logic/PassFlow.php

@ -46,7 +46,7 @@ class PassFlow
{ {
$granularity = $param['granularity']; $granularity = $param['granularity'];
$type = isset($param['type']) ?$param['type']:''; $type = isset($param['type'])?$param['type']:'';
if (empty($granularity)) return ['code' => 0, 'msg' => '缺少参数:granularity']; if (empty($granularity)) return ['code' => 0, 'msg' => '缺少参数:granularity'];
if (!in_array($granularity,self::$granularity)) return ['code' => 0, 'msg' => '参数错误:granularity']; if (!in_array($granularity,self::$granularity)) return ['code' => 0, 'msg' => '参数错误:granularity'];
@ -148,7 +148,7 @@ class PassFlow
$groupsData = []; $groupsData = [];
$dkey=[]; $dkey=[];
if ($date_str == 'H:00') { if ($date_str == 'H:00') {
$hour = (int) date('H'); $hour = (int) date('H');
for ($i = 0; $i <= $hour; $i++) { for ($i = 0; $i <= $hour; $i++) {
$str = strlen($i) == 1 ? '0'.$i.':00' : $i.':00'; $str = strlen($i) == 1 ? '0'.$i.':00' : $i.':00';
$allTimeData[$str]['num'] = 0; $allTimeData[$str]['num'] = 0;
@ -311,7 +311,8 @@ class PassFlow
} }
#累计进馆人数 #累计进馆人数
$sumWhere = ' "granularity" = ' . "'yearly'" . ' and "date" = ' . "'year' {$paramWhere}"; $sumWhere = ' "granularity" = ' . "'yearly'" . ' and "date" = ' . "'year' {$paramWhere}"
. ' and "statTime" >= ' . "'{$dateData['year']['start_time']}'" . ' and "statTime" <= ' . "'{$dateData['year']['end_time']}'";
$sumFind = $dm->find('bt_passenger_flow_all', $sumWhere,'SUM("flowInNum") as NUM'); $sumFind = $dm->find('bt_passenger_flow_all', $sumWhere,'SUM("flowInNum") as NUM');
$returnData['sumYear']['noRepeatInNum'] = isset($sumFind['NUM']) ? $sumFind['NUM'] : 0; $returnData['sumYear']['noRepeatInNum'] = isset($sumFind['NUM']) ? $sumFind['NUM'] : 0;
@ -320,11 +321,18 @@ class PassFlow
$mData = $dm->find('bt_library',['group_id' => 'lib001']); $mData = $dm->find('bt_library',['group_id' => 'lib001']);
$returnData['day']['noRepeatInNum'] += isset($mData['today_incount']) ? $mData['today_incount'] : 0; $returnData['day']['noRepeatInNum'] += isset($mData['today_incount']) ? $mData['today_incount'] : 0;
$returnData['month']['noRepeatInNum'] += isset($mData['month_incount']) ? $mData['month_incount'] : 0; $returnData['month']['noRepeatInNum'] += isset($mData['month_incount']) ? $mData['month_incount'] : 0;
$returnData['year']['noRepeatInNum'] += isset($mData['year_incount']) ? $mData['year_incount'] : 0; //$returnData['year']['noRepeatInNum'] += isset($mData['year_incount']) ? $mData['year_incount'] : 0;
$start = date("Y-01-01 00:00:00",time());
$end = date("Y-12-31 23:59:59",time());
$libraryDataYearWhere = ' "date" = ' . "'year'" . ' and "group_id" = ' . "'lib001'" . ' and "create_time" >= ' . "'{$start}'" . ' and "create_time" <= ' . "'{$end}'";
$libraryDataYear = $dm->find('bt_library_data',$libraryDataYearWhere);
$returnData['year']['noRepeatInNum'] += isset($libraryDataYear['incount']) ? $libraryDataYear['incount'] : 0;
// $returnData['sumYear']['noRepeatInNum'] += isset($mData['year_incount']) ? $mData['year_incount'] : 0; // $returnData['sumYear']['noRepeatInNum'] += isset($mData['year_incount']) ? $mData['year_incount'] : 0;
# 文化总年度 # 文化总年度
$libraryData = $dm->find('bt_library_data',['group_id' => 'lib001','date' => 'year'],'SUM("incount") as NUM'); # $libraryData = $dm->find('bt_library_data',['group_id' => 'lib001','date' => 'year'],'SUM("incount") as NUM');
$returnData['sumYear']['noRepeatInNum'] += isset($libraryData['NUM']) ? $libraryData['NUM'] : 0; $returnData['sumYear']['noRepeatInNum'] += isset($libraryDataYear['incount']) ? $libraryDataYear['incount'] : 0;
$week_start = date("Y-m-d 00:00:00",strtotime('this week')); $week_start = date("Y-m-d 00:00:00",strtotime('this week'));
$week_end = date("Y-m-d 23:59:59",strtotime("-".(date("w") - 7) . "day")); $week_end = date("Y-m-d 23:59:59",strtotime("-".(date("w") - 7) . "day"));
$weekDateWhere = ' "group_id" =' . "'lib001'" . ' and "create_time" >= ' . "'{$week_start}'" . ' and "create_time" <= ' . "'{$week_end}'"; $weekDateWhere = ' "group_id" =' . "'lib001'" . ' and "create_time" >= ' . "'{$week_start}'" . ' and "create_time" <= ' . "'{$week_end}'";
@ -348,7 +356,7 @@ class PassFlow
public static function realTimeData($dm = null) public static function realTimeData($dm = null)
{ {
if (empty($dm)) $dm = new Dm(); if (empty($dm)) $dm = new Dm();
$list = $dm->select('bt_passenger_flow_real'); $list = $dm->select('bt_passenger_flow_real');
$data = []; $data = [];
@ -365,6 +373,7 @@ class PassFlow
$returnData = []; $returnData = [];
foreach ($data as $groupId => $val) { foreach ($data as $groupId => $val) {
if (!isset($groupThreshold[$groupId])) continue;
$threshold = $groupThreshold[$groupId]; $threshold = $groupThreshold[$groupId];
if (is_array($threshold)) { if (is_array($threshold)) {
$interval = self::getIntervalType($val['holdValue'],$threshold['min'],$threshold['max']); $interval = self::getIntervalType($val['holdValue'],$threshold['min'],$threshold['max']);
@ -382,6 +391,7 @@ class PassFlow
$val['sort']=intval($getGroup['sort']); $val['sort']=intval($getGroup['sort']);
$returnData[] = $val; $returnData[] = $val;
} }
$libData = $dm->select('bt_library',['group_id' => ['baz001','BAF055']]); $libData = $dm->select('bt_library',['group_id' => ['baz001','BAF055']]);
foreach ($libData as $libRow) { foreach ($libData as $libRow) {
$holdValue = abs($libRow['today_incount'] - $libRow['today_outcount']); $holdValue = abs($libRow['today_incount'] - $libRow['today_outcount']);
@ -513,12 +523,22 @@ class PassFlow
'list' => $listData 'list' => $listData
]; ];
} }
if(empty($groupsId)){ if(empty($groupsId)){
$data = self::getLibraryGroupHoursList($dm,false,$data); $data = self::getLibraryGroupHoursList($dm,false,$data);
} }
return $data; return $data;
} }
protected static function getWhYearData($dm,$group_id)
{
$start = date("Y-01-01 ") ."00:00:00";
$end = date("Y-12-31 ") ."23:59:59";
$where = ' "date" = ' . "'year'" . ' and "group_id" = ' . "'{$group_id}'"
. ' and "create_time" >= ' . "'{$start}'" . ' and "create_time" <= ' . "'{$end}'";
$libData = $dm->find('bt_library_data',$where,'incount');
return $libData['incount'] ?: 0;
}
/** /**
* 文化-博物-图书-数据接口 总计服务人数 * 文化-博物-图书-数据接口 总计服务人数
* @return array * @return array
@ -535,7 +555,7 @@ class PassFlow
$ts_res = $dm->find('bt_library',['group_id' => 'baz001']); $ts_res = $dm->find('bt_library',['group_id' => 'baz001']);
$ts_today_incount = isset($ts_res['today_incount']) ? $ts_res['today_incount'] : 0; $ts_today_incount = isset($ts_res['today_incount']) ? $ts_res['today_incount'] : 0;
$ts_month_incount = isset($ts_res['month_incount']) ? $ts_res['month_incount'] : 0; $ts_month_incount = isset($ts_res['month_incount']) ? $ts_res['month_incount'] : 0;
$ts_year_incount = isset($ts_res['year_incount']) ? $ts_res['year_incount'] : 0; $ts_year_incount = self::getWhYearData($dm,'baz001');
# 劳务博物馆数据 # 劳务博物馆数据
$dateArr = ['day' => 'daily', 'month' => 'monthly', 'year' => 'yearly']; $dateArr = ['day' => 'daily', 'month' => 'monthly', 'year' => 'yearly'];
@ -556,7 +576,7 @@ class PassFlow
$wh_res = $dm->find('bt_library',['group_id' => 'BAF055']); $wh_res = $dm->find('bt_library',['group_id' => 'BAF055']);
$wh_today_incount = isset($wh_res['today_incount']) ? $wh_res['today_incount'] : 0; $wh_today_incount = isset($wh_res['today_incount']) ? $wh_res['today_incount'] : 0;
$wh_month_incount = isset($wh_res['month_incount']) ? $wh_res['month_incount'] : 0; $wh_month_incount = isset($wh_res['month_incount']) ? $wh_res['month_incount'] : 0;
$wh_year_incount = isset($wh_res['year_incount']) ? $wh_res['year_incount'] : 0; $wh_year_incount = self::getWhYearData($dm,'BAF055');
# 总年、月、日总数 # 总年、月、日总数
$sum_today_incount = $ts_today_incount + $bw_today_incount + $wh_today_incount; $sum_today_incount = $ts_today_incount + $bw_today_incount + $wh_today_incount;

Loading…
Cancel
Save