Filter click stats by newsletter send time
MAILPOET-5508
This commit is contained in:
committed by
Aschepikov
parent
44b1ab580f
commit
2987c61d77
@ -48,9 +48,7 @@ class SubscriberStatisticsRepository extends Repository {
|
||||
public function getStatisticsClickCount(SubscriberEntity $subscriber, ?Carbon $startTime = null): int {
|
||||
$queryBuilder = $this->getStatisticsCountQuery(StatisticsClickEntity::class, $subscriber);
|
||||
if ($startTime) {
|
||||
$queryBuilder
|
||||
->andWhere('stats.createdAt >= :dateTime')
|
||||
->setParameter('dateTime', $startTime);
|
||||
$this->applyDateConstraint($queryBuilder, $startTime);
|
||||
}
|
||||
return (int)$queryBuilder
|
||||
->getQuery()
|
||||
@ -60,8 +58,7 @@ class SubscriberStatisticsRepository extends Repository {
|
||||
public function getStatisticsOpenCountQuery(SubscriberEntity $subscriber, ?Carbon $startTime = null): QueryBuilder {
|
||||
$queryBuilder = $this->getStatisticsCountQuery(StatisticsOpenEntity::class, $subscriber);
|
||||
if ($startTime) {
|
||||
$queryBuilder->join(StatisticsNewsletterEntity::class, 'sent_stats', 'WITH', 'stats.newsletter = sent_stats.newsletter AND sent_stats.sentAt >= :dateTime')
|
||||
->setParameter('dateTime', $startTime);
|
||||
$this->applyDateConstraint($queryBuilder, $startTime);
|
||||
}
|
||||
return $queryBuilder;
|
||||
}
|
||||
@ -133,4 +130,11 @@ class SubscriberStatisticsRepository extends Repository {
|
||||
$this->wcHelper
|
||||
);
|
||||
}
|
||||
|
||||
private function applyDateConstraint(QueryBuilder $queryBuilder, Carbon $startTime): QueryBuilder {
|
||||
$queryBuilder->join(StatisticsNewsletterEntity::class, 'sent_stats', 'WITH', 'stats.newsletter = sent_stats.newsletter AND stats.subscriber = sent_stats.subscriber AND sent_stats.sentAt >= :dateTime')
|
||||
->setParameter('dateTime', $startTime);
|
||||
|
||||
return $queryBuilder;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user