public function getProfileData(User $user) { $result = []; $result['subscribe'] = ['enabled' => $user->getIsSubscribed()]; $result['profile'] = $user; $connection = $this->getEntityManager()->getConnection(); $settings = $connection->fetchAll('SELECT tkey, value FROM ed_users_settings WHERE user_id=:user AND tkey IN (:keys)', ['user' => $user->getId(), 'keys' => ['lk_user_disabled', 'lk_privacy_disabled', 'lk_balance_disabled', 'lk_additional_disabled']], ['keys' => Connection::PARAM_STR_ARRAY]); $result['settings'] = []; foreach ($settings as $setting) { $result['settings'][$setting['tkey']] = $setting['value']; } return $result; }
public function getSubactions($action_id, User $user, \DateTime $date = null, $doneOnly = false) { if (!$date) { $date = new \DateTime(); } $date->modify('midnight'); $dateFinish = clone $date; $dateFinish->modify('tomorrow midnight'); $connection = $this->getEntityManager()->getConnection(); $sql = 'SELECT sa.id, sa.title, EXISTS( SELECT * FROM ed_users_subactions_progresses sp WHERE sp.subaction_id=sa.id AND sp.user_id=:user AND sp.created_at > :dayStart AND sp.created_at < :dayFinish ) as progress FROM ed_subactions sa WHERE ' . 'sa.action_id=:action'; if ($doneOnly) { $sql .= ' HAVING progress'; } $result = $connection->fetchAll($sql, ['user' => $user->getId(), 'action' => $action_id, 'dayStart' => $date, 'dayFinish' => $dateFinish], ['dayStart' => 'datetime', 'dayFinish' => 'datetime']); foreach ($result as &$row) { $row['progress'] = (bool) $row['progress']; } return $result; $subactions = $this->getEntityManager()->createQueryBuilder()->from('AcmeEdelaBundle:Subaction', 'sa')->select('sa.id as id')->addSelect('sa.title as title')->addSelect('sp.createdAt as progress')->leftJoin('AcmeEdelaBundle:UserSubactionProgress', 'sp', Join::WITH, 'sp.subaction=sa AND sp.user=:user AND sp.createdAt > :dayStart AND sp.createdAt < :dayFinish')->setParameter('user', $user)->setParameter('dayStart', $date)->setParameter('dayFinish', $dateFinish)->where('sa.action=:action')->setParameter('action', $action_id); if ($doneOnly) { $subactions->andWhere('sp.createdAt IS NOT NULL'); } return $subactions->getQuery()->getResult(); }
/** * {@inheritDoc} */ public function getId() { if ($this->__isInitialized__ === false) { return (int) parent::getId(); } $this->__initializer__ && $this->__initializer__->__invoke($this, 'getId', array()); return parent::getId(); }