Ejemplo n.º 1
0
 /**
  * @return array
  * @Get("/closeToMe/{user}")
  * @ParamConverter("user", class="SubwayBuddyUserBundle:User")
  */
 public function getClosestBuddyAction(User $user)
 {
     $em = $this->getDoctrine()->getManager();
     $entitys = $em->getRepository('SubwayBuddyUserBundle:User')->findAll();
     if (!$entitys) {
         throw $this->createNotFoundException('Data not found.');
     }
     $longitude = $user->getLongitude();
     $latitude = $user->getLatitude();
     $max_longitude = $longitude + 0.5;
     $max_latitude = $latitude + 0.5;
     $min_longitude = $longitude - 0.5;
     $min_latitude = $latitude - 0.5;
     $buddys = array();
     foreach ($entitys as $buddy) {
         if ($buddy->getLongitude() && $buddy->getLatitude()) {
             if ($min_longitude < $buddy->getLongitude() && $buddy->getLongitude() < $max_longitude or $min_longitude > $buddy->getLongitude() && $buddy->getLongitude() > $max_longitude) {
                 if ($min_latitude < $buddy->getLatitude() && $buddy->getLatitude() < $max_latitude or $min_latitude > $buddy->getLatitude() && $buddy->getLatitude() > $max_latitude) {
                     if ($buddy != $user) {
                         $fetchedTime = $buddy->getFetechedTime();
                         $fetchedTimeS = $fetchedTime->format('d') . "/" . $fetchedTime->format('m') . "/" . $fetchedTime->format('Y') . " " . $fetchedTime->format('H') . ":" . $fetchedTime->format('i') . ":" . $fetchedTime->format('s');
                         $buddys[] = array("user" => $buddy->getUsername(), "longitude" => $buddy->getLongitude(), "latatitude" => $buddy->getLatitude(), "subjects" => $buddy->getSubjects(), "fetchedTime" => $fetchedTimeS, "fetchedTimeTimestamp" => strtotime($fetchedTime));
                     }
                 }
             }
         }
     }
     $view = Vieww::create();
     $view->setData($buddys)->setStatusCode(200);
     return $view;
 }