/** * @param Member $member * @return MarketingListStateItemInterface[] */ protected function getMarketingListStateItems(Member $member) { $entities = []; if (!($subscribersList = $member->getSubscribersList())) { return $entities; } $marketingLists = $this->getMarketingListIterator($subscribersList); foreach ($marketingLists as $marketingList) { $marketingListEntities = $this->getMarketingListEntitiesByEmail($marketingList, $member->getEmail()); /** @var MarketingList $marketingListEntity */ foreach ($marketingListEntities as $marketingListEntity) { $entityId = $this->doctrineHelper->getSingleEntityIdentifier($marketingListEntity); $criteria = ['entityId' => $entityId, 'marketingList' => $marketingList->getId()]; if ($this->getMarketingListStateItem($criteria)) { continue; } /** @var MarketingListStateItemInterface $marketingListStateItem */ $marketingListStateItem = new $this->marketingListStateItemClassName(); $marketingListStateItem->setEntityId($entityId)->setMarketingList($marketingList); $entities[$marketingList->getEntity()][] = $marketingListStateItem; } } return $entities; }
/** * @param Member $member * @param Channel $channel * @param Campaign $campaign * @return Member */ protected function findExistingMember(Member $member, Channel $channel, Campaign $campaign) { $searchCondition = ['channel' => $channel, 'subscribersList' => $campaign->getSubscribersList()]; if ($originId = $member->getOriginId()) { $searchCondition['originId'] = $originId; } else { $searchCondition['email'] = $member->getEmail(); } return $this->findEntityByIdentityValues(ClassUtils::getClass($member), $searchCondition); }
/** * @param Member $entity * * @return bool */ protected function isEntityProcessed($entity) { return !empty($this->processedMembers[$entity->getSubscribersList()->getId()][$entity->getEmail()]); }
/** * @param Member $entity * * @return bool */ protected function isEntityProcessed($entity) { $jobContext = $this->getJobContext(); $processedMembers = (array) $jobContext->get('processed_members'); return !empty($processedMembers[$entity->getSubscribersList()->getId()][$entity->getEmail()]); }