/** * @param Campaign $campaign * @param $event */ public function preFlush(Campaign $campaign, $event) { if ($campaign->getHashId() && $campaign->getStatus() !== $campaign->getOldStatus()) { if ($campaign->isNew() && $campaign->getStatus() == Campaign::STATUS_ON) { // $campaign->setIsNew(false); $this->rabbitProducer->publish($campaign->getId()); } } }
/** * Сохраняет кампанию и хеширует id * * @param Campaign $campaign */ public function save(Campaign $campaign) { $isNew = $campaign->getId() ? false : true; $this->em->persist($campaign); $this->em->flush($campaign); if ($isNew) { $campaign->setHashId($this->hashids->encode($campaign->getId())); } $campaign->updateUpdatedAt(); $this->tagManager->saveTagging($campaign); $this->em->flush(); }