app/Customize/Controller/Block/OutletTopController.php line 61

Open in your IDE?
  1. <?php
  2. namespace Customize\Controller\Block;
  3. use Customize\Repository\CustomProductRepository;
  4. use Customize\Repository\CustomProductTagRepository;
  5. use Customize\Repository\ProductPlus\ProductDataDetailRepository;
  6. use Customize\Repository\ProductPlus\ProductDataRepository;
  7. use Eccube\Controller\AbstractController;
  8. use Eccube\Repository\ProductRepository;
  9. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\RequestStack;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. class OutletTopController extends AbstractController
  14. {
  15.     /**
  16.      * @var ProductDataRepository
  17.      */
  18.     protected $productDataRepository;
  19.     /**
  20.      * @var ProductDataDetailRepository
  21.      */
  22.     protected $productDataDetailRepository;
  23.     /**
  24.      * @var CustomProductRepository
  25.      */
  26.     protected $customProductRepository;
  27.     /**
  28.      * @var ProductRepository
  29.      */
  30.     protected $productRepository;
  31.     private $outletTag 3;
  32.     /**
  33.      * ProductController constructor.
  34.      *
  35.      * @param ProductRepository $productRepository
  36.      */
  37.     public function __construct(
  38.         ProductDataRepository       $productDataRepository,
  39.         CustomProductRepository $customProductRepository,
  40.         ProductDataDetailRepository $productDataDetailRepository,
  41.         ProductRepository $productRepository
  42.     ) {
  43.         $this->productDataRepository $productDataRepository;
  44.         $this->customProductRepository $customProductRepository;
  45.         $this->productDataDetailRepository $productDataDetailRepository;
  46.         $this->productRepository $productRepository;
  47.     }
  48.     /**
  49.      * @Route("/block/outlet_top", name="block_outlet_top")
  50.      * @Template("Block/outlet_top.twig")
  51.      */
  52.     public function index()
  53.     {
  54.         // アウトレット
  55.         $outletProductList $this->productRepository->getTagProduct($this->outletTag);
  56.         $Member $this->getUser();
  57.         // 会員がGroupに属しているか
  58.         if ($Member != null && $Member->getGroups()->toArray()) {
  59.             $groupId $Member->getGroups()->toArray()[0]->getId();
  60.         } else {
  61.             $groupId 0;
  62.         }
  63.         $PriorityFlagItemList = [];
  64.         $outletProducts = [];
  65.         $cnt 0;
  66.         foreach ($outletProductList as $product)
  67.         {
  68.             if ($cnt ) {
  69.                 // 商品にGroupが登録されているか
  70.                 $groupIdList = [];
  71.                 foreach ($product->getgroups()->toArray() as $i => $group) {
  72.                     $groupIdList[$i] = $group->getId();
  73.                 }
  74.                 if (!empty($groupIdList)) {
  75.                     if (in_array($groupId$groupIdList)) {
  76.                         $tmpData $this->customProductRepository->getPriorityFlagProduct($product->getId());
  77.                         if (is_object($tmpData)) {
  78.                             $PriorityFlagItemList[$product->getId()] = $tmpData;
  79.                         } else {
  80.                             $PriorityFlagItemList[$product->getId()] = $product;
  81.                         }
  82.                         $outletProducts[$cnt] = $product;
  83.                         $cnt++;
  84.                     }
  85.                 } else {
  86.                     $tmpData $this->customProductRepository->getPriorityFlagProduct($product->getId());
  87.                     if (is_object($tmpData)) {
  88.                         $PriorityFlagItemList[$product->getId()] = $tmpData;
  89.                     } else {
  90.                         $PriorityFlagItemList[$product->getId()] = $product;
  91.                     }
  92.                     $outletProducts[$cnt] = $product;
  93.                     $cnt++;
  94.                 }
  95.             } else {
  96.                 break;
  97.             }
  98.         }
  99.         return [
  100.             'outletProducts' => $outletProducts,
  101.             'priorityFlagItemList' => $PriorityFlagItemList,
  102.             'TagId' => $this->outletTag,
  103.         ];
  104.     }
  105. }