Files
stemcell/app/code/Stemcell/Sales/Observer/SalespersonNotify.php
T
2026-09-15 10:26:34 +08:00

50 lines
1.6 KiB
PHP

<?php
namespace Stemcell\Sales\Observer;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\Exception\LocalizedException;
use Magento\Sales\Model\Order;
use Psr\Log\LoggerInterface;
use Stemcell\Customer\Api\Data\SalespersonInterface;
use Stemcell\Customer\Api\SalespersonRepositoryInterface;
use Stemcell\Sales\Model\Order\Email\Sender\OrderSender;
class SalespersonNotify implements ObserverInterface
{
private OrderSender $orderMailSender;
private LoggerInterface $logger;
public function __construct(
OrderSender $orderMailSender,
LoggerInterface $logger,
protected SalespersonRepositoryInterface $salespersonRepository,
) {
$this->orderMailSender = $orderMailSender;
$this->logger = $logger;
}
/**
* @param Observer $observer
* @return void
*/
public function execute(Observer $observer)
{
/** @var $orderInstance Order */
$orderInstance = $observer->getOrder();
$salespersonId = $orderInstance->getData('salesperson_id');
try {
if ($salespersonId) {
$salesperson = $this->salespersonRepository->get($salespersonId);
$this->orderMailSender->setSalesperson($salesperson)->send($orderInstance);
} else {
$this->logger->critical(sprintf('发送给销售的邮件失败,原因:订单%s的salesperson_id为空', $orderInstance->getEntityId()));
}
} catch (\Exception $e) {
$this->logger->critical('发送给销售的邮件失败,原因:'.$e->getMessage(), $e->getTrace());
}
}
}