Skip to content
Snippets Groups Projects

add criteria

Merged i.vasilenko@iq-adv.ru requested to merge criteria into main
5 files
+ 204
98
Compare changes
  • Side-by-side
  • Inline
Files
5
@@ -5,6 +5,8 @@ namespace App\Messenger\Handler;
use App\Entity\Quest;
use App\Messenger\Message\QuestMessage;
use App\Messenger\Objects\QuestsEnd;
use DateInterval;
use Doctrine\Common\Collections\Criteria;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\Messenger\Attribute\AsMessageHandler;
use Symfony\Component\Messenger\MessageBusInterface;
@@ -29,7 +31,7 @@ class QuestEndMessageHandler
*/
public function __invoke(QuestsEnd $message): void
{
$quests = $this->doctrine->getRepository(Quest::class)->getEndQuests();
$quests = $this->doctrine->getRepository(Quest::class)->getByCriteria($this->getCriteria());
foreach ($quests as $quest) {
$appointments = $quest->getAppointments();
@@ -59,4 +61,32 @@ class QuestEndMessageHandler
}
}
}
/**
* Фильтр квестов
*
* @return Criteria
*/
public function getCriteria(): Criteria
{
$criteria = Criteria::create();
$expr = Criteria::expr();
if (!$expr) {
return $criteria;
}
$startDate = new \DateTime();
$startDate->setTime(0,0);
$startDate->sub(new DateInterval('P1D'));
$endDate = new \DateTime();
$endDate->setTime(23,59, 59);
$endDate->sub(new DateInterval('P1D'));
$criteria
->andWhere($expr->gte('date', $startDate))
->andWhere($expr->lte('date', $endDate));
return $criteria;
}
}
\ No newline at end of file
Loading