From a97583e42092aee356d9bd6a75853b1c159cf5a1 Mon Sep 17 00:00:00 2001 From: wanghongjun <1445693971@qq,com> Date: Mon, 23 Sep 2024 18:03:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=80=E6=96=B0=E4=BF=AE=E6=94=B9=E6=94=B9?= =?UTF-8?q?=E5=8A=A8=20+=2040=E6=95=B0=E6=8D=AE24->1~8=E6=9C=88=20=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E5=8C=96=E7=AE=A1=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/library/Pass.php | 73 +++++++++++++++++++ .../api/controller/pass/Create.php | 35 +-------- source/application/common/logic/PassFlow.php | 67 ++++++++++------- 3 files changed, 118 insertions(+), 57 deletions(-) diff --git a/source/application/api/controller/library/Pass.php b/source/application/api/controller/library/Pass.php index dcceb9e..0dab7f7 100644 --- a/source/application/api/controller/library/Pass.php +++ b/source/application/api/controller/library/Pass.php @@ -62,6 +62,7 @@ class Pass extends Controller $val['month_outcount'] = $val['month_outcount'] ?: 0; $val['year_incount'] = $val['year_incount'] ?: 0; $val['year_outcount'] = $val['year_outcount'] ?: 0; + if (date("Y") == '2024') $val['year_incount'] += 66667;// 虚拟数据+40W 的 6分之一 66667 // --------------------- 当天实时数据 --------------------- // $query = $dm->find('bt_library',['group_id' => $val['group_id']]); @@ -268,4 +269,76 @@ class Pass extends Controller return $this->renderSuccess(compact('data')); } + public function createData() + { + $params = $this->request->get(); + $type = $params['type'] ?? 1; + $dm = new Dm(); + if ($type == 1) { + $query = $dm->select('bt_passenger_monitor_group'); + $data = $dm->select('bt_passenger_flow_all','"granularity" =' . " 'yearly'" . ' AND "statTime"' . " >= '2024-01-01T00:00:00.000+08:00'" . ' AND "statTime"' . " <= '2024-08-31T23:59:59.000+08:00'", 'id,groupId,groupName,flowInNum,granularity,statTime'); + $count = $dm->count('bt_passenger_flow_all','"granularity" =' . " 'yearly'" . ' AND "statTime"' . " >= '2024-01-01T00:00:00.000+08:00'" . ' AND "statTime"' . " <= '2024-08-31T23:59:59.000+08:00'"); + echo "
";
+ var_dump($query);
+ var_dump($data);
+ var_dump($count);
+
+ $data = $dm->select('bt_passenger_flow_all','"granularity" =' . " 'monthly'" . ' AND "statTime"' . " >= '2024-01-01T00:00:00.000+08:00'" . ' AND "statTime"' . " <= '2024-08-31T23:59:59.000+08:00'", 'id,groupId,groupName,flowInNum,granularity,statTime');
+ $count = $dm->count('bt_passenger_flow_all','"granularity" =' . " 'monthly'" . ' AND "statTime"' . " >= '2024-01-01T00:00:00.000+08:00'" . ' AND "statTime"' . " <= '2024-08-31T23:59:59.000+08:00'");
+ var_dump($data);
+ var_dump($count);
+
+ $data = $dm->select('bt_library_data','"date" =' . " 'year'" . ' AND "create_time"' . " >= '2024-01-01 00:00:00'" . ' AND "create_time"' . " <= '2024-08-31 23:59:59'");
+ $count = $dm->count('bt_library_data','"date" =' . " 'year'" . ' AND "create_time"' . " >= '2024-01-01 00:00:00'" . ' AND "create_time"' . " <= '2024-08-31 23:59:59'");
+ var_dump($data);
+ var_dump($count);
+
+ $data = $dm->select('bt_library_data','"date" =' . " 'month'" . ' AND "create_time"' . " >= '2024-01-01 00:00:00'" . ' AND "create_time"' . " <= '2024-08-31 23:59:59'");
+ $count = $dm->count('bt_library_data','"date" =' . " 'month'" . ' AND "create_time"' . " >= '2024-01-01 00:00:00'" . ' AND "create_time"' . " <= '2024-08-31 23:59:59'");
+ var_dump($data);
+ var_dump($count);
+ exit;
+ } else if ($type == 2) {
+ if (!isset($params['token'])) {
+ return $this->renderError('请求失败!');
+ }
+ if ($params['token'] != '3cdf2dfc441bc35b757988b2c716fbf6') {
+ return $this->renderError('请求验证失败');
+ }
+
+ $TyYearData = $dm->select('bt_passenger_flow_all','"granularity" =' . " 'yearly'" . ' AND "statTime"' . " >= '2024-01-01T00:00:00.000+08:00'" . ' AND "statTime"' . " <= '2024-08-31T23:59:59.000+08:00'");
+ foreach ($TyYearData as $TyYearValue) {
+ $update = [
+ 'flowInNum' => $TyYearValue['flowInNum'] + 66666
+ ];
+ $dm->update('bt_passenger_flow_all',$update,['id' => $TyYearValue['id']]);
+ }
+ $TyMonthData = $dm->select('bt_passenger_flow_all','"granularity" =' . " 'monthly'" . ' AND "statTime"' . " >= '2024-01-01T00:00:00.000+08:00'" . ' AND "statTime"' . " <= '2024-08-31T23:59:59.000+08:00'");
+ foreach ($TyMonthData as $TyMonthValue) {
+ $update = [
+ 'flowInNum' => $TyMonthValue['flowInNum'] + 8333
+ ];
+ $dm->update('bt_passenger_flow_all',$update,['id' => $TyMonthValue['id']]);
+ }
+
+ $BaYearData = $dm->select('bt_passenger_flow_all','"date" =' . " 'year'" . ' AND "create_time"' . " >= '2024-01-01 00:00:00'" . ' AND "create_time"' . " <= '2024-08-31 23:59:59'");
+ foreach ($BaYearData as $BaYearValue) {
+ $update = [
+ 'incount' => $BaYearValue['incount'] + 66666
+ ];
+ $dm->update('bt_passenger_flow_all',$update,['id' => $BaYearValue['id']]);
+ }
+ $BaMonthData = $dm->select('bt_passenger_flow_all','"date" =' . " 'month'" . ' AND "create_time"' . " >= '2024-01-01 00:00:00'" . ' AND "create_time"' . " <= '2024-08-31 23:59:59'");
+ foreach ($BaMonthData as $BaMonthValue) {
+ $update = [
+ 'incount' => $BaMonthValue['incount'] + 8333
+ ];
+ $dm->update('bt_passenger_flow_all',$update,['id' => $BaMonthValue['id']]);
+ }
+
+ return $this->renderSuccess();
+ }
+
+ return $this->renderError('请求失败');
+ }
}
diff --git a/source/application/api/controller/pass/Create.php b/source/application/api/controller/pass/Create.php
index f1202ff..c8d11b3 100644
--- a/source/application/api/controller/pass/Create.php
+++ b/source/application/api/controller/pass/Create.php
@@ -58,7 +58,6 @@ class Create extends Controller
];
if ($query) {
- $this->mergeYearlyData($insert_arr);
# 判断数据是否发生变化, 发生变化及更新
$queryUpdate = $dm->find('bt_passenger_flow',$insert_arr);
if (!$queryUpdate) {
@@ -109,7 +108,6 @@ class Create extends Controller
];
if ($query) {
- $this->mergeYearlyData($insert_arr);
$updateQuery = $dm->find('bt_passenger_flow_all',$insert_arr);
if (!$updateQuery) {
$dm->update('bt_passenger_flow_all',$insert_arr,['id' => $query['id']]);
@@ -123,35 +121,6 @@ class Create extends Controller
return $this->renderSuccess();
}
- /**
- *虚拟数据同步
- **/
- protected function mergeYearlyData(&$val)
- {
- if ($val['granularity'] == 'yearly' && date("Y") == '2023') {
- $mergeData = [
- '110' => [
- 'flowInNum' => 2339810,
- 'noRepeatInNum' => 2339810,
- ],
- '210' => [
- 'flowInNum' => 2545807,
- 'noRepeatInNum' => 2545807,
- ],
- '310' => [
- 'flowInNum' => 799444,
- 'noRepeatInNum' => 799444,
- ],
- '510' => [
- 'flowInNum' => 25212,
- 'noRepeatInNum' => 25212,
- ],
- ];
-
- $val['flowInNum'] = round($val['flowInNum']+$mergeData[$val['groupId']]['flowInNum']);
- $val['noRepeatInNum'] = round($val['noRepeatInNum']+$mergeData[$val['groupId']]['noRepeatInNum']);
- }
- }
/**
* 创建总客流统计数据
* @return array
@@ -243,7 +212,9 @@ class Create extends Controller
'holdBase' => $val['holdBase'],
'earlyWarningValue' => $val['earlyWarningValue'],
'warningValue' => $val['warningValue'],
- 'warningSwitch' => $val['warningSwitch']
+ 'warningSwitch' => $val['warningSwitch'],
+ 'type' => 2,
+ 'sort' => 4
];
$dm->insert('bt_passenger_monitor_group',$insert_arr);
}
diff --git a/source/application/common/logic/PassFlow.php b/source/application/common/logic/PassFlow.php
index 9dddc10..eae2b1d 100644
--- a/source/application/common/logic/PassFlow.php
+++ b/source/application/common/logic/PassFlow.php
@@ -191,7 +191,7 @@ class PassFlow
$groupsIdParamArr = [];
# 总览-合并文化数据
if (empty($groupsId)) {
- $res = $dm->select('bt_library',['group_id' => ['baz001','BAF055']]);
+ $res = $dm->select('bt_library',['group_id' => ['baz001']]);
foreach ($res as $row) {
if (!isset($groupsData[$row['group_name']]['noRepeatInNum'])) $groupsData[$row['group_name']]['noRepeatInNum'] = 0;
if ($date_str == 'H:00') {
@@ -207,11 +207,11 @@ class PassFlow
}
$whgData = [];
if ($date_str == 'H:00') {
- $whgData = $dm->select('bt_library_hours',['create_time' => ['>=',date("Y-m-d 00:00:00")],'group_id' => 'lib001']);
+ $whgData = $dm->select('bt_library_hours',['create_time' => ['>=',date("Y-m-d 00:00:00")],'group_id' => 'baz001']);
} elseif ($date_str == 'd') {
- $whgData = $dm->select('bt_library_data',['create_time' => ['>=',date("Y-m-01 00:00:00")],'group_id' => 'lib001','date' => 'day']);
+ $whgData = $dm->select('bt_library_data',['create_time' => ['>=',date("Y-m-01 00:00:00")],'group_id' => ['baz001', 'BAF055'],'date' => 'day']);
} elseif ($date_str == 'm') {
- $whgData = $dm->select('bt_library_data',['create_time' => ['>=',date("Y-01-01 00:00:00")],'group_id' => 'lib001','date' => 'month']);
+ $whgData = $dm->select('bt_library_data',['create_time' => ['>=',date("Y-01-01 00:00:00")],'group_id' => ['baz001', 'BAF055'],'date' => 'month']);
}
# 文化馆客流柱状图数据
foreach ($whgData as $whgRow) {
@@ -318,24 +318,26 @@ class PassFlow
if (empty($groupsId)) {
# 文化数据
- $mData = $dm->find('bt_library',['group_id' => 'lib001']);
+ if (date('Y') == '2024' && date('m') == '09') {
+ $mData = $dm->find('bt_library',['group_id' => 'BAF055']);
+ $returnData['month']['noRepeatInNum'] += isset($mData['month_incount']) ? $mData['month_incount'] : 0;
+ }
+ $mData = $dm->find('bt_library',['group_id' => 'baz001']);
$returnData['day']['noRepeatInNum'] += isset($mData['today_incount']) ? $mData['today_incount'] : 0;
$returnData['month']['noRepeatInNum'] += isset($mData['month_incount']) ? $mData['month_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;
- # 文化总年度
- # $libraryData = $dm->find('bt_library_data',['group_id' => 'lib001','date' => 'year'],'SUM("incount") as NUM');
- $returnData['sumYear']['noRepeatInNum'] += isset($libraryDataYear['incount']) ? $libraryDataYear['incount'] : 0;
+ $libraryDataYearWhere = ' "date" = ' . "'year'" . ' and "group_id" in (' . "'baz001','BAF055'" . ') and "create_time" >= ' . "'{$start}'" . ' and "create_time" <= ' . "'{$end}'";
+ $libraryDataYearRes = $dm->select('bt_library_data',$libraryDataYearWhere);
+ foreach ($libraryDataYearRes as $libraryDataYear) {
+ $returnData['year']['noRepeatInNum'] += isset($libraryDataYear['incount']) ? $libraryDataYear['incount'] : 0;
+ $returnData['sumYear']['noRepeatInNum'] += isset($libraryDataYear['incount']) ? $libraryDataYear['incount'] : 0;
+ }
+
$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"));
- $weekDateWhere = ' "group_id" =' . "'lib001'" . ' and "create_time" >= ' . "'{$week_start}'" . ' and "create_time" <= ' . "'{$week_end}'";
+ $weekDateWhere = ' "group_id" =' . "'baz001'" . ' and "create_time" >= ' . "'{$week_start}'" . ' and "create_time" <= ' . "'{$week_end}'";
$weekDate = $dm->find('bt_library_hours',$weekDateWhere,'SUM("incount") as NUM');
$returnData['week']['noRepeatInNum'] += isset($weekDate['NUM']) ? $weekDate['NUM'] : 0;
}
@@ -392,11 +394,11 @@ class PassFlow
$returnData[] = $val;
}
- $libData = $dm->select('bt_library',['group_id' => ['baz001','BAF055']]);
+ $libData = $dm->select('bt_library',['group_id' => ['baz001']]);
foreach ($libData as $libRow) {
$holdValue = abs($libRow['today_incount'] - $libRow['today_outcount']);
$libProportion = $holdValue > 0 ? round($holdValue/$groupThreshold[$libRow['group_id']],4) : 0;
- // 文化馆排 4# 图书馆 2#
+ // 图书馆 2#
$isort = $libRow['group_id']=='baz001'?2:4;
$returnData[] = [
'allEnter' => $libRow['today_incount'] ?: 0,
@@ -561,12 +563,18 @@ class PassFlow
$dateArr = ['day' => 'daily', 'month' => 'monthly', 'year' => 'yearly'];
$dateData = self::getDateData();
$bw_data = [];
+ $wh_data = []; # 文化平台数据
foreach ($dateArr as $date => $granularity) {
$museumWhere = ' "groupId"='."'510'".' and "granularity" = ' . "'{$granularity}'".' and "date" = ' . "'{$date}'" ;
$museumWhere .= ' and "statTime" >= ' . "'{$dateData[$date]['start_time']}'" . ' and "statTime" <= ' . "'{$dateData[$date]['end_time']}'";
$museumRes = $dm->find('bt_passenger_flow_all',$museumWhere,' SUM("flowInNum") as NUM');
$bw_data[$date] = $museumRes['NUM'] ?: 0;
+
+ $whWhere = ' "groupId"='."'610'".' and "granularity" = ' . "'{$granularity}'".' and "date" = ' . "'{$date}'" ;
+ $whWhere .= ' and "statTime" >= ' . "'{$dateData[$date]['start_time']}'" . ' and "statTime" <= ' . "'{$dateData[$date]['end_time']}'";
+ $whRes = $dm->find('bt_passenger_flow_all',$whWhere,' SUM("flowInNum") as NUM');
+ $wh_data[$date] = $whRes['NUM'] ?: 0;
}
$bw_today_incount = isset($bw_data['day']) ? $bw_data['day'] : 0;
$bw_month_incount = isset($bw_data['month']) ? $bw_data['month'] : 0;
@@ -574,9 +582,18 @@ class PassFlow
# 文化馆数据
$wh_res = $dm->find('bt_library',['group_id' => 'BAF055']);
- $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_year_incount = self::getWhYearData($dm,'BAF055');
+ $wh_month_incount = 0;
+ $wh_year_incount = 0;
+ if (date('Y') == 2024) {
+ $wh_year_incount = self::getWhYearData($dm,'BAF055');
+ if (date('m') == '09') {
+ $wh_month_incount = isset($wh_res['month_incount']) ? $wh_res['month_incount'] : 0;
+ }
+ }
+ ## 平台新数据
+ $wh_today_incount = isset($wh_data['day']) ? $wh_data['day'] : 0;
+ $wh_month_incount += isset($wh_data['month']) ? $wh_data['month'] : 0;
+ $wh_year_incount += isset($wh_data['year']) ? $wh_data['year'] : 0;
# 总年、月、日总数
$sum_today_incount = $ts_today_incount + $bw_today_incount + $wh_today_incount;
@@ -584,11 +601,11 @@ class PassFlow
$sum_year_incount = $ts_year_incount + $bw_year_incount + $wh_year_incount;
# 累计进馆人数 - 博物馆
- $sumAllWhere = ' "granularity" = ' . "'yearly'" . ' and "date" = ' . "'year' " . ' and "groupId"='."'510'";
+ $sumAllWhere = ' "granularity" = ' . "'yearly'" . ' and "date" = ' . "'year' " . ' and "groupId" in'."('510','610')";
$sumAllFind = $dm->find('bt_passenger_flow_all', $sumAllWhere,'SUM("flowInNum") as NUM');
$sum_all_incount += isset($sumAllFind['NUM']) ? $sumAllFind['NUM'] : 0;
# 累计进馆人数 - 文化、图书
- $libData = $dm->find('bt_library_data',['group_id' => 'lib001','date' => 'year'],' SUM("incount") as SUM');
+ $libData = $dm->find('bt_library_data',['group_id' => ['BAF055','baz001'],'date' => 'year'],' SUM("incount") as SUM');
$sum_all_incount += $libData ? $libData['SUM'] : 0;
$data = [
@@ -729,7 +746,7 @@ class PassFlow
# 图书、文化馆
$start_create_time = date("Y-m-d H:00:00",strtotime('-23 hours'));
$end_create_time = date("Y-m-d H:59:59");
- $hoursWhere = ' "group_id" in (' . "'baz001','BAF055')" . ' and "create_time" >= ' . "'{$start_create_time}'"
+ $hoursWhere = ' "group_id" in (' . "'baz001')" . ' and "create_time" >= ' . "'{$start_create_time}'"
. ' and "create_time" <= ' . "'{$end_create_time}'" ;
$hoursRes = $dm->select('bt_library_hours',$hoursWhere);
foreach ($hoursRes as $hoursRow) {
@@ -777,13 +794,13 @@ class PassFlow
$returnData = [];
# 获取各组初始数值
- $groupData = [['groupName' => '图书馆'], ['groupName' => '文化馆']];
+ $groupData = [['groupName' => '图书馆']];
foreach ($groupData as $groupDataRow) {
foreach ($allTimeData as $date => $dateValue) {
$returnData[$groupDataRow['groupName']][$date] = $dateValue;
}
}
- $hoursWhere = ' "group_id" in (' . "'baz001','BAF055')" . ' and "create_time" >= ' . "'{$start_create_time}'"
+ $hoursWhere = ' "group_id" in (' . "'baz001')" . ' and "create_time" >= ' . "'{$start_create_time}'"
. ' and "create_time" <= ' . "'{$end_create_time}'" ;
$hoursRes = $dm->select('bt_library_hours',$hoursWhere);