|
@@ -474,15 +474,25 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUser> impleme
|
|
|
SysUserInfo sysUserInfo = sysUserInfoDao.selectOne(queryWrapper);
|
|
|
|
|
|
if (sysUserInfo != null) {
|
|
|
- // 删除旧的登录缓存
|
|
|
- tokenUtil.deleteRedisLoginToken(sysUserInfo.getLast_login_uuid());
|
|
|
- // 更新用户信息 (查询最后登录uuid,并清除)
|
|
|
- Wrapper updateWrapper = new UpdateWrapper<SysUserInfo>().lambda().set(SysUserInfo::getLast_login_uuid, "").eq(SysUserInfo::getUser_id, user_id);
|
|
|
- sysUserInfoDao.update(null, updateWrapper);
|
|
|
|
|
|
- // [SSE] 发送退出登录的消息
|
|
|
- String dataStr = (new SseResponse(SseResponseEnum.LOGOUT)).toJsonStr();
|
|
|
- sseUtil.send(sysUserInfo.getUser_id(), dataStr);
|
|
|
+ // 判断 Token 是否存在
|
|
|
+ String uuid = sysUserInfo.getLast_login_uuid();
|
|
|
+ String tokenRedisKey = REDIS_LOGIN_TOKEN_PREFIX + uuid;
|
|
|
+ System.out.println("tokenRedisKey = " + tokenRedisKey);
|
|
|
+ Object isExist = redisUtil.getCacheObject(tokenRedisKey);
|
|
|
+
|
|
|
+ if (isExist != null) {
|
|
|
+ // 删除旧的登录缓存
|
|
|
+ tokenUtil.deleteRedisLoginToken(uuid);
|
|
|
+ // 更新用户信息 (查询最后登录uuid,并清除)
|
|
|
+ Wrapper updateWrapper = new UpdateWrapper<SysUserInfo>().lambda().set(SysUserInfo::getLast_login_uuid, "").eq(SysUserInfo::getUser_id, user_id);
|
|
|
+ sysUserInfoDao.update(null, updateWrapper);
|
|
|
+
|
|
|
+ // [SSE] 发送退出登录的消息
|
|
|
+ String dataStr = (new SseResponse(SseResponseEnum.LOGOUT)).toJsonStr();
|
|
|
+ sseUtil.send(sysUserInfo.getUser_id(), dataStr);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
return Map.of("user_id", user_id);
|