Files
stemcell/app/code/Stemcell/Customer/Plugin/DataProviderWithDefaultAddressesPlugin.php
2026-09-15 10:26:34 +08:00

53 lines
1.5 KiB
PHP

<?php
namespace Stemcell\Customer\Plugin;
use Magento\Customer\Model\Customer\DataProviderWithDefaultAddresses;
use Magento\Framework\App\ObjectManager;
use Psr\Log\LoggerInterface;
use Stemcell\Customer\Model\ResourceModel\Salesperson;
class DataProviderWithDefaultAddressesPlugin
{
public function __construct(
protected Salesperson $salespersonResourceModel,
){
}
public function getSalesPerson(int $customerId)
{
$connection = $this->salespersonResourceModel->getConnection();
$query = $connection->query('select salesperson_id from customer_salesperson where customer_id = '. $customerId);
$result = $query->fetchAll();
if (!empty($result)) {
return array_column($result, 'salesperson_id');
}
return [];
}
public function afterGetData(
DataProviderWithDefaultAddresses $subject,
array $result
): array {
$logger = ObjectManager::getInstance()->get(LoggerInterface::class);
foreach ($result as $id => $entityData) {
if ($id) {
$result[$id]['customer']['extension_attributes']['customer_abbr'] = $entityData['customer']['customer_abbr'] ?? null;
$salesperson = $this->getSalesPerson($id);
// $logger->warning('$salesperson', $salesperson);
if ($salesperson) {
$result[$id]['customer']['salespersons'] = $salesperson;
}
}
}
return $result;
}
}