resource = $resource; $this->indexerRegistry = $indexerRegistry; $this->flatScopeResolver = $flatScopeResolver; } /** * Synchronize customer grid * * @return void * * @deprecated 100.1.0 */ public function syncCustomerGrid() { $indexer = $this->indexerRegistry->get(Customer::CUSTOMER_GRID_INDEXER_ID); $customerIds = $this->getCustomerIdsForReindex(); if ($customerIds) { $indexer->reindexList($customerIds); } } /** * Retrieve customer IDs for reindex * * @return array * * @deprecated 100.1.0 */ protected function getCustomerIdsForReindex() { $connection = $this->resource->getConnection(); $gridTableName = $this->flatScopeResolver->resolve(Customer::CUSTOMER_GRID_INDEXER_ID, []); $select = $connection->select() ->from($this->resource->getTableName($gridTableName), 'last_visit_at') ->order('last_visit_at DESC') ->limit(1); $lastVisitAt = $connection->query($select)->fetchColumn(); $select = $connection->select() ->from($this->resource->getTableName('customer_log'), 'customer_id') ->where('last_login_at > ?', $lastVisitAt); $customerIds = []; foreach ($connection->query($select)->fetchAll() as $row) { $customerIds[] = $row['customer_id']; } return $customerIds; } }