<?php 
 | 
  
 | 
class Service_Daily extends System_Service_Base{ 
 | 
  
 | 
    public function __construct(){ 
 | 
        $this->daily_model = new DailyModel(); 
 | 
    } 
 | 
  
 | 
    public function summary($day){ 
 | 
        $data_model = new DataModel(); 
 | 
        $datas = $data_model->aggregate( 
 | 
            array( 
 | 
                array( 
 | 
                    '$match' => array('create_time' => array('$gte' => $day.' 00:00:00', '$lte' => $day.' 23:59:59')) 
 | 
                ), 
 | 
                array( 
 | 
                    '$group' => array('_id' => '$user_id', 'day_avg' => array('$avg' => '$value')) 
 | 
                ), 
 | 
                array( 
 | 
                    '$project' => array('_id' => 0, 'user_id' => '$_id', 'day_avg' => 1) 
 | 
                ) 
 | 
            )     
 | 
        ); 
 | 
        if($datas){ 
 | 
            $time = date('Y-m-d H:i:s'); 
 | 
            foreach ($datas as $data) { 
 | 
                $param['user_id'] = $data['user_id']; 
 | 
                $param['day_avg'] = substr($data['day_avg'], 0, 5); 
 | 
                $param['date'] = $day; 
 | 
                $param['create_time'] = $time; 
 | 
                $this->daily_model->add($param); 
 | 
                unset($param); 
 | 
            } 
 | 
            $dailyLog_service = new Service_DailyLog(); 
 | 
            $dailyLog_service->addLog($day); 
 | 
            return true; 
 | 
        } 
 | 
        else{ 
 | 
            return false; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 获取用户某个时间段内的数据 
 | 
     * @param  [type] $user_id    [description] 
 | 
     * @param  [type] $start_time [description] 
 | 
     * @param  [type] $end_time   [description] 
 | 
     * @return [type]             [description] 
 | 
     */ 
 | 
    public function getUserDataList($user_id, $days_arr){ 
 | 
        $user_dailys = $this->daily_model->getList(array('user_id' => $user_id, 'date' => array('$in' => $days_arr)), array(), array('_id' => 1)); 
 | 
        return $user_dailys; 
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
} 
 |