From 066fffc3e2d8107df55dd41d4d50dbe5b69886b1 Mon Sep 17 00:00:00 2001
From: colly_wyx <wangyixiong_007@163.com>
Date: Sat, 28 Apr 2018 10:22:40 +0800
Subject: [PATCH] 解决上传原始数据接口bug
---
Yfs/Domain/DataDaily.php | 52 +++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 45 insertions(+), 7 deletions(-)
diff --git a/Yfs/Domain/DataDaily.php b/Yfs/Domain/DataDaily.php
index 3074457..9bcfc23 100644
--- a/Yfs/Domain/DataDaily.php
+++ b/Yfs/Domain/DataDaily.php
@@ -7,6 +7,7 @@
public function __construct(){
//DI()->redis = new Redis_Lite(DI()->config->get('app.redis.servers'));
$this->model = new Model_DataDaily();
+ $this->hourly_model = new Model_DataHourly();
}
/**
@@ -19,18 +20,55 @@
public function getUserDataList($user_id, $start_time, $end_time){
$start_time = strtotime($start_time);
$end_time = strtotime($end_time);
- $diff_days = ($end_time - $start_time) / 86400;
- $total_days = $diff_days + 1;//���������������������
- $step = ($total_days - $total_days % 7) / 7;
- $days_arr= array();
- for($i = 0; $i < 7*$step ; $i+=$step){
- $days_arr[] = date('Y-m-d', strtotime('+'.$i.' day', $start_time));
+ if($end_time > $start_time){
+ $diff_days = ($end_time - $start_time) / 86400;
+ $total_days = $diff_days + 1;//���������������������
+ //$step = ($total_days - $total_days % 7) / 7;
+ $days_arr= array();
+ for($i = 0; $i < $total_days ; $i+=1){
+ $days_arr[] = date('Y-m-d', strtotime('+'.$i.' day', $start_time));
+ }
+ $result = $this->model->getList(array('user_id' => $user_id, 'date' => array('$in' => $days_arr)));
}
- $result = $this->model->getList(array('user_id' => $user_id, 'date' => array('$in' => $days_arr)));
+ else{
+ $result = $this->hourly_model->getList(array('user_id' => $user_id, 'date' => date('Y-m-d', $start_time)), array(), array('time_level' => 1));
+ }
+
return $result;
}
/**
+ * ������������������������������������������
+ * @param [type] $user_id [description]
+ * @param [type] $start_time [description]
+ * @param [type] $end_time [description]
+ * @return [type] [description]
+ */
+ public function getUserDataAvg($user_id, $start_time, $end_time){
+
+ // if($start_time == $end_time){
+ // $result = $this->model->get(array('date' => $start_time));
+ // }
+ // else{
+ $result = $this->model->aggregate(
+ array(
+ array(
+ '$match' => array('date' => array('$gte' => $start_time, '$lte' => $end_time), 'user_id' => $user_id)
+ ),
+ array(
+ '$group' => array('_id' => '$user_id', 'day_avg' => array('$avg' => '$day_avg'))
+ ),
+ array(
+ '$project' => array('_id' => 0, 'day_avg' => 1)
+ )
+ )
+ );
+ //}
+
+ return isset($result[0]['day_avg'])?$result[0]['day_avg']:0;
+ }
+
+ /**
* ������������
* @param [type] $start_time [description]
* @param [type] $end_time [description]
--
Gitblit v1.8.0