From 62d6bc507aec5c330bc698e81ad90cc2a130dd93 Mon Sep 17 00:00:00 2001
From: colly_wyx <wangyixiong_007@163.com>
Date: Tue, 17 Apr 2018 15:24:20 +0800
Subject: [PATCH] 更新接口

---
 application/library/Service/Daily.php           |   48 ----------------
 application/models/DataThreeHourly.php          |    7 ++
 application/library/Service/DataThreeHourly.php |   66 ++++++++++++++++++++++
 application/modules/Public/controllers/Data.php |   23 +++++++
 4 files changed, 95 insertions(+), 49 deletions(-)

diff --git a/application/library/Service/Daily.php b/application/library/Service/Daily.php
index 5717e37..d4c8a38 100644
--- a/application/library/Service/Daily.php
+++ b/application/library/Service/Daily.php
@@ -31,54 +31,6 @@
 				$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);
diff --git a/application/library/Service/DataThreeHourly.php b/application/library/Service/DataThreeHourly.php
new file mode 100644
index 0000000..ad81827
--- /dev/null
+++ b/application/library/Service/DataThreeHourly.php
@@ -0,0 +1,66 @@
+<?php
+
+class Service_Data_Three_Hourly extends System_Service_Base{
+
+	public function __construct(){
+		$this->data_three_hourly_model = new DataThreeHourlyModel();
+	}
+
+	public function isSummary($day, $time_level){
+		$result = $this->data_three_hourly_model->get(array('day' => $day, 'time_level' => $time_level));
+		if($result){
+			return true;
+		}
+		else{
+			return false;
+		}
+	}
+
+	public function summary($day, $time_level){
+		if($time_level > 0 && $time_level <= 8){
+			$hourly_model = new DataHourlyModel();
+			$hour = ($time_level - 1)*3;
+			$start_hour = $hour.':00:00';
+			$end_hour = ($hour + 2).':00:00';
+			if($hour < 10 ){
+				$start_hour = '0'.$start_hour;
+			}
+			if($hour + 2 < 10){
+				$end_hour = '0'.$end_hour;
+			}
+				
+			$hourly_datas = $hourly_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'] = $time_level;
+					$param['create_time'] = date('Y-m-d');
+					$this->data_three_hourly_model->add($param);
+					unset($param);
+				}
+			}
+		}
+		else{
+			return false;
+		}
+		
+	}
+
+
+}
\ No newline at end of file
diff --git a/application/models/DataThreeHourly.php b/application/models/DataThreeHourly.php
new file mode 100644
index 0000000..57585bd
--- /dev/null
+++ b/application/models/DataThreeHourly.php
@@ -0,0 +1,7 @@
+<?php
+
+class DataThreeHourlyModel extends System_Model_Base{
+
+	public $table = "data_three_hourly";
+	
+}
\ No newline at end of file
diff --git a/application/modules/Public/controllers/Data.php b/application/modules/Public/controllers/Data.php
index 2d2ab5b..e2bc821 100644
--- a/application/modules/Public/controllers/Data.php
+++ b/application/modules/Public/controllers/Data.php
@@ -32,6 +32,27 @@
 			die();
 		}
 
-	}
+
+		public function ThreeHourlyAction(){
+			$data_three_hourly_service = new Service_DataThreeHourly();
+			$day = $this->get('day', date('Y-m-d'));
+			echo $day;
+			if(!$data_three_hourly_service->isSummary($day)){
+				if($data_three_hourly_service->summary($day)){
+					echo "������������";
+				}
+				else{
+					echo "������������";
+				}
+			}
+			else{
+				echo '������������������������������';
+			}
+			
+			die();
+			
+		}
+
+	
 
 		
\ No newline at end of file

--
Gitblit v1.8.0