src/Repository/UserRepository.php line 23

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Repository;
  4. use App\Entity\User;
  5. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  6. use Doctrine\Persistence\ManagerRegistry;
  7. use Symfony\Bridge\Doctrine\Security\User\UserLoaderInterface;
  8. use Symfony\Component\Security\Core\User\UserInterface;
  9. /**
  10.  * @method User|null find($id, $lockMode = null, $lockVersion = null)
  11.  * @method User|null findOneBy(array $criteria, array $orderBy = null)
  12.  * @method User[]    findAll()
  13.  * @method User[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  14.  * @extends ServiceEntityRepository<User>
  15.  */
  16. class UserRepository extends ServiceEntityRepository implements UserLoaderInterface
  17. {
  18.     public function __construct(ManagerRegistry $registry)
  19.     {
  20.         parent::__construct($registryUser::class);
  21.     }
  22.     public function find2User(int $max): array {
  23.         return $this->createQueryBuilder('u')
  24.             //->addSelect('RAND() as HIDDEN   rand')
  25.             ->where('u.EtatCompteUser = 1')
  26.             ->andWhere('u.TypeCompteUser = 1')
  27.             ->setMaxResults($max)
  28.             //->orderBy('rand')
  29.             ->getQuery()
  30.             ->getResult();
  31.     }
  32.     public function getUserPreference($currentUser) {
  33.         return $this->createQueryBuilder('u')
  34.             ->where('u.TypeCompteUser = 1')
  35.             ->andWhere('u.id <> :val')
  36.             ->setParameter(':val',$currentUser)
  37.             ->setMaxResults(8)
  38.             ->getQuery()
  39.             ->getResult();
  40.     }
  41.     public function getUserPreferenceIonic() {
  42.         return $this->createQueryBuilder('u')
  43.             ->join('u.userPreferer','p')
  44.             ->where('u.TypeCompteUser = 1')
  45.             ->setMaxResults(100)
  46.             ->getQuery()
  47.             ->getResult();
  48.     }
  49.     public function getmaxId($mail): array {
  50.         return $this->createQueryBuilder('u')
  51.             ->where('u.EmailUser = :val')
  52.             ->setParameter('val',$mail)
  53.             ->setMaxResults(1)
  54.             ->addOrderBy('u.id','DESC')
  55.             ->getQuery()
  56.             ->getResult();
  57.     }
  58.     public function getId($id): User {
  59.         return $this->createQueryBuilder('u')
  60.             ->select('u.id')
  61.             ->where('u.id = :val')
  62.             ->setParameter('val',$id)
  63.             ->getQuery()
  64.             ->getResult();
  65.     }
  66.     public function UserMembre($max) {
  67.         return $this->createQueryBuilder('u')
  68.             //->addSelect('RAND() as HIDDEN   rand')
  69.             ->where('u.EtatCompteUser = 1')
  70.             ->andWhere('u.TypeCompteUser = 0')
  71.             ->setMaxResults($max)
  72.             //->orderBy('rand')
  73.             ->getQuery()
  74.             ->getResult();
  75.     }
  76.     public function UserMembreSignateurCount() {
  77.         return $this->createQueryBuilder('u')
  78.             //->addSelect('RAND() as HIDDEN   rand')
  79.             ->where('u.EtatCompteUser = 1')
  80.             ->andWhere('u.TypeCompteUser = 0')
  81.             //->orderBy('rand')
  82.             ->getQuery()
  83.             ->getResult();
  84.     }
  85.     public function UserMembrePrefereChoeur($max,$id) {
  86.         return $this->createQueryBuilder('u')
  87.             ->join('u.userPreferences','p')
  88.             //->addSelect('RAND() as HIDDEN   rand')
  89.             ->where('u.EtatCompteUser = 1')
  90.             ->andWhere('p.userPreferer = :val ')
  91.             ->setParameter('val',$id)
  92.             ->setMaxResults($max)
  93.             //->orderBy('rand')
  94.             ->getQuery()
  95.             ->getResult();
  96.     }
  97.     public function UserMembrePrefereChoeurCount($id) {
  98.         return $this->createQueryBuilder('u')
  99.             ->join('u.userPreferences','p')
  100.             //->addSelect('RAND() as HIDDEN   rand')
  101.             ->where('u.EtatCompteUser = 1')
  102.             ->andWhere('p.userPreferer = :val ')
  103.             ->setParameter('val',$id)
  104.             //->orderBy('rand')
  105.             ->getQuery()
  106.             ->getResult();
  107.     }
  108.     /**
  109.      * @param $value
  110.      * @param $id
  111.      * @return mixed
  112.      * @throws \Doctrine\ORM\NonUniqueResultException
  113.      */
  114.     public function UserUpdt($value,$id) {
  115.         return $this->createQueryBuilder('u')
  116.             ->update()
  117.             ->set('u.ImageFile',':va')
  118.             ->setParameter('va',$value)
  119.             ->where('u.id = :val')
  120.             ->setParameter('val',$id)
  121.             ->getQuery()
  122.             ->getSingleScalarResult();
  123.     }
  124.     /**
  125.      * @param $value
  126.      * @param $id
  127.      * @return mixed
  128.      * @throws \Doctrine\ORM\NonUniqueResultException
  129.      */
  130.     public function UserUpdtSignature($value,$email) {
  131.         return $this->createQueryBuilder('u')
  132.             ->update()
  133.             ->set('u.image_file_signature',':va')
  134.             ->setParameter('va',$value)
  135.             ->where('u.EmailUser = :val')
  136.             ->setParameter('val',$email)
  137.             ->getQuery()
  138.             ->getSingleScalarResult();
  139.     }
  140.     /**
  141.      * @param $value
  142.      * @param $id
  143.      * @return mixed
  144.      * @throws \Doctrine\ORM\NonUniqueResultException
  145.      */
  146.     public function UserUpdtMur($value,$id) {
  147.         return $this->createQueryBuilder('u')
  148.             ->update()
  149.             ->set('u.ImageFile',':va')
  150.             ->setParameter('va',$value)
  151.             ->where('u.id = :val')
  152.             ->setParameter('val',$id)
  153.             ->getQuery()
  154.             ->getSingleScalarResult();
  155.     }
  156.     /**
  157.      * @param $value
  158.      * @param $id
  159.      * @return mixed
  160.      * @throws \Doctrine\ORM\NonUniqueResultException
  161.      */
  162.     public function UserUpdtNom($value,$id) {
  163.         return $this->createQueryBuilder('u')
  164.             ->update()
  165.             ->set('u.NomUser',':va')
  166.             ->setParameter('va',$value)
  167.             ->where('u.id = :val')
  168.             ->setParameter('val',$id)
  169.             ->getQuery()
  170.             ->getSingleScalarResult();
  171.     }
  172.     public function getMediaPreferenceNotification($id,$clan,$eglise):array {
  173.         /*return $this->createQueryBuilder('m')
  174.             ->join('m.user_pub', 'u','m.user = u.id')
  175.             ->join('u.userPreferer','p','p.userPreferer')
  176.             ->where('p.userPrefere = :val ')
  177.             ->andWhere(' u.Connected_at < m.Created_at ')
  178.             ->andWhere('(u.eglise = :val1 or u.clan = :val2 or m.VisibiliteMedia = :val3)')
  179.             ->setParameter('val',$id)
  180.             ->setParameter('val1',$eglise)
  181.             ->setParameter('val2',$clan)
  182.             ->setParameter('val3',1)
  183.             ->orderBy('m.id','DESC')
  184.             ->getQuery()
  185.             ->getResult();*/
  186.         return $this->createQueryBuilder('u')
  187.             ->join('u.media''m','m.user_pub = u.id')
  188.             ->join('u.userPreferer','p','p.userPreferer = u.preferer')
  189.             ->where('u.id = :val and  u.Connected_at < m.Created_at ')
  190.             ->andWhere('(u.eglise = :val1 or u.clan = :val2) and m.VisibiliteMedia > :val3')
  191.             ->setParameter('val',$id)
  192.             ->setParameter('val1',$eglise)
  193.             ->setParameter('val2',$clan)
  194.             ->setParameter('val3',0)
  195.             ->orderBy('m.id','DESC')
  196.             ->getQuery()
  197.             ->getResult();
  198.     }
  199.     /**
  200.      * @param $id
  201.      * @return mixed
  202.      * @throws \Doctrine\ORM\NonUniqueResultException
  203.      */
  204.     public function EtatCompteUpdt($id){
  205.         return $this->createQueryBuilder('u')
  206.             ->update()
  207.             ->set('u.EtatCompteUser',':va')
  208.             ->setParameter('va',1)
  209.             ->where('u.id = :val')
  210.             ->setParameter('val',$id)
  211.             ->getQuery()
  212.             ->getSingleScalarResult();
  213.     }
  214.     /**
  215.      * @param $id
  216.      * @param $pwA
  217.      * @param $pw
  218.      * @return mixed
  219.      * @throws \Doctrine\ORM\NonUniqueResultException
  220.      */
  221.     public function PasswordUpdt($id,$pwA,$pw){
  222.         return $this->createQueryBuilder('u')
  223.             ->update()
  224.             ->set('u.PasswordUser',':va')
  225.             ->setParameter('va',$pw)
  226.             ->where('u.id = :val')
  227.             ->andWhere('u.PasswordUser = :val1')
  228.             ->setParameter('val',$id)
  229.             ->setParameter('val1',$pwA)
  230.             ->getQuery()
  231.             ->getSingleScalarResult();
  232.     }
  233.     /**
  234.      * @param string $username
  235.      * @return mixed|null|UserInterface
  236.      * @throws \Doctrine\ORM\NonUniqueResultException
  237.      */
  238.     public function loadUserByUsername($username)
  239.     {
  240.         return $this->createQueryBuilder('u')
  241.             ->where('u.email_user = :email')
  242.             ->setParameter('email'$username)
  243.             ->getQuery()
  244.             ->getOneOrNullResult();
  245.     }
  246.     public function autocomplete($key,$id) {
  247.        /* $rawSql = "SELECT *  FROM  user u  WHERE u.nom_user LIKE '%$key%' ";
  248.         $stmt = $this->getEntityManager()->getConnection()->prepare($rawSql);
  249.         $stmt->execute();
  250.         return $stmt->fetchAll();*/
  251.        return $this->createQueryBuilder('u')
  252.            ->where('u.NomUser LIKE :key')
  253.            ->andWhere('u.TypeCompteUser = 1')
  254.            ->andWhere('u.EtatCompteUser = 1')
  255.            ->andWhere('u.id <> :val')
  256.            ->setParameter('key''%'.$key.'%')
  257.            ->setParameter('val'$id)
  258.            ->setMaxResults(10)
  259.            ->getQuery()
  260.            ->getResult();
  261.     }
  262.     /* ********* METHODE DOCTRINE POUR L'APPLICATION IONIC ************* */
  263.     /**
  264.      * Permet de faire une rchercher aleatoire des users parc au niveau de la page home
  265.      *
  266.      * @param int $max
  267.      * @return mixed
  268.      */
  269.     public function User_liste(int $max){
  270.         $rawSql "SELECT *, u.id As user_id  FROM user u JOIN clan c ON(u.clan_id = c.id) JOIN eglise e ON(u.eglise_id = e.id) WHERE u.type_compte_user = 1 ORDER BY u.id DESC LIMIT $max";
  271.         $stmt $this->getEntityManager()->getConnection()->prepare($rawSql);
  272.         $stmt->execute();
  273.         return $stmt->fetchAll();
  274.     }
  275.     /**
  276.      * Permet de faire une rchercher scroller des users parc au niveau de la page home
  277.      *
  278.      * @param int $max
  279.      * @return mixed
  280.      */
  281.     public function User_listeScroller(int $max$id){
  282.         $rawSql "SELECT *, u.id As user_id  FROM user u JOIN clan c ON(u.clan_id = c.id) JOIN eglise e ON(u.eglise_id = e.id) WHERE u.type_compte_user = 1 AND u.id < $id ORDER BY u.id DESC LIMIT $max";
  283.         $stmt $this->getEntityManager()->getConnection()->prepare($rawSql);
  284.         $stmt->execute();
  285.         return $stmt->fetchAll();
  286.     }
  287.     /**
  288.      * Permet de faire une rchercher aleatoire des users parc pour la preference
  289.      *
  290.      * @param int $max
  291.      * @return mixed
  292.      */
  293.     public function User_lstePreference(int $max$id){
  294.         $rawSql "Select *, (Select usr.user_prefere_id From user_preference usr  Where usr.user_preferer_id = u.id And usr.user_prefere_id = $id) As flag, u.id As user_id, usrP.user_preferer_id As Preference_id From user u left Join user_preference usrP On u.id = usrP.user_prefere_id LEFT JOIN clan c ON(u.clan_id = c.id) LEFT JOIN eglise e ON(u.eglise_id = e.id) Where  u.type_compte_user = 1 ORDER BY u.id DESC Limit $max ";
  295.         $stmt $this->getEntityManager()->getConnection()->prepare($rawSql);
  296.         $stmt->execute();
  297.         return $stmt->fetchAll();
  298.     }
  299.     /**
  300.      * Permet de faire une rchercher aleatoire des users parc pour la preference scroller
  301.      *
  302.      * @param int $max
  303.      * @return mixed
  304.      */
  305.     public function User_lstePreferenceSroller(int $max$id$minId){
  306.         $rawSql "Select *, (Select usr.user_prefere_id From user_preference usr  Where usr.user_preferer_id = u.id And usr.user_prefere_id = $id) As flag, u.id As user_id, usrP.user_preferer_id As Preference_id From user u left Join user_preference usrP On u.id = usrP.user_prefere_id LEFT JOIN clan c ON(u.clan_id = c.id) LEFT JOIN eglise e ON(u.eglise_id = e.id) Where u.id < $minId AND u.type_compte_user = 1 Limit $max ";
  307.         $stmt $this->getEntityManager()->getConnection()->prepare($rawSql);
  308.         $stmt->execute();
  309.         return $stmt->fetchAll();
  310.     }
  311.     /**
  312.      * Permet de faire la rechercher d'un utilisateur parc
  313.      *
  314.      * @param int $max
  315.      * @return mixed
  316.      */
  317.     public function User_listeParc(int $max$idstring $key){
  318.         $rawSql "SELECT *, (Select usr.user_prefere_id From user_preference usr  Where usr.user_preferer_id = u.id And usr.user_prefere_id = $id) As flag, u.id As user_id  FROM user u JOIN clan c ON(u.clan_id = c.id) JOIN eglise e ON(u.eglise_id = e.id) WHERE  u.nom_user LIKE '$key%' LIMIT $max";
  319.         $stmt $this->getEntityManager()->getConnection()->prepare($rawSql);
  320.         $stmt->execute();
  321.         return $stmt->fetchAll();
  322.     }
  323.     public function User_listeSinature(int $max){
  324.         $rawSql "SELECT *, u.id As user_id  FROM user u JOIN clan c ON(u.clan_id = c.id) JOIN eglise e ON(u.eglise_id = e.id) WHERE u.type_compte_user = 0 ORDER BY u.id DESC LIMIT $max";
  325.         $stmt $this->getEntityManager()->getConnection()->prepare($rawSql);
  326.         $stmt->execute();
  327.         return $stmt->fetchAll();
  328.     }
  329.     public function User_listeSinatureScroller(int $max$limit){
  330.         $rawSql "SELECT *, u.id As user_id  FROM user u JOIN clan c ON(u.clan_id = c.id) JOIN eglise e ON(u.eglise_id = e.id) WHERE u.id < $limit AND u.type_compte_user = 0 ORDER BY u.id DESC LIMIT $max";
  331.         $stmt $this->getEntityManager()->getConnection()->prepare($rawSql);
  332.         $stmt->execute();
  333.         return $stmt->fetchAll();
  334.     }
  335.     public function User_listeSinature_AAA(int $max$id){
  336.        // $rawSql = "SELECT *, (Select usr.user_prefere_id From user_preference usr  Where usr.user_preferer_id = u.id And usr.user_prefere_id = $id) As flag, u.id As user_id  FROM user u JOIN clan c ON(u.clan_id = c.id) JOIN eglise e ON(u.eglise_id = e.id) WHERE u.type_compte_user = 0 ORDER BY u.id DESC LIMIT $max";
  337.         $rawSql "SELECT *, usr.user_prefere_id  As flag, u.id As user_id  FROM user_preference usr  JOIN user u ON usr.user_preferer_id = u.id JOIN clan c ON(u.clan_id = c.id) JOIN eglise e ON(u.eglise_id = e.id) WHERE usr.user_prefere_id = $id AND u.type_compte_user = 0 ORDER BY u.id DESC LIMIT $max";
  338.         $stmt $this->getEntityManager()->getConnection()->prepare($rawSql);
  339.         $stmt->execute();
  340.         return $stmt->fetchAll();
  341.     }
  342.     public function User_listeSinatureScroller_AAA(int $max$limit$id){
  343.        // $rawSql = "SELECT *, (Select usr.user_prefere_id From user_preference usr  Where usr.user_preferer_id = u.id And usr.user_prefere_id = $id) As flag, u.id As user_id  FROM user u JOIN clan c ON(u.clan_id = c.id) JOIN eglise e ON(u.eglise_id = e.id) WHERE u.id < $limit AND u.type_compte_user = 0 ORDER BY u.id DESC LIMIT $max";
  344.         $rawSql "SELECT *, usr.user_prefere_id  As flag, u.id As user_id  FROM user_preference usr  JOIN user u ON usr.user_preferer_id = u.id JOIN clan c ON(u.clan_id = c.id) JOIN eglise e ON(u.eglise_id = e.id) WHERE usr.user_prefere_id = $id AND u.id < $limit AND u.type_compte_user = 0 ORDER BY u.id DESC LIMIT $max";
  345.         $stmt $this->getEntityManager()->getConnection()->prepare($rawSql);
  346.         $stmt->execute();
  347.         return $stmt->fetchAll();
  348.     }
  349.     public function connexion(string $email,string  $pwd){
  350.         $rawSql "SELECT *, u.id As user_id   FROM user u JOIN clan c ON(u.clan_id = c.id) JOIN eglise e ON(u.eglise_id = e.id) WHERE u.email_user = '$email'";
  351.         $stmt $this->getEntityManager()->getConnection()->prepare($rawSql);
  352.         $stmt->execute();
  353.         return $stmt->fetchAll();
  354.     }
  355.     public function findOneUser(string $id,string $med){
  356.         $rawSql "SELECT *, (SELECT COUNT(*) + 1 AS total3 FROM post_comment cmt  WHERE cmt.media_id = '$med' ) AS CntCmnt, u.id As user_id   FROM user u JOIN clan c ON(u.clan_id = c.id) JOIN eglise e ON(u.eglise_id = e.id) WHERE u.email_user = '$id'";
  357.         $stmt $this->getEntityManager()->getConnection()->prepare($rawSql);
  358.         $stmt->executeQuery();
  359.         return $stmt;
  360.     }
  361.     public function InsertOneUserSignateur(string $nom,string $numTel,string $photoSignature,string $photo,string $password,string $email,$date,$eglise,$clan,$firebase,$textProfil){
  362.         $rawSql "INSERT INTO user (nom_user,num_tel_user,type_compte_user,etat_compte_user,image_file_signature,image_file,password_user,email_user,created_at,connected_at,eglise_id,clan_id,Firebase_token,text_de_prifil) VALUES ('$nom','$numTel','0',1,'$photoSignature','$photo','$password','$email','$date','$date',$eglise,$clan,'$firebase','$textProfil')";
  363.         $stmt $this->getEntityManager()->getConnection()->prepare($rawSql);
  364.         $stmt->executeQuery();
  365.         return $stmt;
  366.     }
  367.     public function UpdateOneUserSignateur(string $nom,string $numTel,string $photoSignature,string $photo,string $password,string $email,$date,$eglise,$clan,$firebase){
  368.         $rawSql "UPDATE user SET password_user = '$password', Firebase_token = '$firebase' WHERE email_user = '$email' ";
  369.         $stmt $this->getEntityManager()->getConnection()->prepare($rawSql);
  370.         $stmt->executeQuery();
  371.         return $stmt;
  372.     }
  373.     public function getUserChoraleProgressive(int $pageString $query) {
  374.         return $this->createQueryBuilder('u')
  375.             ->where('u.TypeCompteUser = 1')
  376.             ->andWhere('u.id < :id')
  377.             ->andWhere("u.NomUser LIKE '%".$query."%'")
  378.             ->setParameter('id',$page)
  379.             ->orderBy('u.id','DESC')
  380.             ->setMaxResults(30)
  381.             ->getQuery()
  382.             ->getResult();
  383.     }
  384.     public function getChovis(int $pageUser $idstring $flag) {
  385.         return $this->createQueryBuilder('u')
  386.             ->where('u.TypeCompteUser = 0')
  387.             ->andWhere('u.id < :id')
  388.             ->setParameter('id',$page)
  389.             ->orderBy('u.id','DESC')
  390.             ->setMaxResults(20)
  391.             ->getQuery()
  392.             ->getResult();
  393.     }
  394.     public function getChovis_(int $page,  $idstring $flag) {
  395.         $req =  $this->createQueryBuilder('u');
  396.         if($flag == '1'){
  397.             $req->join('u.userPreferer','p')
  398.                 ->where('p.userPrefere = :idP')
  399.                 ->andWhere('u.TypeCompteUser = 0')
  400.                 ->andWhere('u.id < :id');
  401.         }
  402.         else{
  403.             $req->where('u.TypeCompteUser = 0')
  404.                 ->andWhere('u.id < :id');
  405.         }
  406.         $req->setParameter('id',$page);
  407.         if($flag == '1'$req->setParameter('idP',$id);
  408.         $req->orderBy('u.id','DESC');
  409.         if($flag == '1'$req->setMaxResults(5);
  410.         else $req->setMaxResults(20);
  411.         return  $req->getQuery()->getResult();
  412.     }
  413.     public function getUserChoralePreference($query) {
  414.         return $this->createQueryBuilder('u')
  415.             ->where('u.TypeCompteUser = 1')
  416.             ->andWhere("u.NomUser LIKE '%".$query."%'")
  417.             ->getQuery()
  418.             ->getResult();
  419.     }
  420.     public function __call($name$arguments)
  421.     {
  422.         // TODO: Implement @method null loadUserByIdentifier(string $identifier)
  423.     }
  424. }