示例#1
0
 public function service()
 {
     $customer = $this->getCustomer();
     if ($customer) {
         $onlineUsersManager = new OnlineUsersManager($this->config, $this->args);
         $user = $this->getUser();
         $onlineUsersManager->removeOnlineUserByEmail($customer->getEmail());
         $this->sessionManager->removeUser($user, true);
     }
     $this->redirect();
 }
 /**
  * Returns an singleton instance of this class
  *
  * @param object $config
  * @param object $args
  * @return
  */
 public static function getInstance($config, $args)
 {
     if (self::$instance == null) {
         self::$instance = new OnlineUsersManager($config, $args);
     }
     return self::$instance;
 }
 public function addEventIntoEventsTableForOnlineCustomers($to_emails_array, $fromName, $subject)
 {
     $customerAlertsManager = CustomerAlertsManager::getInstance($this->config, $this->args);
     $onlineUsersManager = OnlineUsersManager::getInstance($this->config, $this->args);
     $customerLocalEmailsManager = CustomerLocalEmailsManager::getInstance($this->config, $this->args);
     $onlineRegisteredCustomers = $onlineUsersManager->getOnlineRegisteredCustomers();
     foreach ($onlineRegisteredCustomers as $onlineUsersDto) {
         $custEmail = $onlineUsersDto->getEmail();
         if (in_array($custEmail, $to_emails_array)) {
             $customerInboxUnreadEmailsCount = $customerLocalEmailsManager->getCustomerInboxUnreadEmailsCountCustomerEmail($custEmail);
             $customerAlertsManager->addNewEmailCustomerAlert($custEmail, $fromName, $subject, $customerInboxUnreadEmailsCount, $onlineUsersDto->getLanguageCode());
         }
     }
 }
示例#4
0
 public function service()
 {
     $onlineUserManager = new OnlineUsersManager($this->config, $this->args);
     $customer = $this->getCustomer();
     if ($this->getUserLevel() !== UserGroups::$GUEST) {
         //add to online users table
         $customerEmail = $customer->getEmail();
         $newAdded = $onlineUserManager->addOnlineUser($this->getUserLevel(), $customer) > 0;
         if ($newAdded) {
             $customerMessagesAfterLoginManager = CustomerMessagesAfterLoginManager::getInstance($this->config, $this->args);
             $customerAfterLoginMessagesDtos = $customerMessagesAfterLoginManager->getCustomerMessages($customer->getEmail());
             $customerMessagesAfterLoginManager->incrementCustomerMessagesShowedCount($customerAfterLoginMessagesDtos);
             $customerAfterLoginMessagesDtosToArray = AbstractDto::dtosToArray($customerAfterLoginMessagesDtos);
         }
         //check user alerts
         $winUid = $_REQUEST['win_uid'];
         $customerAlertListManager = CustomerAlertListManager::getInstance($this->config, $this->args);
         $registeredCustomerAlertsDtosToArray = $customerAlertListManager->getRegisteredCustomerAlerts($customer, $winUid);
         $customerAlertsManager = CustomerAlertsManager::getInstance($this->config, $this->args);
         $customerMessagesDtos = $customerAlertsManager->getCustomerAlertsByCustomerLogin($customerEmail, $winUid);
         $customerMessagesToPhpArray = AbstractDto::dtosToArray($customerMessagesDtos);
     } else {
         //add guest in online users table
         $guest_online_table_id = $_COOKIE['guest_online_table_id'];
         if ($guest_online_table_id) {
             $onlineUser = $onlineUserManager->selectByPK($guest_online_table_id);
             if (isset($onlineUser)) {
                 $onlineUserManager->updateOnlineUserAttributes($onlineUser);
             } else {
                 $newId = $onlineUserManager->addOnlineUser($this->getUserLevel(), null);
                 if (isset($newId)) {
                     $this->setcookie('guest_online_table_id', $newId);
                 }
             }
         } else {
             $newId = $onlineUserManager->addOnlineUser($this->getUserLevel(), null);
             if (isset($newId)) {
                 $this->setcookie('guest_online_table_id', $newId);
             }
         }
     }
     $jsonArr = array('status' => "ok");
     if (!empty($registeredCustomerAlertsDtosToArray)) {
         $jsonArr['alerts'] = $registeredCustomerAlertsDtosToArray;
     }
     if (!empty($customerAfterLoginMessagesDtosToArray)) {
         $jsonArr['customer_after_login_messages'] = $customerAfterLoginMessagesDtos;
     }
     if (!empty($customerMessagesToPhpArray)) {
         $jsonArr['messages'] = $customerMessagesToPhpArray;
     }
     echo json_encode($jsonArr);
     return true;
 }
 public function addEventIntoEventsTableForOnlineCustomers($company)
 {
     $customerAlertsManager = CustomerAlertsManager::getInstance($this->config, $this->args);
     $companyDealersManager = CompanyDealersManager::getInstance($this->config, $this->args);
     $onlineUsersManager = OnlineUsersManager::getInstance($this->config, $this->args);
     $userManager = UserManager::getInstance($this->config, $this->args);
     $onlineRegisteredCustomers = $onlineUsersManager->getOnlineRegisteredCustomers();
     foreach ($onlineRegisteredCustomers as $onlineUsersDto) {
         $customerType = $userManager->getCustomerTypeByEmail($onlineUsersDto->getEmail());
         if ($customerType === UserGroups::$USER) {
             $userCustomer = $userManager->getUserByEmail($onlineUsersDto->getEmail());
             $dealerDto = $companyDealersManager->getByCompanyIdAndUserId($userCustomer->getId(), $company->getId());
             if (isset($dealerDto)) {
                 $customerAlertsManager->addPriceUploadCustomerAlert($onlineUsersDto->getEmail(), $company, $onlineUsersDto->getLanguageCode());
             }
         } elseif ($customerType === UserGroups::$COMPANY || $customerType === UserGroups::$ADMIN) {
             $customerAlertsManager->addPriceUploadCustomerAlert($onlineUsersDto->getEmail(), $company);
         }
     }
 }
 private function getOnlineAdminsEmails()
 {
     $adminManager = AdminManager::getInstance(null, null);
     $adminsDtos = $adminManager->selectAll();
     $onlineUsersManager = OnlineUsersManager::getInstance(null, null);
     $ret = array();
     foreach ($adminsDtos as $adminDto) {
         $adminEmail = $adminDto->getEmail();
         $onlineAdminDto = $onlineUsersManager->selectByField('email', $adminEmail);
         if (!empty($onlineAdminDto)) {
             $ret[] = $adminEmail;
         }
     }
     return $ret;
 }
 public function load()
 {
     $onlineUsersManager = OnlineUsersManager::getInstance($this->config, $this->args);
     $ac = $onlineUsersManager->selectAll();
     $this->addParam('onlineusers', $ac);
 }
 public function service()
 {
     $onlineUsersManager = new OnlineUsersManager($this->config, $this->args);
     $onlineUsersManager->removeTimeOutedUsers(180);
     //3 minutes
 }
error_reporting(E_ALL ^ E_NOTICE);
ini_set('display_errors', true);
defined('__DIR__') or define('__DIR__', dirname(__FILE__));
$_dir = str_replace("/bin", "", __DIR__);
require_once $_dir . "/conf/constants.php";
require_once CLASSES_PATH . "/util/db/DBMSFactory.class.php";
require_once CLASSES_PATH . "/managers/OnlineUsersManager.class.php";
require_once CLASSES_PATH . "/managers/CustomerAlertsManager.class.php";
require_once CLASSES_PATH . "/managers/CompanyItemCheckListManager.class.php";
require_once CLASSES_PATH . "/managers/CmsSearchRequestsManager.class.php";
require_once CLASSES_PATH . "/managers/CbaRatesManager.class.php";
require_once CLASSES_PATH . "/managers/ReceiveEmailManager.class.php";
$config = parse_ini_file(CONF_PATH . "/config.ini");
DBMSFactory::init($config);
$onlineUsersManager = new OnlineUsersManager($config, null);
$onlineUsersManager->removeTimeOutedUsers(120);
//2 minutes
$customerAlertsManager = new CustomerAlertsManager($config, null);
$customerAlertsManager->removeOldAlerts(10);
//10 minute
$companyItemCheckListManager = new CompanyItemCheckListManager($config, null);
$companyItemCheckListManager->removeOldRowsBySeconds(120);
//2 minutes
$requestHistoryManager = new RequestHistoryManager($config, null);
$requestHistoryManager->removeOldRowsByDays(90);
// 90 days
$cmsSearchRequestsManager = new CmsSearchRequestsManager($config, null);
$cmsSearchRequestsManager->removeOldRowsByDays(90);
// 90 days
//chaching cba rates for all exchanges