RefreshStatistics.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Backend\Controller\Adminhtml\Dashboard;
  7. use Magento\Framework\App\Action\HttpPostActionInterface;
  8. use Magento\Reports\Controller\Adminhtml\Report\Statistics;
  9. /**
  10. * Refresh Dashboard statistics action.
  11. */
  12. class RefreshStatistics extends Statistics implements HttpPostActionInterface
  13. {
  14. /**
  15. * @param \Magento\Backend\App\Action\Context $context
  16. * @param \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter
  17. * @param array $reportTypes
  18. * @param \Psr\Log\LoggerInterface $logger
  19. */
  20. public function __construct(
  21. \Magento\Backend\App\Action\Context $context,
  22. \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter,
  23. array $reportTypes,
  24. \Psr\Log\LoggerInterface $logger
  25. ) {
  26. parent::__construct($context, $dateFilter, $reportTypes);
  27. $this->logger = $logger;
  28. }
  29. /**
  30. * Refresh statistics.
  31. *
  32. * @return \Magento\Backend\Model\View\Result\Redirect
  33. */
  34. public function execute()
  35. {
  36. try {
  37. $collectionsNames = array_values($this->reportTypes);
  38. foreach ($collectionsNames as $collectionName) {
  39. $this->_objectManager->create($collectionName)->aggregate();
  40. }
  41. $this->messageManager->addSuccessMessage(__('We updated lifetime statistic.'));
  42. } catch (\Exception $e) {
  43. $this->messageManager->addErrorMessage(__('We can\'t refresh lifetime statistics.'));
  44. $this->logger->critical($e);
  45. }
  46. /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
  47. $resultRedirect = $this->resultRedirectFactory->create();
  48. return $resultRedirect->setPath('*/*');
  49. }
  50. }