public function update(App_Account_LoginSessionDm $dm)
 {
     if (true !== ($r = $dm->beforeUpdate())) {
         return $r;
     }
     App_Account_LoginSessionBo::unsetInstance($dm->getSessionId());
     //todo
     return $this->_loadDao()->update($dm->getSessionId(), $dm->getData());
 }
 /**
  * 更新过期时间
  * @param unknown_type $sessionId
  * @return boolean
  */
 public function updateExpire($sessionId)
 {
     if (rand(1, 2) == 1) {
         $expire = $this->_getLoginSessionService()->getCooieExpire() + Pw::getTime();
         $dm = new App_Account_LoginSessionDm($sessionId);
         $dm->setExpire($expire);
         $this->_getLoginSessionDs()->update($dm);
         $this->sessionInfo['expire'] = intval($expire);
     }
     return true;
 }
 public function updateLoginSession($sessionId, $sessionData)
 {
     if ('' == $sessionId) {
         return false;
     }
     $this->_collectLoginSessionGarbage();
     $sessionInfo = App_Account_LoginSessionBo::getInstance($sessionId)->getSession();
     $sessionInfoOld = $sessionInfo;
     $sessionInfo['sessiondata'] = is_array($sessionInfo['sessiondata']) ? $sessionInfo['sessiondata'] : array();
     $sessionData = is_array($sessionData) ? $sessionData : array();
     $sessionData = array_merge($sessionInfo['sessiondata'], $sessionData);
     if ($sessionInfoOld) {
         $dm = new App_Account_LoginSessionDm($sessionId);
         $dm->setSessionData(serialize($sessionData));
         return $this->_getLoginSessionDs()->update($dm);
     } else {
         $dm = new App_Account_LoginSessionDm();
         $dm->setSessionId($sessionId)->setExpire($this->cookieExpire + Pw::getTime())->setSessionData(serialize($sessionData));
         return $this->_getLoginSessionDs()->add($dm);
     }
 }