SearchResult.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\AsynchronousOperations\Ui\Component\DataProvider\Operation\Retriable;
  7. use Magento\Framework\Data\Collection\Db\FetchStrategyInterface as FetchStrategy;
  8. use Magento\Framework\Data\Collection\EntityFactoryInterface as EntityFactory;
  9. use Magento\Framework\Event\ManagerInterface as EventManager;
  10. use Psr\Log\LoggerInterface as Logger;
  11. use Magento\AsynchronousOperations\Ui\Component\DataProvider\Bulk\IdentifierResolver;
  12. use Magento\Framework\Bulk\OperationInterface;
  13. /**
  14. * Class SearchResult
  15. */
  16. class SearchResult extends \Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult
  17. {
  18. /**
  19. * @var IdentifierResolver
  20. */
  21. private $identifierResolver;
  22. /**
  23. * SearchResult constructor.
  24. * @param EntityFactory $entityFactory
  25. * @param Logger $logger
  26. * @param FetchStrategy $fetchStrategy
  27. * @param EventManager $eventManager
  28. * @param IdentifierResolver $identifierResolver
  29. * @param string $mainTable
  30. * @param null $resourceModel
  31. * @param string $identifierName
  32. */
  33. public function __construct(
  34. EntityFactory $entityFactory,
  35. Logger $logger,
  36. FetchStrategy $fetchStrategy,
  37. EventManager $eventManager,
  38. IdentifierResolver $identifierResolver,
  39. $mainTable = 'magento_operation',
  40. $resourceModel = null,
  41. $identifierName = 'id'
  42. ) {
  43. $this->identifierResolver = $identifierResolver;
  44. parent::__construct(
  45. $entityFactory,
  46. $logger,
  47. $fetchStrategy,
  48. $eventManager,
  49. $mainTable,
  50. $resourceModel,
  51. $identifierName
  52. );
  53. }
  54. /**
  55. * {@inheritdoc}
  56. */
  57. protected function _initSelect()
  58. {
  59. $bulkUuid = $this->identifierResolver->execute();
  60. $this->getSelect()->from(['main_table' => $this->getMainTable()], ['id', 'result_message', 'error_code'])
  61. ->where('bulk_uuid=?', $bulkUuid)
  62. ->where('status=?', OperationInterface::STATUS_TYPE_RETRIABLY_FAILED)
  63. ->group('error_code')
  64. ->columns(['records_qty' => new \Zend_Db_Expr('COUNT(id)')]);
  65. return $this;
  66. }
  67. }