data_hourly_model = new DataHourlyModel(); $this->data_three_hourly_model = new DataThreeHourlyModel(); $this->task_model = new TaskModel(); } public function summary(){ $hourly_model = new DataHourlyModel(); $task_lists = $this->task_model->getList(); foreach ($task_lists as $task) { $day = $task['date']; $user_id = $task['user_id']; $time_slot_arr = array(); for($time_slot = 1; $time_slot<=8 ; $time_slot++){ $min_hour = ($time_slot - 1)*3; $max_hour = $time_slot * 3; // $start_hour = $hour.':00:00'; // $end_hour = ($hour + 3).':00:00'; // if($hour < 10 ){ // $start_hour = '0'.$start_hour; // } // if($hour + 2 < 10){ // $end_hour = '0'.$end_hour; // } echo '日期:'.$day.' 时间段:'.$start_hour.'---'.$end_hour."======".$user_id."
"; $hourly_data = $hourly_model->aggregate( array( array( '$match' => array('hour' => array('$gte' => $min_hour, '$lt' => $max_hour, 'user_id' => $user_id, 'data' => $day) ), array( '$group' => array('_id' => '$user_id', 'avg' => array('$avg' => '$value')) ), array( '$project' => array('_id' => 0, 'user_id' => '$_id', 'avg' => 1) ) ) ); print_r($hourly_data); if($hourly_data){ $time_slot_arr[$time_slot] = $hourly_data[0]['avg']; } } $is_creat_data = false; $data_three_hourly = $this->data_three_hourly_model->get(array('user_id' => $user_id, 'date' => $day)); $update_id = ""; if(!$data_three_hourly){ $is_creat_data = true; } else{ $update_id = $data_three_hourly['_id']; } foreach ($time_slot_arr as $slot => $val) { $param = array(); if($is_creat_data){ $param['user_id'] = $user_id; $param['date'] = $day; for($i = 1; $i <= 8; $i++){ if($i == $slot){ $param['time_slot_'.$i] = floatval(substr($val, 0, 5)); } else{ $param['time_slot_'.$i] = 0; } } $param['create_time'] = date('Y-m-d H:i:s'); $this->data_three_hourly_model->add($param); $update_id = $param['_id']; $is_creat_data = false; } else{ $param['time_slot_'.$slot] = floatval(substr($val, 0, 5)); $this->data_three_hourly_model->update($param, array('_id' => $update_id)); } } if($day != date('Y-m-d')){ $this->task_model->delete(array('_id' => $task['_id'])); } } } }