소스 검색

Création de méthode pour récupérer des utilisateurs inactifs

develop
Fabien Normand 1 주 전
부모
커밋
be7063a771
2개의 변경된 파일37개의 추가작업 그리고 11개의 파일을 삭제
  1. +27
    -11
      Repository/User/UserRepositoryQuery.php
  2. +10
    -0
      Repository/User/UserStore.php

+ 27
- 11
Repository/User/UserRepositoryQuery.php 파일 보기

@@ -22,47 +22,63 @@ class UserRepositoryQuery extends AbstractRepositoryQuery implements UserReposit
$this->isJoinGroupUsers = true;

$this->leftJoin('.groupUsers', 'groupUsers');
if($addSelect){
if ($addSelect) {
$this->addSelect('groupUsers');
}
}
return $this;
}


public function filterByNewsletter(Newsletter $newsletter): self
{
return $this
->andWhere(':newsletter MEMBER OF .newsletters')
->setParameter('newsletter', $newsletter->getId());
->andWhere(':newsletter MEMBER OF .newsletters')
->setParameter('newsletter', $newsletter->getId());
}

public function filterByRole(string $role): self
{
return $this
->andWhere('.roles LIKE :roles')
->setParameter('roles', '%"' . $role . '"%');
->andWhere('.roles LIKE :roles')
->setParameter('roles', '%"' . $role . '"%');
}

public function filterByTicketTypeNotification(string $ticketType): self
{
return $this
->andWhere('.ticketTypesNotification LIKE :ticketType')
->setParameter('ticketType', '%"' . $ticketType . '"%');
->andWhere('.ticketTypesNotification LIKE :ticketType')
->setParameter('ticketType', '%"' . $ticketType . '"%');
}

public function filterByEmail(string $email): self
{
return $this
->andWhere('.email LIKE :email')
->setParameter('email', $email);
->andWhere('.email LIKE :email')
->setParameter('email', $email);
}

public function filterByTerm(string $term): self
{
return $this
->andWhere('.email LIKE :term OR .firstname LIKE :term OR .lastname LIKE :term')
->setParameter('term', '%'.$term.'%');
->setParameter('term', '%' . $term . '%');
}

public function filterWithoutAnyNewsletter(): self
{
return $this
->andWhere('.newsletters IS EMPTY');
}

public function filterWithoutAnyOrderShop(): self
{
return $this
->andWhere('.orderShops IS EMPTY');
}
public function filterNeverLogin(): self
{
return $this
->andWhere('.lastLogin is null');
}

}

+ 10
- 0
Repository/User/UserStore.php 파일 보기

@@ -68,4 +68,14 @@ class UserStore extends AbstractStore implements UserStoreInterface
$query->filterByTerm($term);
return $query->find();
}

public function getUsersNeverConnectedAndWithoutNewsletter($limit = 10, $query = null)
{
$query = $this->createQuery($query);
$query->filterWithoutAnyNewsletter();
$query->filterWithoutAnyOrderShop();
$query->filterNeverLogin();
$query->orderBy('id', 'ASC');
return $query->find();
}
}

Loading…
취소
저장