<?php
namespace App\Controller\FrontendBundle;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
use App\BackendBundle\Helper\UserHelper;
use App\Entity\User;
class InfoController extends AbstractController {
private UserHelper $userHelper;
public function __construct(UserHelper $userhelper) {
$this->userHelper = $userhelper;
}
/**
* @return \Symfony\Component\HttpFoundation\Response
* @Route("/show_head_news_infos", name="head_infos_show")
*/
public function dataAction(Request $request) {
$this->newsCount = 0;
/* @var $user User */
$user = $this->getUser();
$data = array();
if (!$this->userHelper->isUserLoggedIn()) {
return new JsonResponse($data);
}
$this->countNewNewsMessages($user);
if (isset($this->newsCount) && $this->newsCount > 9) {
$this->newsCount = '9+';
}
$data['count'] = $this->newsCount;
return new JsonResponse($data);
}
private function countNewNewsMessages($user) {
$sqlText = 'SELECT n FROM App\Entity\News n JOIN n.newsType nt
WHERE n.receiverUser = :user and n.isNew = true and nt.id<>7';
$query = $this->getDoctrine()->getManager()->createQuery($sqlText);
$query->setParameter('user', $user);
$result = $query->getResult();
$resultCount = count($result);
$this->newsCount = $resultCount;
}
}