public function revertleaduserAction()
 {
     $dbSql = $this->getServiceLocator()->get('dbSql');
     $dbAdapter = $this->getServiceLocator()->get('dbAdapter');
     $select = $dbSql->select(['lc' => \Crm\Model\Lead\CompanyMapper::TABLE_NAME]);
     $select->join(['a' => \Crm\Model\ActivityMapper::TABLE_NAME], new Expression('a.companyId=lc.companyId AND a.leadId=lc.leadId'), ['relatedUserId', 'a.createdDateTime' => 'createdDateTime']);
     //$select->where(['lc.accountId IS NOT NULL']);
     $select->where(['a.type' => \Crm\Model\Activity::TYPE_AUTO_FREE]);
     $select->where(['a.createdDate' => '2015-05-29']);
     $select->order(['a.id DESC']);
     $paginatorAdapter = new \Zend\Paginator\Adapter\DbSelect($select, $dbAdapter);
     $paginator = new \Zend\Paginator\Paginator($paginatorAdapter);
     $paginator->setItemCountPerPage(300);
     $page = $this->getRequest()->getQuery('page', 1);
     $paginator->setCurrentPageNumber($page);
     $leadUserMapper = $this->getServiceLocator()->get('\\Crm\\Model\\Lead\\UserMapper');
     $leadCompanyMapper = $this->getServiceLocator()->get('\\Crm\\Model\\Lead\\CompanyMapper');
     $currentDateTime = DateBase::getCurrentDateTime();
     $totalUser = $this->getRequest()->getQuery('totalUser') ?: 0;
     // Xóa các người dùng dc gắn sau thời điểm lỗi
     $result = [];
     foreach ($paginator as $row) {
         $row = (array) $row;
         $leadCompany = new \Crm\Model\Lead\Company($row);
         $delete = $dbSql->delete(\Crm\Model\Lead\UserMapper::TABLE_NAME);
         $delete->where(['createdDateTime > ?' => $row['a.createdDateTime']]);
         $delete->where(['companyId' => $leadCompany->getCompanyId()]);
         $delete->where(['leadId' => $leadCompany->getLeadId()]);
         $query = $dbSql->buildSqlString($delete);
         $dbAdapter->query($query, $dbAdapter::QUERY_MODE_EXECUTE);
         $result[] = $row;
     }
     foreach ($result as $row) {
         $leadCompany = new \Crm\Model\Lead\Company($row);
         $totalUser++;
         //update laij last activities về trước khi xóa
         $select = $dbSql->select(['a' => \Crm\Model\ActivityMapper::TABLE_NAME]);
         $select->where(['companyId' => $leadCompany->getCompanyId()]);
         $select->where(['leadId' => $leadCompany->getLeadId()]);
         $select->where(['createdDateTime < ?' => $row['a.createdDateTime']]);
         $select->order(['a.createdDateTime DESC']);
         $select->limit(1);
         $query = $dbSql->buildSqlString($select);
         $row2 = $dbAdapter->query($query, $dbAdapter::QUERY_MODE_EXECUTE);
         if ($row2->count()) {
             $row2 = (array) $row2->current();
             $leadCompanyMapper->updateColumns(['status' => \Crm\Model\Lead\Company::STATUS_BELONG, 'lastActivityDateTime' => $row2['createdDateTime']], $leadCompany);
         }
         // set lại user như trước khi xóa
         $leadUser = new \Crm\Model\Lead\User();
         $leadUser->setLeadId($leadCompany->getLeadId());
         $leadUser->setAccountId($leadCompany->getAccountId());
         $leadUser->setCompanyId($leadCompany->getCompanyId());
         $leadUser->setType(\Crm\Model\Lead\User::TYPE_SALE);
         $leadUser->setUserId($row['relatedUserId']);
         if (!$leadUserMapper->isExisted($leadUser)) {
             $leadUser->setCreatedById(1);
             $leadUser->setCreatedDateTime('2015-05-29 14:00:00');
             $leadUserMapper->save($leadUser);
         }
     }
     $this->getViewModel()->setTerminal(true);
     $this->getViewModel()->setVariable('page', $page);
     $this->getViewModel()->setVariable('totalPages', $paginator->count() + 1);
     if ($page <= $paginator->count()) {
         $this->getViewModel()->setVariable('redirectUri', '/system/tool/revertleaduser?page=' . ($page + 1) . '&totalUser='******'totalUser', $totalUser);
     return $this->getViewModel();
 }