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