From 78981c784ebe0fda3d1ff20cabe4e21bed2e6549 Mon Sep 17 00:00:00 2001
From: colly <576734462@qq.com>
Date: Mon, 07 Aug 2017 17:13:16 +0800
Subject: [PATCH] 数据获取接口完成

---
 Yfs/Domain/Data.php      |   36 +----------
 Yfs/Model/DataDaily.php  |    8 ++
 Yfs/Api/Data.php         |   31 ++++++++--
 Yfs/Model/Base.php       |    7 ++
 Yfs/Domain/DataDaily.php |   55 ++++++++++++++++++
 5 files changed, 99 insertions(+), 38 deletions(-)

diff --git a/Yfs/Api/Data.php b/Yfs/Api/Data.php
index 3ccdf4e..6e104ea 100644
--- a/Yfs/Api/Data.php
+++ b/Yfs/Api/Data.php
@@ -56,19 +56,36 @@
      */
     public function getUserDataList(){
         $rs = array('code' => 0, 'msg' => '', 'info' => array());
-        $data_service = new Domain_Data();
-        $data_list = $data_service->getUserDataList($this->user_id, $this->start_time, $this->end_time);
-        if($data_list){
-            $rs['msg'] = '������������������';
-            $rs['info'] = $data_list;
+        $data_daily_service = new Domain_DataDaily();
+        if($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($data_list){
+                $rs['msg'] = '������������������';
+                $rs['info'] = $data_list;
+            }
+            else{
+                $rs['code'] = 1;
+                $rs['msg'] = '������������������';
+            }
         }
-        else{print_r($data_lsit);
+        else{
             $rs['code'] = 1;
-            $rs['msg'] = '������������������';
+            $rs['msg'] = '���������������������������������������������������������������������������7���';
         }
         return $rs;
     }
 
+    //public function updateTime(){
+    //    $data_service = new Domain_Data();
+   //     $datas = $data_service->getList();
+   //     foreach ($datas as $value) {
+    //        $data['_id'] = $value['_id'];
+    //        $data['date'] = date('Y-m-d', strtotime($value['create_time']));
+    //        $data_service->updateTime($data);
+    //    }
+
+  //  }
+
 
 
 
diff --git a/Yfs/Domain/Data.php b/Yfs/Domain/Data.php
index 8a447f1..60a685f 100644
--- a/Yfs/Domain/Data.php
+++ b/Yfs/Domain/Data.php
@@ -37,39 +37,13 @@
         return $this->model->getList();
     }
 
-    /**
-     * ���������������������������������������
-     * @param  [type] $user_id    [description]
-     * @param  [type] $start_time [description]
-     * @param  [type] $end_time   [description]
-     * @return [type]             [description]
-     */
-    public function getUserDataList($user_id, $start_time, $end_time){
-        $result = $this->model->aggregate(
-            array(
-                array(
-                   '$match' => array('create_time' => array('$gte' => $start_time.' 00:00:00', '$lte' => $end_time.' 23:59:59'), 'user_id' => $user_id)
-                ),
-                array(
-                    '$group' => array('_id' => '$date', 'day' => array('$avg' => '$value'))
-                ),
-                array(
-                    '$project' => array('_id' => 0, 'date'=> '$_id', 'day' => 1)
-                )
-            )
-        );
-        
-        print_r($result);
-        die();
-        return $this->model->getList(array('user_id' => $user_id, 'create_time' => array('$gte' => $start_time, '$lte' => $end_time)));
-    }
 
 
-    public function updateTime($data){
-        $id = $data['_id'];
-        unset($data['_id']);
-        return $this->model->update($data, array('_id' => $id));
-    }
+    //public function updateTime($data){
+    //    $id = $data['_id'];
+   //     unset($data['_id']);
+   //     return $this->model->update($data, array('_id' => $id));
+    //}
 
     
 
diff --git a/Yfs/Domain/DataDaily.php b/Yfs/Domain/DataDaily.php
new file mode 100644
index 0000000..3074457
--- /dev/null
+++ b/Yfs/Domain/DataDaily.php
@@ -0,0 +1,55 @@
+<?php
+/**
+ * ���������������
+ */
+class Domain_DataDaily {
+
+    public function __construct(){
+        //DI()->redis = new Redis_Lite(DI()->config->get('app.redis.servers'));
+       $this->model = new Model_DataDaily();
+    }
+
+    /**
+     * ���������������������������������������
+     * @param  [type] $user_id    [description]
+     * @param  [type] $start_time [description]
+     * @param  [type] $end_time   [description]
+     * @return [type]             [description]
+     */
+    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));
+        }
+        $result = $this->model->getList(array('user_id' => $user_id, 'date' => array('$in' => $days_arr)));
+        return $result;
+    }
+
+    /**
+     * ������������
+     * @param  [type] $start_time [description]
+     * @param  [type] $end_time   [description]
+     * @return [type]             [description]
+     */
+    public function checkTime($start_time, $end_time){
+        $start_time = strtotime($start_time);
+        $end_time = strtotime($end_time);
+        if($start_time > $end_time){
+            return false;
+        }
+        $diff_days = ($end_time - $start_time) / 86400;
+        $total_days = $diff_days + 1;//���������������������
+        if($total_days < 7){
+            return false;
+        }
+        return true;
+    }
+
+    
+
+}
diff --git a/Yfs/Model/Base.php b/Yfs/Model/Base.php
index c4c6f7d..2b904a2 100644
--- a/Yfs/Model/Base.php
+++ b/Yfs/Model/Base.php
@@ -46,6 +46,13 @@
         return $this->db->insert($this->table, $data);
     }
 
+    /**
+     * [add description]
+     */
+    public function save($data){
+        return $this->db->insert($this->table, $data);
+    }
+
     public function update($data, $query){
         return $this->db->update($this->table, $data, $query);
     }
diff --git a/Yfs/Model/DataDaily.php b/Yfs/Model/DataDaily.php
new file mode 100644
index 0000000..686847d
--- /dev/null
+++ b/Yfs/Model/DataDaily.php
@@ -0,0 +1,8 @@
+<?php
+
+class Model_DataDaily extends Model_Base{
+
+   public $table = 'data_daily';
+
+
+}

--
Gitblit v1.8.0