<?php
namespace Plugin\EPub42\Controller\Mypage;
use Eccube\Controller\AbstractController;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Plugin\EPub42\Repository\EPubRepository;
use Plugin\EPub42\Service\EPubService;
class EPubController extends AbstractController
{
/**
* @var EPubRepository
*/
protected $ePubRepository;
/**
* @var EPubService
*/
protected $ePubService;
/**
* CouponShoppingController constructor.
*
* @var EPubRepository $ePubRepository
* @var EPubService $ePubService
*/
public function __construct(
EPubRepository $ePubRepository,
EPubService $ePubService
)
{
$this->ePubRepository = $ePubRepository;
$this->ePubService = $ePubService;
}
/**
* 書籍読み放題ページページ.
*
* @Route("/mypage/readebook/{id}", name="mypage_read_ebook", methods={"GET"}, requirements={"id" = "\d+"})
* @Template("Mypage/read_ebook.twig")
*
* @param Request $request
*/
public function eBook(Request $request, $id=null)
{
if($id == null || ($id != 1 && $id != 2 )){
throw new NotFoundHttpException();
}
//定期ユーザーかチェック
$Customer = $this->getUser();
if ($id == 1) {
$eBooks = $this->ePubRepository->getPublishedEBook($id);
return [
'eBooks' => $eBooks,
'Customer' => $Customer,
'category' => $id,
];
}
if ($id == 2) {
/**
* 登録されている健康教室の電子書籍を取得する
* 定期ユーザの場合は、購入履歴をチェックする
* 定期ユーザの場合
* 購入履歴に健康教室定期の購入があれば、その号だけ見せる
* なければ、今日から12ヶ月前の健康教室を見せる
*/
if($Customer->getTeikiUserFlg()) {
$eBooks = [];
//本日より以前の発売済みの健康教室の電子書籍を全て取得する
$KenkouKyoushituEBooks = $this->ePubRepository->getKenkoukyoushitsuEBooks();
if($KenkouKyoushituEBooks) {
//健康教室定期の購入履歴があるか
$teiki_order_flg = false;
foreach($KenkouKyoushituEBooks as $book) {
// 定期の購入があるかどうか
$TeikiOrder = $this->ePubService->getTeikiOrder($Customer, $book->getStartDate());
if ($TeikiOrder) {
array_push($eBooks, $book);
} else {
// 単品での購入があるかどうか
$SingleOrder = $this->ePubService->getSingleItemOrder($Customer, $book->getProductId());
if ($SingleOrder) {
array_push($eBooks, $book);
}
}
}
//if($teiki_order_flg == false) {
// // 過去12ヶ月分を無条件で見せる
// $today = new \DateTime();
// $i = 0;
// foreach ($KenkouKyoushituEBooks as $book) {
// if($i < 12) {
// if($book->getStartDate() <= $today){
// array_push($eBooks, $book);
// }
// }
// $i++;
// }
//}
}
// 定期ユーザは、一旦すべてみせる
//foreach ($KenkouKyoushituEBooks as $book) {
// array_push($eBooks, $book);
//}
//$eBooks = $this->ePubRepository->getPublishedEBook($id);
return [
'eBooks' => $eBooks,
'Customer' => $Customer,
'category' => $id,
];
} else {
}
}
}
}