tuongdn

Consumer.php

Jul 17th, 2020
375
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. namespace Magenest\Salesforce\Model\Queue;
  3.  
  4. use Magento\Framework\Exception\LocalizedException;
  5. use Magenest\Salesforce\Model\Queue;
  6. use Magento\Framework\Filesystem;
  7. use Magento\Framework\Notification\NotifierInterface;
  8.  
  9. /**
  10. * Class Consumer
  11. * @package Magenest\Salesforce\Model\Queue
  12. */
  13. class Consumer
  14. {
  15. /* @var \Psr\Log\LoggerInterface /
  16. protected $_logger;
  17.  
  18. /* @var \Magento\Sales\Api\OrderRepositoryInterface /
  19. protected $_orderRepository;
  20.  
  21. /* @var NotifierInterface /
  22. protected $_notifier;
  23.  
  24. /* @var \Magenest\Salesforce\Model\QueueFactory /
  25. protected $_queueFactory;
  26.  
  27. /**
  28. * @var Filesystem
  29. */
  30. private $filesystem;
  31.  
  32. /* @var \Magento\Framework\Serialize\Serializer\Json /
  33. protected $_json;
  34.  
  35. /* @var string /
  36. protected $_type = null;
  37.  
  38. /**
  39. * Consumer constructor.
  40. *
  41. * @param \Psr\Log\LoggerInterface $logger
  42. * @param \Magento\Sales\Api\OrderRepositoryInterface $orderRepository
  43. * @param NotifierInterface $notifier
  44. * @param \Magenest\Salesforce\Model\QueueFactory $queueFactory
  45. * @param Filesystem $filesystem
  46. * @param \Magento\Framework\Serialize\Serializer\Json $json
  47. */
  48. public function __construct(
  49. \Psr\Log\LoggerInterface $logger,
  50. \Magento\Sales\Api\OrderRepositoryInterface $orderRepository,
  51. NotifierInterface $notifier,
  52. \Magenest\Salesforce\Model\QueueFactory $queueFactory,
  53. Filesystem $filesystem,
  54. \Magento\Framework\Serialize\Serializer\Json $json
  55. ){
  56. $this->_logger = $logger;
  57. $this->_orderRepository = $orderRepository;
  58. $this->_notifier = $notifier;
  59. $this->_queueFactory = $queueFactory;
  60. $this->filesystem = $filesystem;
  61. $this->_json = $json;
  62. }
  63.  
  64. /**
  65. * @param string $orderSearchResult
  66. */
  67. public function process($orderSearchResult)
  68. {
  69. try{
  70. $this->execute($orderSearchResult);
  71. $this->_notifier->addMajor(
  72. __('Your queue are ready'),
  73. __('You can check your orders at Salesforce Queue page')
  74. );
  75. }catch (\Exception $e){
  76. $errorCode = $e->getCode();
  77. $message = __('Sorry, something went wrong during add order to queue. Please see log for details.');
  78. $this->_notifier->addCritical(
  79. $errorCode,
  80. $message
  81. );
  82. $this->_logger->critical($errorCode .": ". $message);
  83. }
  84. }
  85.  
  86. /**
  87. * @param $orderItems
  88. *
  89. * @throws LocalizedException
  90. */
  91. private function execute($orderItems)
  92. {
  93. $orderCollectionArr = [];
  94. /* @var \Magenest\Salesforce\Model\Queue $queue /
  95. $queue = $this->_queueFactory->create();
  96. $orderItems = $this->_json->unserialize($orderItems);
  97. if(is_array($orderItems)){
  98. foreach ($orderItems as $type => $orderId) {
  99. $this->_type = $type;
  100. $orderCollectionArr[] = [
  101. 'type' => $type,
  102. 'entity_id' => $orderId,
  103. 'priority' => 1,
  104. ];
  105. }
  106. $queue->deleteQueueByType($this->_type);
  107. $queue->enqueueMultiRecords($orderCollectionArr);
  108. }
  109. }
  110. }
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×