%PDF- %PDF-
Direktori : /var/www/html/bbw/farmaci/kritik-portale/module/Basis/src/Basis/Repo/ |
Current File : /var/www/html/bbw/farmaci/kritik-portale/module/Basis/src/Basis/Repo/UserRepo.php |
<?php /** * Created by PhpStorm. * User: juliangilles * Date: 29.07.14 * Time: 14:35 */ namespace Basis\Repo; use Basis\Model\User\User; use ReviewBase\Model\CleverReachManager; use Zend\Db\ResultSet\ResultSet; use Zend\Db\Sql\Sql; class UserRepo extends Basis implements RepoInterface { protected $cleverReachManager; /** * @param \Basis\EventBus\EventBus $eventBus * @param \Zend\Db\Adapter\Adapter $databaseAdapter */ public function __construct(\Basis\EventBus\EventBus $eventBus, \Zend\Db\Adapter\Adapter $databaseAdapter, CleverReachManager $cleverReachManager) { parent::__construct($eventBus, $databaseAdapter); parent::createEventStore("user"); $this->cleverReachManager = $cleverReachManager; } /** * @param string $entityId * @return User */ public function load($entityId = null) { $user = new User($this->cleverReachManager); if (empty($entityId)) { $user->generateId(); } else { $events = $this->_eventStore->loadEvents($entityId); $user->setId($entityId); $user->setFromEvents($events, $this->_eventBus, $this->_databaseAdapter); } return $user; } public function showUser($entityId) { $sql = new Sql($this->_databaseAdapter); $select = $sql->select() ->from("user") ->where('entityid="' . $entityId . '"'); $statement = $sql->prepareStatementForSqlObject($select); $result = $statement->execute(); $resultSet = new ResultSet(); $resultSet->initialize($result); if($resultSet->count() > 0){ return $resultSet->current(); } return false; } /** * @param string $entityId * @return User */ public function delete(\Basis\Model\EventBasis $object) { $object->delete(); $this->save($object); return $object; } /** * @param \Basis\Model\EventBasis $object */ public function save(\Basis\Model\EventBasis $object) { $this->_eventStore->saveEvents($object); $this->_eventBus->publish($object); } /** * @param string $email * @return boolean */ public function emailExists($email) { $sql = new Sql($this->_databaseAdapter); $select = $sql->select() ->from("user") ->where('email like "' . $email . '"'); // ->where('role like "user"'); $statement = $sql->prepareStatementForSqlObject($select); $result = $statement->execute(); $resultSet = new ResultSet(); $resultSet->initialize($result); if($resultSet->count() > 0){ return true; } return false; } public function usernameExists($username) { if (!empty($username)) { $sql = new Sql($this->_databaseAdapter); $select = $sql->select() ->from("user") ->where('username like "' . $username . '"'); $statement = $sql->prepareStatementForSqlObject($select); $result = $statement->execute(); $resultSet = new ResultSet(); $resultSet->initialize($result); if($resultSet->count() > 0){ return true; } } return false; } /** * @param string $query * @return result */ public function findUser($query) { $queryParts = explode(" ", $query); $sql = new Sql($this->_databaseAdapter); $select = $sql->select() ->from("user") ->where('active = 1') ->limit(10); foreach($queryParts as $part){ $select->where('email like "%' . $part . '%" OR name like "%' . $part . '%" OR surname like "%' . $part . '%"'); } $statement = $sql->prepareStatementForSqlObject($select); $result = $statement->execute(); $resultSet = new ResultSet(); $resultSet->initialize($result); $typeaheadResults = []; foreach ($resultSet as $result) { $typeaheadResults[] = [ 'name' => $result['name'] . " " . $result['surname'], 'email' => $result['email'], ]; } return $typeaheadResults; } /** * @param string $newEmail * @param string $userId * @return boolean */ public function newEmailExists($email, $userId) { $sql = new Sql($this->_databaseAdapter); $select = $sql->select() ->from("user") ->where('email like "' . $email . '"') ->where('entityid NOT LIKE "' . $userId . '"'); $statement = $sql->prepareStatementForSqlObject($select); $result = $statement->execute(); $resultSet = new ResultSet(); $resultSet->initialize($result); if($resultSet->count() > 0){ return true; } return false; } public function newUsernameExists($username, $userId) { if (!empty($username)) { $sql = new Sql($this->_databaseAdapter); $select = $sql->select() ->from("user") ->where('username like "' . $username . '"') ->where('entityid NOT LIKE "' . $userId . '"'); $statement = $sql->prepareStatementForSqlObject($select); $result = $statement->execute(); $resultSet = new ResultSet(); $resultSet->initialize($result); if($resultSet->count() > 0){ return true; } } return false; } /** * @param string $hash * @return boolean */ public function getUserByHash($hash) { $sql = new Sql($this->_databaseAdapter); $select = $sql->select() ->from("user") ->where('hash like "' . $hash . '"'); $statement = $sql->prepareStatementForSqlObject($select); $result = $statement->execute(); $resultSet = new ResultSet(); $resultSet->initialize($result); if($resultSet->count() > 0){ return $resultSet->current(); } return false; } /** * @param string $email * @return boolean */ public function getUserByEmail($email) { $sql = new Sql($this->_databaseAdapter); $select = $sql->select() ->from("user") ->where('email like "' . $email . '"'); $statement = $sql->prepareStatementForSqlObject($select); $result = $statement->execute(); $resultSet = new ResultSet(); $resultSet->initialize($result); if($resultSet->count() > 0){ return $resultSet->current(); } return false; } public function getUserByExternalCustomerID($customerID) { $sql = new Sql($this->_databaseAdapter); $select = $sql->select() ->from("user") ->where('external_customer_id like "' . $customerID. '"'); $statement = $sql->prepareStatementForSqlObject($select); $result = $statement->execute(); $resultSet = new ResultSet(); $resultSet->initialize($result); if($resultSet->count() > 0){ return $resultSet->current(); } return false; } public function getHomeCountForPharmacy($entityid) { $sql = new Sql($this->_databaseAdapter); $select = $sql->select() ->from("user") ->where('home like "' . $entityid . '"'); $statement = $sql->prepareStatementForSqlObject($select); $result = $statement->execute(); $resultSet = new ResultSet(); $resultSet->initialize($result); $count = count($resultSet); return $count; } /** * @param $pharmacyId * @return ResultSet */ public function getHomePharmacyFollower($pharmacyId) { $sql = new Sql($this->_databaseAdapter); $select = $sql->select() ->from("user") ->where('home like "' . $pharmacyId . '"'); $statement = $sql->prepareStatementForSqlObject($select); $result = $statement->execute(); $resultSet = new ResultSet(); $resultSet->initialize($result); return $resultSet; } public function getUserByUsername($username) { $sql = new Sql($this->_databaseAdapter); $select = $sql->select() ->from("user") ->where('username like "' . $username . '"'); $statement = $sql->prepareStatementForSqlObject($select); $result = $statement->execute(); $resultSet = new ResultSet(); $resultSet->initialize($result); if($resultSet->count() > 0){ return $resultSet->current(); } return false; } /** * @param string $hash * @return boolean */ public function getUserForReminds() { $twodaysBefore = date("Y-m-d H:i:s", strtotime('-2 days')); $sql = new Sql($this->_databaseAdapter); $select = $sql->select() ->from("user") ->where('active = 0') ->where('remind = 0') ->where('created_at <= "' . $twodaysBefore . '"') ->where('role like "owner"'); $statement = $sql->prepareStatementForSqlObject($select); $result = $statement->execute(); $resultSet = new ResultSet(); $resultSet->initialize($result); if($resultSet->count() > 0){ return $resultSet; } return false; } /** * @param string $hash * @return boolean */ public function getUserForRemove() { $fourdaysBefore = date("Y-m-d H:i:s", strtotime('-4 days')); $sql = new Sql($this->_databaseAdapter); $select = $sql->select() ->from("user") ->where('active = 0') ->where('remind = 1') ->where('created_at <= "' . $fourdaysBefore . '"') ->where('role like "owner"'); $statement = $sql->prepareStatementForSqlObject($select); $result = $statement->execute(); $resultSet = new ResultSet(); $resultSet->initialize($result); if($resultSet->count() > 0){ return $resultSet; } return false; } }