From 38d32cf992f9d5aa822bab85281b509a269bf113 Mon Sep 17 00:00:00 2001
From: colly_wyx <wangyixiong_007@163.com>
Date: Thu, 29 Mar 2018 17:20:51 +0800
Subject: [PATCH] 增加平均值及状态

---
 Yfs/Api/Data.php         |   15 ++++++++++++++-
 Yfs/Domain/DataDaily.php |   31 +++++++++++++++++++++++++++++++
 2 files changed, 45 insertions(+), 1 deletions(-)

diff --git a/Yfs/Api/Data.php b/Yfs/Api/Data.php
index 36c1ee3..8b0a200 100644
--- a/Yfs/Api/Data.php
+++ b/Yfs/Api/Data.php
@@ -60,8 +60,21 @@
         if($this->start_time == $this->end_time || $data_daily_service->checkTime($this->start_time, $this->end_time)){ 
             $result = $data_daily_service->getUserDataList($this->user_id, $this->start_time, $this->end_time);
             if($result){
+                $res_avg = $data_daily_service->getUserDataAvg($this->user_id, $this->start_time, $this->end_time);
+                if($res_avg < 0.25){
+                    $res_status = '������';
+                }
+                elseif($res_avg >= 0.25 && $res_avg < 0.8){
+                    $res_status = '������';
+                }
+                elseif($res_avg >= 8 && $res_avg < 2){
+                    $res_status = '������';
+                }
+                else{
+                    $res_status = '������';
+                }
                 $rs['msg'] = '������������������';
-                $rs['info'] = $result;
+                $rs['info'] = array('data' => $result, 'avg' => $res_avg, 'status' => $res_status);
             }
             else{
                 $rs['msg'] = '������������';
diff --git a/Yfs/Domain/DataDaily.php b/Yfs/Domain/DataDaily.php
index 57cf6f7..6f19bd8 100644
--- a/Yfs/Domain/DataDaily.php
+++ b/Yfs/Domain/DataDaily.php
@@ -38,6 +38,37 @@
     }
 
     /**
+     * ������������������������������������������
+     * @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', 'avg' => array('$avg' => '$day_avg'))
+                    ),
+                    array(
+                        '$project' => array('_id' => 0, 'avg' => 1)
+                    )
+                )   
+            );
+        }
+        return $result[0]['avg'];
+    }
+
+    /**
      * ������������
      * @param  [type] $start_time [description]
      * @param  [type] $end_time   [description]

--
Gitblit v1.8.0