app/Plugin/Paid4/EventSubscriber/AdminCustomerEditEventSubscriber.php line 218

Open in your IDE?
  1. <?php
  2. /*
  3.  * Copyright(c) 2020 RACCOON HOLDINGS, Inc. All rights reserved.
  4.  * https://paid.jp/
  5.  */
  6. namespace Plugin\Paid4\EventSubscriber;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Eccube\Entity\Customer;
  9. use Eccube\Event\EccubeEvents;
  10. use Eccube\Event\EventArgs;
  11. use Eccube\Event\TemplateEvent;
  12. use Plugin\Paid4\Service\PaidApi\PaidHelperMember;
  13. use Plugin\Paid4\Service\PaidCustomerService;
  14. use Plugin\Paid4\Util\PaidUtil;
  15. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  16. //use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
  17. use Symfony\Component\HttpKernel\Event\ResponseEvent// ここを修正
  18. use Symfony\Component\HttpKernel\KernelEvents;
  19. class AdminCustomerEditEventSubscriber implements EventSubscriberInterface
  20. {
  21.     /**
  22.      * @var EntityManagerInterface
  23.      */
  24.     protected $entityManager;
  25.     /**
  26.      * @var PaidHelperMember
  27.      */
  28.     private $paidHelperMember;
  29.     /**
  30.      * @var PaidCustomerService
  31.      */
  32.     private $paidCustomerService;
  33.     /**
  34.      * OrderEditIndexCompleteListener constructor.
  35.      *
  36.      * @param EntityManagerInterface $entityManager
  37.      * @param PaidHelperMember $PaidHelperMember
  38.      * @param PaidCustomerService $paidCustomerService
  39.      */
  40.     public function __construct(
  41.         EntityManagerInterface $entityManager,
  42.         PaidHelperMember $PaidHelperMember,
  43.         PaidCustomerService $paidCustomerService
  44.     )
  45.     {
  46.         $this->entityManager $entityManager;
  47.         $this->paidHelperMember $PaidHelperMember;
  48.         $this->paidCustomerService $paidCustomerService;
  49.     }
  50.     public function onResponse(ResponseEvent  $event)
  51.     {
  52.     }
  53.     /**
  54.      * @return array
  55.      */
  56.     public static function getSubscribedEvents(): array
  57.     {
  58.         return [
  59.             KernelEvents::RESPONSE => ['onResponse'],
  60.             EccubeEvents::ADMIN_CUSTOMER_EDIT_INDEX_INITIALIZE => 'onAdminEntryIndexInitialize',
  61.             '@admin/Customer/edit.twig' => 'onAdminCustomerEditTwig',
  62.             '@admin/Customer/index.twig' => 'onAdminCustomerIndexTwig',
  63.         ];
  64.     }
  65.     /**
  66.      * @param EventArgs $event
  67.      */
  68.     public function onAdminEntryIndexInitialize(EventArgs $event)
  69.     {
  70.         $request $event->getRequest();
  71.         $builder $event->getArgument("builder");
  72.         /* @var $form \Symfony\Component\Form\FormInterface */
  73.         $form $builder->getForm();
  74.         $form->handleRequest($request);
  75.         /** @var Customer $Customer */
  76.         $Customer $event->getArgument("Customer");
  77.         if (!is_null($Customer->getPaidCustomer())) {
  78.             $PaidCustomer $Customer->getPaidCustomer();
  79.             if (!is_null($PaidCustomer->getId())) {
  80.                 // 過去のステータスを取得
  81.                 $old_paid_confirm $PaidCustomer->getPaidConfirm();
  82.                 $this->serLogMessage('ADMIN_CUSTOMER_EDIT_INDEX_INITIALIZE - paid利用状況API開始');
  83.                 $member_status $this->paidHelperMember->getMemberStatus($Customer);
  84.                 $this->serLogMessage('ADMIN_CUSTOMER_EDIT_INDEX_INITIALIZE - paid利用状況API終了');
  85.                 if ($old_paid_confirm != $member_status) {
  86.                     $this->serLogMessage('ADMIN_CUSTOMER_EDIT_INDEX_INITIALIZE - paid会員ステータス変更開始');
  87.                     $PaidCustomer->setPaidConfirm($member_status);
  88.                     $this->entityManager->flush($PaidCustomer);
  89.                     $this->serLogMessage('ADMIN_CUSTOMER_EDIT_INDEX_INITIALIZE - paid会員ステータス変更終了');
  90.                 }
  91.             }
  92.         }
  93.     }
  94.     /**
  95.      *  管理画面 -> 会員情報 -> 編集
  96.      */
  97.     public function onAdminCustomerEditTwig(TemplateEvent $event)
  98.     {
  99.         $event->addSnippet('@Paid4/admin/Customer/paid_customer_area.twig');
  100.     }
  101.     /**
  102.      * 管理画面 -> 会員一覧 
  103.      */
  104.     public function onAdminCustomerIndexTwig(TemplateEvent $event)
  105.     {
  106.         $event->addSnippet('@Paid4/admin/Customer/index.twig');
  107.         $pagination $event->getParameter('pagination');
  108.         $PaidEntryLinks = array();
  109.         /** @var Customer $Customer */
  110.         foreach ($pagination as $Customer) {
  111.             $isPaidEntry false;
  112.             if ($Customer instanceof Customer) {
  113.                 $PaidCustomer $Customer->getPaidCustomer();
  114.                 if (!is_null($Customer->getPaidCustomer())) {
  115.                     if ($PaidCustomer->getPaidRegister() == $this->paidCustomerService->getRegisterUnregisteredId()
  116.                         || is_null($PaidCustomer->getPaidRegister())) {
  117.                         $isPaidEntry true;
  118.                     }
  119.                     //paid利用NG
  120.                     if ($PaidCustomer->getPaidUse() == $this->paidCustomerService->getUseNotAvailableId()) {
  121.                         $isPaidEntry false;
  122.                     }
  123.                 } else {
  124.                     $isPaidEntry true;
  125.                 }
  126.                 $PaidEntryLinks[$Customer->getId()] = $isPaidEntry;
  127.             }
  128.         }
  129.         $event->setParameter('paid_entry_link_states'$PaidEntryLinks);
  130.     }
  131.     /**
  132.      * @param string $Message
  133.      */
  134.     private function serLogMessage($Message '')
  135.     {
  136.         PaidUtil::logInfo(__NAMESPACE__ get_class($this) . ' - ' $Message);
  137.     }
  138. }