Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

52 lines
1.2KB

  1. <?php
  2. namespace Lc\SovBundle\Repository\Ticket;
  3. use App\Entity\Ticket\Ticket;
  4. use Lc\SovBundle\Model\Ticket\TicketInterface;
  5. use Lc\SovBundle\Model\User\UserInterface;
  6. use Lc\SovBundle\Repository\AbstractStore;
  7. class TicketStore extends AbstractStore implements TicketStoreInterface
  8. {
  9. protected TicketRepositoryQueryInterface $query;
  10. public function __construct(TicketRepositoryQueryInterface $query)
  11. {
  12. $this->query = $query;
  13. }
  14. // getTicketsByUser
  15. public function getByUser(UserInterface $user, $query = null): array
  16. {
  17. $query = $this->createQuery($query);
  18. $query->filterByUser($user);
  19. return $query->find();
  20. }
  21. // findAllOpen
  22. public function getOpen(int $limit = 0, $query = null): array
  23. {
  24. $query = $this->createQuery($query);
  25. $query
  26. ->filterByStatus(Ticket::TICKET_STATUS_OPEN)
  27. ->limit($limit)
  28. ->orderBy('r.id', 'DESC');
  29. return $query->find();
  30. }
  31. // countAllOpen
  32. public function countOpen($query = null): string
  33. {
  34. $query = $this->createQuery($query);
  35. $query
  36. ->selectCount()
  37. ->filterByStatus(Ticket::TICKET_STATUS_OPEN);
  38. return $query->count();
  39. }
  40. }