colly
2017-08-07 327df6ae83ee1d3cc61dd4589bf03e2217f40d4d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?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));
    }
 
    
 
}