collectionFactory = $collectionFactory; } /** * Cancel selected orders * * @param AbstractCollection $collection * @return \Magento\Backend\Model\View\Result\Redirect */ protected function massAction(AbstractCollection $collection) { $success = $failure = []; $messages = []; /* @var $order Order */ foreach ($collection->getItems() as $order) { try { if ($order->canShip()) { $this->orderManagement->setState( $order, Order::STATE_PROCESSING, OrderStatus::reviewed->name, '订单批量审核', null, false ); $this->orderRepository->save($order); $success[] = $order->getIncrementId(); } else { $failure[] = $order->getIncrementId(); } } catch (LocalizedException $e) { // $messages .= sprintf('订单%s审核异常,原因:%s', $order->getIncrementId(), $e->getMessage()).'
'; $messages[$order->getIncrementId()] = $e->getMessage(); } } if ($messages) { $this->logger->critical('订单批量审核异常', $messages); } if ($failure) { $this->messageManager->addErrorMessage(sprintf('订单:%s 批量审核失败', implode(', ', $failure))); } if ($success) { $this->messageManager->addSuccessMessage(sprintf('批量审核%d笔订单, %d审核成功.', $collection->count(), count($success))); } $resultRedirect = $this->resultRedirectFactory->create(); $resultRedirect->setPath($this->getComponentRefererUrl()); return $resultRedirect; } }