![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-customer/Model/ResourceModel/Customer/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Customer\Model\ResourceModel\Customer; use Magento\Framework\App\ResourceConnection; use Magento\Framework\Indexer\IndexerRegistry; use Magento\Framework\Indexer\ScopeResolver\FlatScopeResolver; use Magento\Customer\Model\Customer; /** * @deprecated 100.1.0 */ class Grid { /** * @var resource */ protected $resource; /** * @var \Magento\Framework\Indexer\IndexerRegistry */ protected $indexerRegistry; /** * @var \Magento\Framework\Indexer\ScopeResolver\FlatScopeResolver */ protected $flatScopeResolver; /** * @param ResourceConnection $resource * @param IndexerRegistry $indexerRegistry * @param FlatScopeResolver $flatScopeResolver */ public function __construct( ResourceConnection $resource, IndexerRegistry $indexerRegistry, FlatScopeResolver $flatScopeResolver ) { $this->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; } }