Esempio n. 1
0
 /**
  * Get problem from specific problem id
  * @return mixed
  */
 public function getProblem()
 {
     $problem = Problem::find(intval(Input::get('id')));
     $data_log = null;
     $data_log_query = DataLog::code($problem->station->code)->valid($problem->data_type);
     if ($problem->data_type == "WATER") {
         $data_log_query = $data_log_query->from($problem->start_datetime, 7200)->to($problem->end_datetime, 7200)->cleanOrigin("WATER");
     } elseif ($problem->data_type == "RAIN") {
         $data_log_query = $data_log_query->from($problem->start_datetime, 3600 * 5)->to($problem->end_datetime, 3600 * 5)->hourly()->cleanOrigin("RAIN");
     }
     $data_log = $data_log_query->get()->toArray();
     $data_log_new = array();
     foreach ($data_log as $item) {
         if ($problem->data_type == 'WATER') {
             $data_log_new[] = [strtotime($item['date'] . ' ' . $item['time']) * 1000, floatval($item['origin_water1'])];
         } else {
             $data_log_new[] = [strtotime($item['date'] . ' ' . $item['time']) * 1000, floatval($item['origin_rain1h'])];
         }
     }
     $output = array('id' => $problem->id, 'data_type' => $problem->data_type, 'problem_type' => $problem->problem_type, 'start_datetime' => $problem->start_datetime, 'start_datetime_unix' => strtotime($problem->start_datetime), 'end_datetime' => $problem->end_datetime, 'end_datetime_unix' => strtotime($problem->end_datetime), 'num' => $problem->num, 'station' => array('name' => $problem->station->name, 'code' => $problem->station->code, 'tambon_name' => $problem->station->tambon_name, 'amphoe_name' => $problem->station->amphoe_name, 'province_name' => $problem->station->province_name, 'part' => $problem->station->part, 'basin' => $problem->station->basin), 'data' => $data_log_new);
     return Response::json($output);
 }