diff --git a/web/ws_task_real.php b/web/ws_task_real.php index b9271db..ac75391 100644 --- a/web/ws_task_real.php +++ b/web/ws_task_real.php @@ -1,5 +1,7 @@ count = 4; // 进程启动后定时推送数据给客户端 $worker->onWorkerStart = function($worker) use($config) { @@ -22,12 +24,29 @@ $worker->onWorkerStart = function($worker) use($config) { $time_interval = 3; Timer::add($time_interval, function()use($worker,$dm){ foreach($worker->connections as $connection) { - $data = []; - $passData = PassFlow::realTimeData($dm); - $returnData = ['data' => $passData]; - $data['realTimeData'] = $returnData; - $toDayGroupsEnterNum = PassFlow::toDayGroupsEnterNum($dm); - $data['toDayGroupsEnterNum'] = $toDayGroupsEnterNum; + + $data = [ + 'code' => 1, + 'msg' => 'success' + ]; + + # 客流趋势 与 占比 + $allGroupTimeNumDay = PassFlow::allGroupTimeNum(['groupsId' => '','granularity' => 'daily'],$dm); + $allGroupTimeNumMonth = PassFlow::allGroupTimeNum(['groupsId' => '','granularity' => 'monthly'],$dm); + $allGroupTimeNumYear = PassFlow::allGroupTimeNum(['groupsId' => '','granularity' => 'yearly'],$dm); + $data['allGroupTimeNumDay'] = ['data' => $allGroupTimeNumDay]; + $data['allGroupTimeNumMonth'] = ['data' => $allGroupTimeNumMonth]; + $data['allGroupTimeNumYear'] = ['data' => $allGroupTimeNumYear]; + + # 今日各场馆 + $data['toDayGroupsEnterNum'] = ['data' => PassFlow::toDayGroupsEnterNum($dm)]; + + # 中间总数据 + $data['allGroupNum'] = ['data' => PassFlow::allGroupNum($dm)]; + + # 各场馆实时 + $data['realTimeData'] = ['data' => PassFlow::realTimeData($dm)]; + $connection->send(json_encode($data)); } }); diff --git a/web/ws_task_real_ty.php b/web/ws_task_real_ty.php new file mode 100644 index 0000000..a2d8fa0 --- /dev/null +++ b/web/ws_task_real_ty.php @@ -0,0 +1,54 @@ +count = 4; +// 进程启动后定时推送数据给客户端 +$worker->onWorkerStart = function($worker) use($config) { + # 数据库链接不能在主进程,方法外是主进程 + $dm = new Dm($config['connections']['dm']); + // 每2.5秒执行一次 + $time_interval = 3; + Timer::add($time_interval, function()use($worker,$dm){ + foreach($worker->connections as $connection) { + $data = []; + # 主动推送对应页面数据 + + $groupIdArr = []; + $groupRes = $dm->select('bt_passenger_monitor_group',['type' => 1]); + foreach ($groupRes as $groupRow) $groupIdArr[] = $groupRow['groupId']; + $groupIdStr = !empty($groupIdArr) ? implode("|",$groupIdArr) : ''; + + # 累计服务人数 + $data['allGroupNum'] = ['data' => PassFlow::allGroupNum($dm,['groupsId' => $groupIdStr])]; + + # 24小时 + $data['getPassHoursData'] = ['data' => PassFlow::getPassHoursData($dm,['groupsId' => $groupIdStr])]; + + # 24小时进馆人数 + $data['realTimeData'] = ['data' => PassFlow::realTimeData($dm)]; + + # 各场馆服务人次占比 + $data['allGroupTimeNum'] = ['data' => PassFlow::allGroupTimeNum(['groupsId' => $groupIdStr,'granularity' => 'daily'],$dm)]; + + # 各场馆服务人次趋势 + $data['toDayGroupsEnterNum'] = ['data' => PassFlow::toDayGroupsEnterNum($dm,['groupsId' => $groupIdStr])]; + + $connection->send(json_encode($data)); + } + }); +}; +Worker::runAll(); \ No newline at end of file diff --git a/web/ws_task_real_wh.php b/web/ws_task_real_wh.php new file mode 100644 index 0000000..7269de5 --- /dev/null +++ b/web/ws_task_real_wh.php @@ -0,0 +1,46 @@ +count = 4; +// 进程启动后定时推送数据给客户端 +$worker->onWorkerStart = function($worker) use($config) { + # 数据库链接不能在主进程,方法外是主进程 + $dm = new Dm($config['connections']['dm']); + // 每2.5秒执行一次 + $time_interval = 3; + Timer::add($time_interval, function()use($worker,$dm){ + foreach($worker->connections as $connection) { + $data = []; + # 主动推送对应页面数据 + + # 累计服务人数 - 24小时服务人次 + $data['allFlowTrends'] = ['data' => PassFlow::allFlowTrends($dm)]; + + # 24小时总服务人次趋势 + $data['getLibraryHours24List'] = ['data' => PassFlow::getLibraryHours24List($dm)]; + + # 各场馆服务人次趋势 + $data['getLibraryGroupHoursList'] = ['data' => PassFlow::getLibraryGroupHoursList($dm)]; + + # 图书馆数据统计 + $data['getLibraryLeaseData'] = ['data' => PassFlow::getLibraryLeaseData($dm)]; + + $connection->send(json_encode($data)); + } + }); +}; +Worker::runAll(); \ No newline at end of file