src/Repository/DivisaConversionRepository.php line 28

  1. <?php
  2. namespace App\Repository;
  3. use Doctrine\ORM\EntityRepository;
  4. /**
  5.  * DivisaConversionRepository
  6.  *
  7.  * This class was generated by the Doctrine ORM. Add your own custom
  8.  * repository methods below.
  9.  */
  10. class DivisaConversionRepository extends EntityRepository
  11. {
  12.     /*
  13.     SELECT slug, da.shortName AS origen, df.shortName as destino, visitas
  14.     FROM  divisa_conversion ,  divisa_conversion_idioma , divisa as da, divisa as df
  15.     WHERE divisaOrigen !=1
  16.     AND divisaDestino !=1
  17.     AND divisa_conversion_idioma.divisaConversion = divisa_conversion.id
  18.     AND divisa_conversion_idioma.idioma =1
  19.     AND divisaOrigen = da.id
  20.     AND divisaDestino= df.id
  21.     ORDER BY visitas DESC 
  22.     LIMIT 0 , 30
  23.      */
  24.     public function findTop5($divisaActual=0,$idioma){
  25.         $idActual=$divisaActual->getId();
  26.         $em $this->getEntityManager();
  27.         $q  $em->createQuery("
  28.                 SELECT  p.slug, 
  29.                         di1.nombre AS origen, 
  30.                         di2.nombre AS destino,
  31.                         d.visitas      AS visitas,
  32.                         d.id AS id
  33.                 FROM     App\Entity\DivisaConversion d, 
  34.                         App\Entity\DivisaConversionIdioma p,
  35.                         App\Entity\Divisa d1,
  36.                         App\Entity\Divisa d2,
  37.                         App\Entity\DivisaIdioma di1,
  38.                         App\Entity\DivisaIdioma di2
  39.                 WHERE 
  40.                         d.divisaDestino!= :divisa AND 
  41.                         d.divisaOrigen!= :divisa  AND
  42.                         p.divisaConversion = d.id AND
  43.                         p.idioma= :idioma           AND
  44.                         d.divisaDestino= d1.id    AND 
  45.                         d.divisaOrigen= d2.id     AND
  46.                         d1.id=di1.divisa          AND
  47.                         di1.idioma=:idioma        AND
  48.                         d2.id=di2.divisa          AND
  49.                         di2.idioma=:idioma
  50.                 ORDER BY d.visitas DESC
  51.         ")
  52.         ->setParameter('divisa'$idActual)
  53.         ->setParameter('idioma'$idioma->getId())
  54.         ->setMaxResults(5
  55.         ;
  56.         
  57.         return $q->getResult();    
  58.     }
  59.     
  60.     public function findTopRand($divisaActual ,$idioma$notin){
  61.         $idActual=$divisaActual->getId();
  62.         $em $this->getEntityManager();
  63.         $q  $em->createQuery("
  64.                 SELECT  p.slug, 
  65.                         di1.nombre AS origen, 
  66.                         di2.nombre AS destino,
  67.                         d.visitas    AS visitas
  68.                 FROM    App\Entity\DivisaConversion d, 
  69.                         App\Entity\DivisaConversionIdioma p,
  70.                         App\Entity\Divisa d1,
  71.                         App\Entity\Divisa d2,
  72.                         App\Entity\DivisaIdioma di1,
  73.                         App\Entity\DivisaIdioma di2
  74.                 WHERE 
  75.                         d.divisaDestino!= :divisa AND 
  76.                         d.divisaOrigen!= :divisa  AND
  77.                         p.divisaConversion = d.id AND
  78.                         p.idioma= :idioma         AND
  79.                         d.divisaDestino= d1.id    AND 
  80.                         d.divisaOrigen= d2.id     AND
  81.                         d1.id=di1.divisa          AND
  82.                         di1.idioma=:idioma        AND
  83.                         d2.id=di2.divisa          AND
  84.                         di2.idioma=:idioma        AND
  85.                         d.id NOT IN ('".implode("','",$notin)."')
  86.                 ORDER BY RAND()
  87.         ")
  88.         ->setParameter('divisa'$idActual)
  89.         ->setParameter('idioma'$idioma->getId())
  90.         ->setMaxResults(3
  91.         ;
  92.         
  93.         return $q->getResult();    
  94.     }
  95.     public function findTop5Full($idioma){
  96.         $em $this->getEntityManager();
  97.         $q  $em->createQuery(
  98.         "
  99.         SELECT  dci.slug, 
  100.                 di1.nombre AS origen, 
  101.                 di2.nombre AS destino,
  102.                 dc.visitas  AS visitas
  103.         FROM    App\Entity\DivisaConversion dc, 
  104.                 App\Entity\DivisaConversionIdioma dci,
  105.                 App\Entity\DivisaIdioma di1,
  106.                 App\Entity\DivisaIdioma di2,
  107.                 App\Entity\Divisa d1,
  108.                 App\Entity\Divisa d2,
  109.                 App\Entity\Idioma lng
  110.         WHERE        
  111.                 dc.divisaOrigen=d1.id AND
  112.                 dc.divisaDestino=d2.id AND
  113.                 dc.id=dci.divisaConversion AND
  114.                 di1.divisa=d1.id AND
  115.                 di2.divisa=d2.id AND
  116.                 di1.idioma=lng.id AND
  117.                 di2.idioma=lng.id AND
  118.                 dci.idioma= lng.id AND
  119.                 lng.url= :idioma
  120.         ORDER BY dc.visitas DESC
  121.         ")        
  122.         ->setParameter('idioma'$idioma)
  123.         ->setMaxResults(5);
  124.         return $q->getResult();    
  125.     }
  126. }