app/Plugin/CheckProduct4/Controller/Block/CheckProductController.php line 54

Open in your IDE?
  1. <?php
  2. /*
  3.  * Copyright(c) 2019 SYSTEM FRIEND INC.
  4.  */
  5. namespace Plugin\CheckProduct4\Controller\Block;
  6. use Eccube\Controller\AbstractController;
  7. use Eccube\Entity\Master\ProductStatus;
  8. use Eccube\Entity\Product;
  9. use Eccube\Repository\ProductRepository;
  10. use Eccube\Service\ProductReviewService;
  11. use Plugin\ProductReview4\Repository\ProductReviewRepository;
  12. use Symfony\Component\HttpFoundation\RequestStack;
  13. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  14. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  15. use Symfony\Component\Routing\Annotation\Route;
  16. use Symfony\Component\HttpFoundation\Request;
  17. class CheckProductController extends AbstractController
  18. {
  19.     /**
  20.      * @var RequestStack
  21.      */
  22.     protected $session;
  23.     /**
  24.      * @var ProductRepository
  25.      */
  26.     protected $productRepository;
  27.     /**
  28.      * @var ProductReviewRepository
  29.      */
  30.     protected $productReviewRepository;
  31.     protected $productReviewService;
  32.     public function __construct(SessionInterface $session,ProductRepository $productRepositoryProductReviewRepository $productReviewRepositoryProductReviewService $productReviewService) {
  33.         $this->session $session;
  34.         $this->productRepository $productRepository;
  35.         $this->productReviewRepository $productReviewRepository;
  36.         $this->productReviewService $productReviewService;
  37.     }
  38.     /**
  39.      * @Route("/block/check_product", name="block_check_product")
  40.      * @Template("Block/check_product.twig")
  41.      *
  42.      * @param Request $request
  43.      * @return array
  44.      */
  45.     public function index(Request $request) {
  46.         $productId =  $this->session->get('plugin.check_product.product') ?: array();
  47.         $CheckProducts = array();
  48.         foreach ($productId as $id) {
  49.             $Product $this->productRepository->find($id);
  50.             if(!is_null($Product) && $Product->getStatus()->getId() === ProductStatus::DISPLAY_SHOW) {
  51.                 $CheckProducts[] = $Product;
  52.                 $productRate $this->productRepository->findOneBy(['id' => $Product["id"]]);
  53.                 $rate $this->productReviewService->getReview($productRate);
  54.                 $Product->review_ave round($rate['RecommendAvg'], 1);
  55.                 $Product->review_cnt intval($rate['ReviewCntList']);
  56.             }
  57.         }
  58.         return [
  59.             'CheckProducts' => $CheckProducts,
  60.         ];
  61.     }
  62. }