Skip to content

Commit ad43709

Browse files
author
valdislav
committed
MAGETWO-35628: Refactor queries for Magento\Reports\Model\Resource\Customer\Collection - use order connnection for sales related tables
1 parent c2a4504 commit ad43709

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

app/code/Magento/Reports/Model/Resource/Customer/Collection.php

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ class Collection extends \Magento\Customer\Model\Resource\Customer\Collection
6666
*/
6767
protected $_quoteItemFactory;
6868

69+
/**
70+
* @var \Magento\Sales\Model\Resource\Order\Collection
71+
*/
72+
protected $orderResource;
73+
6974
/**
7075
* @param \Magento\Framework\Data\Collection\EntityFactory $entityFactory
7176
* @param \Psr\Log\LoggerInterface $logger
@@ -79,6 +84,7 @@ class Collection extends \Magento\Customer\Model\Resource\Customer\Collection
7984
* @param \Magento\Framework\Object\Copy\Config $fieldsetConfig
8085
* @param \Magento\Quote\Model\QuoteRepository $quoteRepository
8186
* @param \Magento\Quote\Model\Resource\Quote\Item\CollectionFactory $quoteItemFactory
87+
* @param \Magento\Sales\Model\Resource\Order\Collection $orderResource
8288
* @param mixed $connection
8389
* @param string $modelName
8490
*
@@ -97,6 +103,7 @@ public function __construct(
97103
\Magento\Framework\Object\Copy\Config $fieldsetConfig,
98104
\Magento\Quote\Model\QuoteRepository $quoteRepository,
99105
\Magento\Quote\Model\Resource\Quote\Item\CollectionFactory $quoteItemFactory,
106+
\Magento\Sales\Model\Resource\Order\Collection $orderResource,
100107
$connection = null,
101108
$modelName = self::CUSTOMER_MODEL_NAME
102109
) {
@@ -114,6 +121,7 @@ public function __construct(
114121
$connection,
115122
$modelName
116123
);
124+
$this->orderResource = $orderResource;
117125
$this->quoteRepository = $quoteRepository;
118126
$this->_quoteItemFactory = $quoteItemFactory;
119127
}
@@ -175,17 +183,17 @@ protected function _addOrdersStatistics()
175183
$customerIds = $this->getColumnValues($this->getResource()->getIdFieldName());
176184

177185
if ($this->_addOrderStatistics && !empty($customerIds)) {
178-
$adapter = $this->getConnection();
186+
$adapter = $this->orderResource->getConnection();
179187
$baseSubtotalRefunded = $adapter->getIfNullSql('orders.base_subtotal_refunded', 0);
180188
$baseSubtotalCanceled = $adapter->getIfNullSql('orders.base_subtotal_canceled', 0);
181189

182190
$totalExpr = $this->_addOrderStatFilter ?
183191
"(orders.base_subtotal-{$baseSubtotalCanceled}-{$baseSubtotalRefunded})*orders.base_to_global_rate" :
184192
"orders.base_subtotal-{$baseSubtotalCanceled}-{$baseSubtotalRefunded}";
185193

186-
$select = $this->getConnection()->select();
194+
$select = $this->orderResource->getConnection()->select();
187195
$select->from(
188-
['orders' => $this->getTable('sales_order')],
196+
['orders' => $this->orderResource->getTable('sales_order')],
189197
[
190198
'orders_avg_amount' => "AVG({$totalExpr})",
191199
'orders_sum_amount' => "SUM({$totalExpr})",
@@ -202,7 +210,7 @@ protected function _addOrdersStatistics()
202210
'orders.customer_id'
203211
);
204212

205-
foreach ($this->getConnection()->fetchAll($select) as $ordersInfo) {
213+
foreach ($this->orderResource->getConnection()->fetchAll($select) as $ordersInfo) {
206214
$this->getItemById($ordersInfo['customer_id'])->addData($ordersInfo);
207215
}
208216
}

0 commit comments

Comments
 (0)