src/Repository/DivisaConversionRepository.php line 28
- <?php
- namespace App\Repository;
- use Doctrine\ORM\EntityRepository;
- /**
- * DivisaConversionRepository
- *
- * This class was generated by the Doctrine ORM. Add your own custom
- * repository methods below.
- */
- class DivisaConversionRepository extends EntityRepository
- {
- /*
- SELECT slug, da.shortName AS origen, df.shortName as destino, visitas
- FROM divisa_conversion , divisa_conversion_idioma , divisa as da, divisa as df
- WHERE divisaOrigen !=1
- AND divisaDestino !=1
- AND divisa_conversion_idioma.divisaConversion = divisa_conversion.id
- AND divisa_conversion_idioma.idioma =1
- AND divisaOrigen = da.id
- AND divisaDestino= df.id
- ORDER BY visitas DESC
- LIMIT 0 , 30
- */
- public function findTop5($divisaActual=0,$idioma){
- $idActual=$divisaActual->getId();
- $em = $this->getEntityManager();
- $q = $em->createQuery("
- SELECT p.slug,
- di1.nombre AS origen,
- di2.nombre AS destino,
- d.visitas AS visitas,
- d.id AS id
- FROM App\Entity\DivisaConversion d,
- App\Entity\DivisaConversionIdioma p,
- App\Entity\Divisa d1,
- App\Entity\Divisa d2,
- App\Entity\DivisaIdioma di1,
- App\Entity\DivisaIdioma di2
- WHERE
- d.divisaDestino!= :divisa AND
- d.divisaOrigen!= :divisa AND
- p.divisaConversion = d.id AND
- p.idioma= :idioma AND
- d.divisaDestino= d1.id AND
- d.divisaOrigen= d2.id AND
- d1.id=di1.divisa AND
- di1.idioma=:idioma AND
- d2.id=di2.divisa AND
- di2.idioma=:idioma
- ORDER BY d.visitas DESC
- ")
- ->setParameter('divisa', $idActual)
- ->setParameter('idioma', $idioma->getId())
- ->setMaxResults(5)
- ;
- return $q->getResult();
- }
- public function findTopRand($divisaActual ,$idioma, $notin){
- $idActual=$divisaActual->getId();
- $em = $this->getEntityManager();
- $q = $em->createQuery("
- SELECT p.slug,
- di1.nombre AS origen,
- di2.nombre AS destino,
- d.visitas AS visitas
- FROM App\Entity\DivisaConversion d,
- App\Entity\DivisaConversionIdioma p,
- App\Entity\Divisa d1,
- App\Entity\Divisa d2,
- App\Entity\DivisaIdioma di1,
- App\Entity\DivisaIdioma di2
- WHERE
- d.divisaDestino!= :divisa AND
- d.divisaOrigen!= :divisa AND
- p.divisaConversion = d.id AND
- p.idioma= :idioma AND
- d.divisaDestino= d1.id AND
- d.divisaOrigen= d2.id AND
- d1.id=di1.divisa AND
- di1.idioma=:idioma AND
- d2.id=di2.divisa AND
- di2.idioma=:idioma AND
- d.id NOT IN ('".implode("','",$notin)."')
- ORDER BY RAND()
- ")
- ->setParameter('divisa', $idActual)
- ->setParameter('idioma', $idioma->getId())
- ->setMaxResults(3)
- ;
- return $q->getResult();
- }
- public function findTop5Full($idioma){
- $em = $this->getEntityManager();
- $q = $em->createQuery(
- "
- SELECT dci.slug,
- di1.nombre AS origen,
- di2.nombre AS destino,
- dc.visitas AS visitas
- FROM App\Entity\DivisaConversion dc,
- App\Entity\DivisaConversionIdioma dci,
- App\Entity\DivisaIdioma di1,
- App\Entity\DivisaIdioma di2,
- App\Entity\Divisa d1,
- App\Entity\Divisa d2,
- App\Entity\Idioma lng
- WHERE
- dc.divisaOrigen=d1.id AND
- dc.divisaDestino=d2.id AND
- dc.id=dci.divisaConversion AND
- di1.divisa=d1.id AND
- di2.divisa=d2.id AND
- di1.idioma=lng.id AND
- di2.idioma=lng.id AND
- dci.idioma= lng.id AND
- lng.url= :idioma
- ORDER BY dc.visitas DESC
- ")
- ->setParameter('idioma', $idioma)
- ->setMaxResults(5);
- return $q->getResult();
- }
- }