em = $om; $this->jo_cache = $jo_cache; parent::__construct(); } protected function configure() { $this->setName('joborder:refresh_cache') ->setDescription('Refresh active job order cache from database.') ->setHelp('Refresh active job order cache from database.'); } protected function execute(InputInterface $input, OutputInterface $output) { $date = new DateTime(); $date->modify('-3 day'); $status_list = [ JOStatus::PENDING, JOStatus::RIDER_ASSIGN, JOStatus::ASSIGNED, JOStatus::IN_TRANSIT, JOStatus::IN_PROGRESS, ]; $qb = $this->em->getRepository(JobOrder::class) ->createQueryBuilder('jo'); $res = $qb->select('jo') ->where('jo.status IN (:statuses)') ->andWhere('jo.date_schedule >= :date') ->setParameter('statuses', $status_list, Connection::PARAM_STR_ARRAY) ->setParameter('date', $date) ->getQuery() ->execute(); // fulfill each foreach ($res as $jo) { $this->jo_cache->addActiveJobOrder($jo); } return 0; } }