Optimizes DB query and result processing code
This commit is contained in:
@ -73,8 +73,7 @@ class SendingQueue extends APIEndpoint {
|
|||||||
return $segment['id'];
|
return $segment['id'];
|
||||||
}, $segments);
|
}, $segments);
|
||||||
$subscribers = Subscriber::getSubscribedInSegments($segment_ids)->findArray();
|
$subscribers = Subscriber::getSubscribedInSegments($segment_ids)->findArray();
|
||||||
$subscribers = Helpers::arrayColumn($subscribers, 'id');
|
$subscribers = Helpers::flattenArray($subscribers);
|
||||||
$subscribers = array_unique($subscribers);
|
|
||||||
if(!count($subscribers)) {
|
if(!count($subscribers)) {
|
||||||
return $this->errorResponse(array(
|
return $this->errorResponse(array(
|
||||||
APIError::UNKNOWN => __('There are no subscribers in that list!', 'mailpoet')
|
APIError::UNKNOWN => __('There are no subscribers in that list!', 'mailpoet')
|
||||||
|
@ -77,8 +77,7 @@ class Scheduler {
|
|||||||
|
|
||||||
// ensure that subscribers are in segments
|
// ensure that subscribers are in segments
|
||||||
$subscribers = Subscriber::getSubscribedInSegments($segment_ids)->findArray();
|
$subscribers = Subscriber::getSubscribedInSegments($segment_ids)->findArray();
|
||||||
$subscribers = Helpers::arrayColumn($subscribers, 'id');
|
$subscribers = Helpers::flattenArray($subscribers);
|
||||||
$subscribers = array_unique($subscribers);
|
|
||||||
|
|
||||||
if(empty($subscribers)) {
|
if(empty($subscribers)) {
|
||||||
return $this->deleteQueueOrUpdateNextRunDate($queue, $newsletter);
|
return $this->deleteQueueOrUpdateNextRunDate($queue, $newsletter);
|
||||||
@ -107,9 +106,7 @@ class Scheduler {
|
|||||||
return $segment['id'];
|
return $segment['id'];
|
||||||
}, $segments);
|
}, $segments);
|
||||||
$subscribers = Subscriber::getSubscribedInSegments($segment_ids)->findArray();
|
$subscribers = Subscriber::getSubscribedInSegments($segment_ids)->findArray();
|
||||||
$subscribers = Helpers::arrayColumn($subscribers, 'id');
|
$subscribers = Helpers::flattenArray($subscribers);
|
||||||
$subscribers = array_unique($subscribers);
|
|
||||||
|
|
||||||
// update current queue
|
// update current queue
|
||||||
$queue->subscribers = serialize(
|
$queue->subscribers = serialize(
|
||||||
array(
|
array(
|
||||||
|
@ -450,7 +450,8 @@ class Subscriber extends Model {
|
|||||||
)
|
)
|
||||||
->select('subscribers.id')
|
->select('subscribers.id')
|
||||||
->whereNull('subscribers.deleted_at')
|
->whereNull('subscribers.deleted_at')
|
||||||
->where('subscribers.status', 'subscribed');
|
->where('subscribers.status', 'subscribed')
|
||||||
|
->distinct();
|
||||||
return $subscribers;
|
return $subscribers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user