private void doLogin( HttpServletRequest request, HttpServletResponse response, final long uid, final long tpId, RunType runType, boolean persistent) throws PassportAccountException { Passport passport = passportMapper.selectByPrimaryKey(uid); if (null == passport) { log.error("Login error. Can not find passport[id=" + uid + "]."); } Date shield = passport.getShieldTime(); if (shield != null && shield.getTime() > System.currentTimeMillis()) { throw new PassportAccountException(PassportAccountException.USER_IS_SHIELD, shield.getTime()); } loginSessionManager.login(request, response, uid, tpId, false, persistent); // 更新最后登录时间 updateLastLoginTime(uid, runType); // updateOnlineState(uid); addLoginLog(request, uid); // 启动一个线程来获取和保存 if (tpId > 0) { taskExecutor.execute( new Runnable() { @Override public void run() { // friendService.updateExpiredFriends(uid, tpId); userStatusService.updateUserStatus(uid, tpId); } }); } }
@Override public void logout(HttpServletRequest request, HttpServletResponse response, long uid) { loginSessionManager.logout(request, response); try { memcachedClient.delete(MemcachedKeyGenerator.genUserOnlineKey(uid)); } catch (Exception e) { log.error(e.getMessage(), e); } }
@Override public void cmsLogin( HttpServletRequest request, HttpServletResponse response, final long uid, final long tpId) { loginSessionManager.login(request, response, uid, tpId, true, false); }