app/Customize/Controller/Block/NewItemController.php line 62

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