src/Repository/UserRepository.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Repository;
  3. use App\Entity\User;
  4. use DateTime;
  5. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  6. use Doctrine\Persistence\ManagerRegistry;
  7. /**
  8.  * @method User|null find($id, $lockMode = null, $lockVersion = null)
  9.  * @method User|null findOneBy(array $criteria, array $orderBy = null)
  10.  * @method User[]    findAll()
  11.  * @method User[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  12.  */
  13. class UserRepository extends ServiceEntityRepository
  14. {
  15.     public function __construct(ManagerRegistry $registry)
  16.     {
  17.         parent::__construct($registryUser::class);
  18.     }
  19.     public function findByRole($role$id$current_user)
  20.     {
  21.     
  22.         return $this->createQueryBuilder('u')
  23.             ->andWhere('u.roles LIKE :role')
  24.             ->andWhere('u.id != :id')
  25.             ->andWhere('u.owner = :current_user')
  26.             ->setParameter('role''%"'$role '"%')
  27.             ->setParameter('id'$id)
  28.             ->setParameter('current_user'$current_user)
  29.             ->orderBy('u.created_at''DESC')
  30.             ->getQuery()
  31.             ->getResult()
  32.         ;
  33.     }
  34.     public function findProfessionalFullText($query$user)
  35.     {
  36.     
  37.         return $this->createQueryBuilder('u')
  38.             ->innerJoin('u.userInfo''ui')
  39.             ->andWhere('u.owner = :user')
  40.             ->andWhere('ui.business LIKE :query')
  41.             ->setParameter('query'"%$query%")
  42.             ->setParameter('user'$user
  43.             ->getQuery()
  44.             ->getResult()
  45.         ;
  46.     }
  47.      /**
  48.      * Undocumented function
  49.      *
  50.      * @param string $dateFilter
  51.      * @param User $current_user
  52.      * @return User
  53.      */
  54.     public function findProfessionals($role$current_user)
  55.     {
  56.     
  57.         return $this->createQueryBuilder('u')
  58.             ->andWhere('u.roles NOT LIKE :role'
  59.             ->andWhere('u.owner = :current_user')
  60.             ->setParameter('role''%"'$role '"%'
  61.             ->setParameter('current_user'$current_user)
  62.             ->orderBy('u.created_at''DESC')
  63.             ->getQuery()
  64.             ->getResult()
  65.         ;
  66.     }
  67.     
  68.    
  69.     public function findProfessionalsCreated($dateFilterUser $current_user)
  70.     {
  71.     
  72.         if($dateFilter !== null){
  73.             return $this->createQueryBuilder('u')
  74.                 ->andWhere('u.roles NOT LIKE :role'
  75.                 ->andWhere('u.owner = :current_user')
  76.                 ->andWhere('u.created_at > :date')
  77.                 ->setParameter('role''%"ROLE_ADMIN"%'
  78.                 ->setParameter('current_user'$current_user)
  79.                 ->setParameter('date', new \DateTime($dateFilter))
  80.                 ->orderBy('u.created_at''DESC')
  81.                 ->getQuery()
  82.                 ->getResult()
  83.             ;
  84.         }else{
  85.             return $this->createQueryBuilder('u')
  86.                 ->andWhere('u.roles NOT LIKE :role'
  87.                 ->andWhere('u.owner = :current_user')
  88.                 ->andWhere('u.created_at >= :m_date')
  89.                 ->setParameter('role''%"ROLE_ADMIN"%'
  90.                 ->setParameter('current_user'$current_user)
  91.                 ->setParameter('m_date', new \DateTime('-24 hours'))
  92.                 ->orderBy('u.created_at''DESC')
  93.                 ->getQuery()
  94.                 ->getResult()
  95.             ;
  96.         }
  97.     }
  98.     public function findOneByRole($role$email)
  99.     {
  100.     
  101.         return $this->createQueryBuilder('u')
  102.             ->andWhere('u.roles LIKE :role')
  103.             ->andWhere('u.email = :email')
  104.             ->setParameter('role''%"'$role '"%')
  105.             ->setParameter('email'$email)
  106.             ->getQuery()
  107.             ->getOneOrNullResult()
  108.         ;
  109.     }
  110.     
  111.     // /**
  112.     //  * @return User[] Returns an array of User objects
  113.     //  */
  114.     /*
  115.     public function findByExampleField($value)
  116.     {
  117.         return $this->createQueryBuilder('u')
  118.             ->andWhere('u.exampleField = :val')
  119.             ->setParameter('val', $value)
  120.             ->orderBy('u.id', 'ASC')
  121.             ->setMaxResults(10)
  122.             ->getQuery()
  123.             ->getResult()
  124.         ;
  125.     }
  126.     */
  127.     /*
  128.     public function findOneBySomeField($value): ?User
  129.     {
  130.         return $this->createQueryBuilder('u')
  131.             ->andWhere('u.exampleField = :val')
  132.             ->setParameter('val', $value)
  133.             ->getQuery()
  134.             ->getOneOrNullResult()
  135.         ;
  136.     }
  137.     */
  138. }