public static function sendNotification($flag, $valueArray) { $api_key = "AIzaSyBH2OD9dUrh9yoYSowf_Fi5b2619AnJsbs"; $regIdArray = []; $message = []; $url = "https://android.googleapis.com/gcm/send"; switch ($flag) { case 'TR': $tracker_name = $valueArray[0]; $track_id = $valueArray[1]; $username = TrackId::where('track_id', '=', $track_id)->first(); $registrationIDs = RegisteredDevice::where('username', '=', $tracker_name)->get(); $message = array("flag" => "TR", "user" => $username->username); foreach ($registrationIDs as $regId) { array_push($regIdArray, $regId->reg_id); } break; case 'TJ': $lat = $valueArray[0]; $lng = $valueArray[1]; $address = self::getaddress($lat, $lng); $ctime = $valueArray[2]; $registrationIDs = RegisteredDevice::all(array('reg_id')); $message = array("flag" => 'TJ', "lat" => $lat, "lng" => $lng, "address" => $address, "ctime" => $ctime); foreach ($registrationIDs as $regId) { array_push($regIdArray, $regId->reg_id); } break; case 'ST': $tracker_name = $valueArray[0]; $track_id = $valueArray[1]; $registrationIDs = RegisteredDevice::where('username', '=', $tracker_name)->get(); $message = array("flag" => "ST", "user" => $track_id); foreach ($registrationIDs as $regId) { array_push($regIdArray, $regId->reg_id); } break; } print_r($regIdArray); print_r($message); $fields = array('registration_ids' => $regIdArray, 'data' => array("message" => $message)); $headers = array('Authorization: key=' . $api_key, 'Content-Type: application/json'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); $result = curl_exec($ch); return $result; curl_close($ch); }
/** * Store a newly created resource in storage. * * @return Response */ public function store() { $track = new TrackId(); $track->track_id = Request::get('track_id'); $track->save(); }
{ return strtoupper(preg_replace('~^(.{8})(.{4})(.{4})(.{4})(.{12})$~', '\\1-\\2-\\3-\\4-\\5', md5(uniqid('', true)))); } /** * 获取追踪ID * * @author Sinute * @date 2015-04-19 * @return string */ public function get() { if (!$this->sTrackId) { $this->sTrackId = $this->generate(); } return $this->sTrackId; } /** * 设置追踪ID * * @author Sinute * @date 2015-04-22 * @param string $sTrackId 追踪ID */ public function set($sTrackId) { $this->sTrackId = $sTrackId; } } $obj = new TrackId(); echo $obj->get();
public function stop() { $track_id = Request::get('trackid'); $username = TrackId::where('track_id', $track_id)->first(); $trackers = TrackAssign::where('username', $username->username)->get(array('tracker_id')); foreach ($trackers as $tracker) { $values = array($tracker->tracker_id, $username->username); RestApi::sendNotification('ST', $values); } $username->status = 0; $username->save(); $query = "INSERT INTO track_user_backup (track_id, latitude, longitude, created_at, updated_at) SELECT track_id, latitude, longitude, created_at, updated_at FROM track_user WHERE track_id = '{$track_id}'"; DB::insert(DB::raw($query)); TrackUser::where('track_id', $track_id)->delete(); }