示例#1
0
 /**
  *
  */
 public function getactivecodeAction()
 {
     /** @var \Zend\Http\Request $request */
     $request = $this->getRequest();
     $sl = $this->getServiceLocator();
     /* @var $userMapper \User\Model\UserMapper() */
     $userMapper = $sl->get('User\\Model\\UserMapper');
     /* @var $userService \User\Service\User() */
     $userService = $sl->get('User\\Service\\User');
     /* @var $form \User\Form\GetActiveCode() */
     $form = $sl->get('User\\Form\\GetActiveCode');
     $form->setInputFilter($sl->get('User\\Form\\GetActiveCodeFilter'));
     $message = '';
     if ($request->isPost()) {
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $validator = new \Zend\Validator\EmailAddress();
             $user = new User();
             $translator = $sl->get('translator');
             if ($validator->isValid($request->getPost('inputStr')) && $request->getPost('captcha')) {
                 $user->setEmail($request->getPost('inputStr'));
             } else {
                 $user->setUsername($request->getPost('inputStr'));
             }
             $us = $userMapper->get(null, $user->getUsername(), $user->getEmail());
             if (!$us) {
                 $message = '<p class="error">' . $translator->translate('Địa chỉ email hoặc tên đăng nhập không chính xác') . '</p>';
             } else {
                 if ($us->getActive() != null) {
                     $message = '<p class="error">' . $translator->translate('Tài khoản của bạn đã được kích hoạt') . '</p>';
                 } else {
                     $userService->sendActiveLink($user);
                     $message = '<p>' . $translator->translate('Xác nhận gửi lại link kích hoạt tài khoản thành công, vui lòng kiểm tra lại địa chỉ email của bạn để nhận link kích hoạt tài khoản') . '</p>';
                 }
             }
         }
     }
     $viewModel = new ViewModel(array('form' => $form, 'message' => $message));
     return $viewModel;
 }
示例#2
0
 /**
  * @param \User\Model\User $item
  */
 public function loadIds($item)
 {
     $select = $this->getDbSql()->select(array('u' => self::TABLE_NAME));
     $select->columns(['id']);
     if ($item->getUsername()) {
         $select->where(['(u.username LIKE ? OR u.fullName LIKE ? OR u.email LIKE ?)' => ['%' . $item->getUsername() . '%', '%' . $item->getUsername() . '%', '%' . $item->getUsername() . '%']]);
     }
     $query = $this->getDbSql()->buildSqlString($select);
     $rows = $this->getDbAdapter()->query($query, Adapter::QUERY_MODE_EXECUTE);
     $result = [];
     if ($rows->count()) {
         foreach ($rows as $row) {
             $row = (array) $row;
             $result[$row['id']] = $row['id'];
         }
     }
     if (count($result)) {
         return $result;
     } else {
         return [-1];
     }
 }
示例#3
0
 /**
  * @param \User\Model\User $user
  * @return boolean
  */
 public function updateUser(\User\Model\User $user)
 {
     if (!$user->getId() && !$user->getEmail() && !$user->getUsername()) {
         return false;
     }
     /* @var $userMapper \User\Model\UserMapper */
     $userMapper = $this->getServiceLocator()->get('User\\Model\\UserMapper');
     if ($user->getPassword()) {
         $user->setSalt(substr(md5(rand(2000, 5000) . time() . rand(2000, 5000)), 0, 20));
         $user->setPassword(md5($user->getSalt() . $user->getPassword()));
     }
     return $userMapper->updateUser($user);
 }
示例#4
0
文件: User.php 项目: venril/blogger3
 public function update(UserModel $user)
 {
     $sql = 'UPDATE user SET
             email=:email,
             username=:username,
             password=:password,
             firstname=:firstname,
             lastname=:lastname,
             birthdate=:birthdate,
             isActive=:isActive
             WHERE id=:id
            ';
     $this->getDb()->beginTransaction();
     try {
         $stmt = $this->getDb()->prepare($sql);
         $stmt->execute(array('email' => $user->getEmail(), 'username' => $user->getUsername(), 'password' => $user->getPassword(), 'firstname' => $user->getFirstname(), 'lastname' => $user->getLastname(), 'birthdate' => $user->getBirthdate()->format('Y-m-d'), 'isActive' => $user->getIsActive(), 'id' => (int) $user->getId()));
         $this->getDb()->commit();
     } catch (PDOException $e) {
         $this->getDb()->rollBack();
         throw $e;
     }
 }
示例#5
0
文件: User.php 项目: venril/blogger2
 public function insert(UserModel $user)
 {
     $sql = 'INSERT INTO user VALUES (' . 'NULL, ' . "'" . $user->getEmail() . "'," . "'" . $user->getUsername() . "'," . "'" . $user->getPassword() . "'," . "'" . $user->getFirstname() . "'," . "'" . $user->getLastname() . "'," . "'" . $user->getBirthdate()->format('Y-m-d') . "'," . "'" . (int) $user->getIsActive() . "'" . ")";
     echo $sql;
     $this->getDb()->exec($sql);
 }
示例#6
0
 /**
  * @param $option
  */
 public function reportemployee($option)
 {
     $select = $this->getDbSql()->select(['ca' => self::TABLE_NAME]);
     $select->columns(['callcenter', 'mentor', 'count' => new Expression('COUNT(ca.id)'), 'rating' => new Expression('AVG(ca.rating)'), 'createdDate', 'createdDateTime', 'endedDate', 'endedDateTime', 'time' => new Expression('Sum(TIMESTAMPDIFF(MINUTE,`createdDateTime`,`endedDateTime`))')]);
     $select->where(['endedDate IS NOT NULL', 'endedDateTime IS NOT NULL']);
     if ($option['fromDate']) {
         $select->where(['ca.endedDate >= ?' => $option['fromDate']]);
     }
     if ($option['toDate']) {
         $select->where(['ca.endedDate <= ?' => $option['toDate']]);
     }
     if ($option['username']) {
         $predicateSet = new PredicateSet();
         $predicateSet->addPredicate(new Like('ca.callcenter', '%' . $option['username'] . '%'), $predicateSet::OP_OR);
         $predicateSet->addPredicate(new Like('ca.mentor', '%' . $option['username'] . '%'), $predicateSet::OP_OR);
         $select->where($predicateSet);
         //
         //            $select->where([
         //                'ca.callcenter LIKE ?' => '%'.$option['username'].'%',
         //                'ca.mentor LIKE ?' => '%'.$option['username'].'%'
         //            ],Predicate::OP_AND);
     }
     if ($option['role'] == User::ROLE_MENTOR) {
         $select->where(['ca.mentor IS NOT NULL', 'ca.callcenter IS NULL']);
     }
     if ($option['role'] == User::ROLE_CALLCENTER) {
         $select->where(['ca.callcenter IS NOT NULL', 'ca.mentor IS NULL']);
     }
     $select->group(['endedDate', 'callcenter', 'mentor']);
     if (isset($option['sort']) && $option['sort']) {
         $sort = $option['sort'];
         $select->order([$sort['sort'] . ' ' . $sort['dir']]);
     } else {
         $select->order(['endedDate DESC']);
     }
     $query = $this->getDbSql()->buildSqlString($select);
     $rows = $this->getDbAdapter()->query($query, Adapter::QUERY_MODE_EXECUTE);
     $result = [];
     $data = [];
     $usernames = [];
     $users = [];
     if (count($rows)) {
         foreach ($rows as $row) {
             if ($row['callcenter'] != null) {
                 $usernames[] = $row['callcenter'];
             }
             if ($row['mentor'] != null) {
                 $usernames[] = $row['mentor'];
             }
             $data[] = $row;
         }
         $select1 = $this->getDbSql()->select(['u' => UserMapper::TABLE_NAME]);
         $select1->where(['u.username' => $usernames]);
         $query1 = $this->getDbSql()->buildSqlString($select1);
         $rows1 = $this->getDbAdapter()->query($query1, Adapter::QUERY_MODE_EXECUTE);
         if (count($rows1)) {
             foreach ($rows1 as $r) {
                 $u = new User();
                 $u->exchangeArray((array) $r);
                 $users[$u->getUsername()] = $u;
             }
         }
         $checkDate = '';
         foreach ($data as $row) {
             $timediff = '';
             if ($row['endedDate'] != $checkDate) {
                 $checkDate = $row['endedDate'];
                 $createdDatetime = new \DateTime($row['createdDateTime']);
                 $endDatetime = new \DateTime($row['endedDateTime']);
                 $timediff = date_diff($createdDatetime, $endDatetime)->format('%i');
             } else {
                 $createdDatetime = new \DateTime($row['createdDateTime']);
                 $endDatetime = new \DateTime($row['endedDateTime']);
                 $timediff += date_diff($createdDatetime, $endDatetime)->format('%i');
             }
             $result[$row['endedDate']][] = ['rating' => $row['rating'], 'count' => $row['count'], 'user' => $row['callcenter'] ? $users[$row['callcenter']] : $users[$row['mentor']], 'time' => $row['time']];
         }
     }
     return $result;
 }