From 5b00b28782f2c773aa9b63ac61584b70a366526c Mon Sep 17 00:00:00 2001 From: colly_wyx <wangyixiong_007@163.com> Date: Fri, 30 Mar 2018 16:59:44 +0800 Subject: [PATCH] 更新 --- application/library/Service/Daily.php | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 51 insertions(+), 1 deletions(-) diff --git a/application/library/Service/Daily.php b/application/library/Service/Daily.php index cec26f9..bdaa784 100644 --- a/application/library/Service/Daily.php +++ b/application/library/Service/Daily.php @@ -4,6 +4,7 @@ public function __construct(){ $this->daily_model = new DailyModel(); + $this->hourly_model = new HourlyModel(); } public function summary($day){ @@ -25,14 +26,63 @@ $time = date('Y-m-d H:i:s'); foreach ($datas as $data) { $param['user_id'] = $data['user_id']; - $param['day_avg'] = substr($data['day_avg'], 0, 5); + $param['day_avg'] = floatval(substr($data['day_avg'], 0, 5)); $param['date'] = $day; $param['create_time'] = $time; $this->daily_model->add($param); unset($param); + for($i = 1; $i <= 8; $i ++){ + if($i == 1){ + $start_hour = '00:00:00'; + $end_hour = '02:59:59'; + } + elseif($i == 8){ + $start_hour = '21:00:00'; + $end_hour = '23:59:59'; + } + else{ + $hour = ($i - 1)*3; + $start_hour = $hour.':00:00'; + $end_hour = ($hour + 2).':59:59'; + if($hour < 10 ){ + $start_hour = '0'.$start_hour; + } + if($hour + 2 < 10){ + $end_hour = '0'.$end_hour; + } + + } + $hourly_datas = $data_model->aggregate( + array( + array( + '$match' => array('create_time' => array('$gte' => $day.' '.$start_hour, '$lte' => $day.' '.$end_hour)) + ), + array( + '$group' => array('_id' => '$user_id', 'avg' => array('$avg' => '$value')) + ), + array( + '$project' => array('_id' => 0, 'user_id' => '$_id', 'avg' => 1) + ) + ) + ); + if($hourly_datas){ + foreach ($hourly_datas as $hourly_data) { + $param['user_id'] = $hourly_data['user_id']; + $param['hour_avg'] = floatval(substr($hourly_data['avg'], 0, 5)); + $param['date'] = $day; + $param['start_hour'] = $start_hour; + $param['end_hour'] = $end_hour; + $param['time_level'] = $i; + $param['create_time'] = $time; + $this->hourly_model->add($param); + unset($param); + } + } + } } $dailyLog_service = new Service_DailyLog(); $dailyLog_service->addLog($day); + return true; } else{ -- Gitblit v1.8.0