src/Admin/MainBundle/Controller/DefaultController.php line 25

Open in your IDE?
  1. <?php
  2. namespace Admin\MainBundle\Controller;
  3. use AppBundle\Controller\AbstractController;
  4. use AppBundle\Entity\Advertising\Advertising;
  5. use AppBundle\Entity\Advertising\AdvertisingAgents;
  6. use AppBundle\Entity\Advertising\AdvertisingManagers;
  7. use AppBundle\Entity\Advertising\AdvertisingModerators;
  8. use AppBundle\Entity\Advertising\AdvertisingObservers;
  9. use AppBundle\Entity\FosUser\FosUser;
  10. use AppBundle\Entity\FosUser\FosUserSettings;
  11. use AppBundle\Entity\FosUser\FosUserSocialInfo;
  12. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  13. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  14. use Symfony\Component\HttpFoundation\Response;
  15. class DefaultController extends AbstractController
  16. {
  17.     /**
  18.      * @Route("/", name="homepage")
  19.      * @Template()
  20.      */
  21.     public function indexAction()
  22.     {
  23.         if ($this->isGranted('IS_AUTHENTICATED_FULLY')) {
  24.             return $this->redirectToRoute('homepage_logined');
  25.         } else {
  26.             return $this->redirectToRoute('login');
  27.         }
  28.     }
  29.     /**
  30.      * @Route("/a/", name="homepage_logined")
  31.      * @Template()
  32.      */
  33.     public function indexLoginedAction()
  34.     {
  35.         $advertisings $this->getEm()
  36.             ->getRepository(Advertising::class)
  37.             ->findBy([], ['id'=>'DESC']);
  38.         return ['advertisings'=> $advertisings];
  39.     }
  40.     /**
  41.      * @Route("/a/advertisings", name="advertising_index")
  42.      * @Template()
  43.      */
  44.     public function promotionsAction()
  45.     {
  46.         if ($this->isGranted('ROLE_MANAGER')) {
  47.             $advertisings $this->getEm()
  48.                 ->getRepository(Advertising::class)
  49.                 ->findBy([], ['id'=>'DESC']);
  50.             return ['advertisings'=> $advertisings];
  51.         }
  52.         $advertisings = [];
  53.         if ($this->isGranted('ROLE_MODERATOR')) {
  54.             $advertisings $this->getEm()
  55.                 ->getRepository(AdvertisingModerators::class)
  56.                 ->findBy([
  57.                     'userId' => $this->getUser()
  58.                 ], ['advertising'=>'DESC']);
  59.         }
  60.         if ($this->isGranted('ROLE_PROJECT')) {
  61.             $advertisingsByManager $this->getEm()
  62.                 ->getRepository(AdvertisingManagers::class)
  63.                 ->findBy([
  64.                     'user' => $this->getUser()
  65.                 ], ['advertising'=>'DESC']);
  66.             $advertisingsByObserver $this->getEm()
  67.                 ->getRepository(AdvertisingObservers::class)
  68.                 ->findBy([
  69.                     'userId' => $this->getUser()->getId()
  70.                 ], ['advertising'=>'DESC']);
  71.             $advertisings array_merge($advertisingsByManager$advertisingsByObserver);
  72.         }
  73.         usort($advertisings, function ($a$b)
  74.         {
  75.             if ($a->getId() == $b->getId()) {
  76.                 return 0;
  77.             }
  78.             return ($a->getId() > $b->getId()) ? -1;
  79.         });
  80.         return [
  81.             'advertisingsByManager'=> $advertisings
  82.         ];
  83.     }
  84.     /**
  85.      * @Route("/a/clear-status")
  86.      */
  87.     public function clearStatusAction()
  88.     {
  89.         $em $this->getEm();
  90.         $fosUserSocial $em->getRepository(FosUserSocialInfo::class)
  91.             ->getForClear();
  92.         $ids = [];
  93.         foreach ($fosUserSocial as $socialInfo) {
  94.             /** @var FosUser $user */
  95.             $user $socialInfo->getUser();
  96.             $settings $user->getSettings();
  97.             $settings->setSocialCheck(FosUserSettings::SOCIAL_CHECK_NO);
  98.             $em->persist($settings);
  99.             $ids[] = $user->getId();
  100.         }
  101.         $em->flush();
  102.         $repo $em->getRepository(AdvertisingAgents::class);
  103.         $qb $repo->createQueryBuilder('aa');
  104.         $qb->update()
  105.             ->where('aa.user IN (:ids )')
  106.             ->set('aa.statusSocialNetworks'':statusSocialNetworks')
  107.             ->setParameter('statusSocialNetworks'AdvertisingAgents::STATUS_SOCIAL_NETWORKS_NOT_CHECKED)
  108.             ->setParameter('ids'$ids)
  109.         ;
  110.         $qb->getQuery()->execute();
  111.         return new Response('done');
  112.     }
  113. }