Exemple #1
0
 /**
  * 初始话当前用户
  */
 protected function _initUser()
 {
     $_cOnlinetime = Wekit::C('site', 'onlinetime') * 60;
     if (!($lastvisit = Pw::getCookie('lastvisit'))) {
         $this->onlinetime = 0;
         $this->lastvisit = WEKIT_TIMESTAMP;
         $this->lastRequestUri = '';
     } else {
         list($this->onlinetime, $this->lastvisit, $this->lastRequestUri) = explode("\t", $lastvisit);
         ($onlinetime = WEKIT_TIMESTAMP - $this->lastvisit) < $_cOnlinetime && ($this->onlinetime += $onlinetime);
     }
     $user = $this->getLoginUser();
     if ($user->isExists() && WEKIT_TIMESTAMP - $user->info['lastvisit'] > min(1800, $_cOnlinetime)) {
         Wind::import('SRV:user.dm.PwUserInfoDm');
         $dm = new PwUserInfoDm($user->uid);
         $dm->setLastvisit(WEKIT_TIMESTAMP)->setLastActiveTime(WEKIT_TIMESTAMP);
         if ($this->onlinetime > 0) {
             $dm->addOnline($this->onlinetime > $_cOnlinetime * 1.2 ? $_cOnlinetime : $this->onlinetime);
         }
         Wekit::load('user.PwUser')->editUser($dm, PwUser::FETCH_DATA);
         $this->onlinetime = 0;
     }
     Pw::setCookie('lastvisit', $this->onlinetime . "\t" . WEKIT_TIMESTAMP . "\t" . $this->requestUri, 31536000);
 }
Exemple #2
0
 /**
  * 初始话当前用户
  */
 protected function _initUser()
 {
     $requestUri = Wind::getComponent('request')->getRequestUri();
     $_cOnlinetime = Wekit::C('site', 'onlinetime') * 60;
     if (!($lastvisit = Pw::getCookie('lastvisit'))) {
         $onlinetime = 0;
         $lastvisit = WEKIT_TIMESTAMP;
         $lastRequestUri = '';
     } else {
         list($onlinetime, $lastvisit, $lastRequestUri) = explode("\t", $lastvisit);
         ($thistime = WEKIT_TIMESTAMP - $lastvisit) < $_cOnlinetime && ($onlinetime += $thistime);
     }
     $user = $this->getLoginUser();
     if ($user->isExists()) {
         $today = Pw::str2time(Pw::time2str(Pw::getTime(), 'Y-m-d'));
         if ($user->info['lastvisit'] && $today > $user->info['lastvisit']) {
             /* @var $loginSrv PwLoginService */
             $loginSrv = Wekit::load('SRV:user.srv.PwLoginService');
             $loginSrv->welcome($user, Wind::getComponent('request')->getClientIp());
         } elseif (WEKIT_TIMESTAMP - $user->info['lastvisit'] > min(1800, $_cOnlinetime)) {
             Wind::import('SRV:user.dm.PwUserInfoDm');
             $dm = new PwUserInfoDm($user->uid);
             $dm->setLastvisit(WEKIT_TIMESTAMP)->setLastActiveTime(WEKIT_TIMESTAMP);
             if ($onlinetime > 0) {
                 $dm->addOnline($onlinetime > $_cOnlinetime * 1.2 ? $_cOnlinetime : $onlinetime);
             }
             Wekit::load('user.PwUser')->editUser($dm, PwUser::FETCH_DATA);
             $onlinetime = 0;
         }
     }
     Pw::setCookie('lastvisit', $onlinetime . "\t" . WEKIT_TIMESTAMP . "\t" . $requestUri, 31536000);
     $obj = new stdClass();
     $obj->lastvisit = $lastvisit;
     $obj->requestUri = $requestUri;
     $obj->lastRequestUri = $lastRequestUri;
     Wekit::setV('lastvist', $obj);
 }