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);