| <?php | 
| /** | 
|  * 用户业务类 | 
|  */ | 
| class Domain_Data { | 
|   | 
|     public function __construct(){ | 
|         //DI()->redis = new Redis_Lite(DI()->config->get('app.redis.servers')); | 
|        $this->model = new Model_Data(); | 
|     } | 
|   | 
|     /** | 
|      * 上传数据并保存入redis | 
|      * @return [type] [description] | 
|      */ | 
|     public function upload($data){ | 
|         $arr = array(); | 
|         $arr['user_id'] = $data['userid']; | 
|         $arr['lon'] = $data['lon']; | 
|         $arr['lat'] = $data['lat']; | 
|         $arr['address'] = $data['address']; | 
|         foreach ($data['data'] as $value) {  | 
|             $arr['value'] = $value['value']; | 
|             $arr['create_time'] = $value['time']; | 
|             $arr['date'] = date('Y-m-d', strtotime($value)); | 
|             $this->model->add($arr); | 
|             if(isset($arr['_id'])) | 
|                 unset($arr['_id']); | 
|         } | 
|         return true; | 
|         //$a = rand(1,100); | 
|         //DI()->redis->set_lPush('test', $a, 'master'); | 
|   | 
|     } | 
|   | 
|     public function getList(){ | 
|         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)); | 
|     } | 
|   | 
|      | 
|   | 
| } |