Example #1
0
 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();
 }
Example #3
0
    {
        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();
 }