|
- <?php
-
- namespace Lc\ShopBundle\Repository;
-
- use Doctrine\ORM\QueryBuilder;
- use Lc\ShopBundle\Context\DefaultRepositoryInterface;
- use Lc\ShopBundle\Context\UserInterface;
-
- /**
- * @method UserInterface|null find($id, $lockMode = null, $lockVersion = null)
- * @method UserInterface|null findOneBy(array $criteria, array $orderBy = null)
- * @method UserInterface[] findAll()
- * @method UserInterface[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
- */
- class UserRepository extends BaseRepository implements DefaultRepositoryInterface
- {
- public function getInterfaceClass()
- {
- return UserInterface::class;
- }
-
- public function findByMerchantQuery($merchant = null) :QueryBuilder
- {
- if($merchant === false || $merchant===null)$merchant = $this->merchantUtils->getMerchantCurrent();
- return $this->createQueryBuilder('e')
- ->innerJoin('e.userMerchants', "userMerchants")
- ->andWhere('userMerchants.merchant = :currentMerchant')
- ->setParameter('currentMerchant', $merchant) ;
- }
-
- public function findAllByNewsletter($newsletter)
- {
- return $this->createQueryBuilder('e')
- ->where(':newsletter MEMBER OF e.newsletters')
- ->setParameter('newsletter', $newsletter->getId())
- ->innerJoin('e.userMerchants', 'um')
- ->andWhere('um.merchant = :merchant AND um.active = 1')
- ->setParameter('merchant', $newsletter->getMerchant())
- ->getQuery()
- ->getResult();
- }
-
- public function findByRole($role)
- {
- $qb = $this->createQueryBuilder('u')
- ->where('u.roles LIKE :roles')
- ->setParameter('roles', '%"' . $role . '"%');
-
- return $qb->getQuery()->getResult();
- }
-
- public function findByTicketTypesNotification($ticketType){
-
- $qb = $this->createQueryBuilder('u')
- ->where('u.ticketTypesNotification LIKE :ticketType')
- ->setParameter('ticketType', '%"' . $ticketType . '"%');
-
-
- return $qb->getQuery()->getResult();
-
- }
-
- }
|