src/Controller/CronJobController.php line 65

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Vehicle;
  4. use App\Entity\VehiclePositions;
  5. use App\Service\ElasticService;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Psr\Log\LoggerInterface;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. class CronJobController extends AbstractController
  12. {
  13.     public function postPositions(EntityManagerInterface $emRequest $requestLoggerInterface $logger)
  14.     {
  15.         try {
  16.             $data1 $request->request->get('data');
  17.             $data json_decode($data1true);
  18.             $vehicle $em->getRepository(Vehicle::class)->findOneBy(['trackerId' => $data['imei']]);
  19.             $positions = new VehiclePositions();
  20.             $positions->setVehicle($vehicle)
  21.                 ->setLongitude($data['lng'])
  22.                 ->setLatitude($data['lat'])
  23.                 ->setPositionTime(new \DateTime())
  24.                 ->setVehicleSpeed($data['speed'])
  25.                 ->setDistanceCovered(0.0);
  26.             $em->persist($positions);
  27.             $em->flush();
  28.             $logger->error(__METHOD__ ' -> {message}', ['message' => $data]);
  29.             return new Response('Ok'200);
  30.         } catch (\Exception $e) {
  31.             $logger->error(__METHOD__ ' -> {message}', ['message' => $e->getMessage()]);
  32.         }
  33.     }
  34.     public function postPositionsLocal(EntityManagerInterface $emRequest $requestLoggerInterface $logger)
  35.     {
  36.         $data1='{"op":"loc","imei":"358480080044318","dt_tracker":"2019-12-17 17:12:37","lat":38.007147,"lng":23.845655,"altitude":229,"angle":60,"speed":0,"loc_valid":1,"params":{"gpslev":7,"batc":0,"gsmlev":3,"gnss":1,"ext_volt":12.78,"speed":0,"batv":4.071},"event":null}';
  37. //        dump(json_decode($data,true));
  38. //        $data1=$request->request->get('data');
  39.         $data=json_decode($data1,true);
  40.         $vehicle=$em->getRepository(Vehicle::class)->findOneBy(['trackerId' => $data['imei']]);
  41.         $positions=new VehiclePositions();
  42.         $positions->setVehicle($vehicle);
  43.         $positions->setLongitude($data['lng']);
  44.         $positions->setLatitude($data['lat']);
  45.         $positions->setPositionTime(new \DateTime());
  46.         $positions->setVehicleSpeed($data['speed']);
  47.         $positions->setDistanceCovered(0.0);
  48.         $em->persist($positions);
  49.         $em->flush();
  50.         return new Response('Ok',200);
  51.     }
  52.     public function purgeVehiclePositions(ElasticService $elasticServiceLoggerInterface $logger): Response
  53.     {
  54.         $size 10000;
  55.         try {
  56.             $date = new \DateTime();
  57.             $date->sub(new \DateInterval('P90D'));
  58.             $response $elasticService->deleteOldValues($date$size);
  59.             if ($response) {
  60.                 return new Response('Ok',200);
  61.             }
  62.             return new Response('Internal Server Error',500);
  63.         } catch (\Exception $e) {
  64.             $logger->error(__METHOD__ ' -> {message}', ['message' => $e->getMessage()]);
  65.             return new Response('Internal Server Error',500);
  66.         }
  67.     }
  68. }