Browse Source

已登录提示

master
han\hanst 3 months ago
parent
commit
3420d330cb
  1. 4
      src/main/java/com/gaotao/modules/sys/controller/SysLoginController.java
  2. 7
      src/main/java/com/gaotao/modules/sys/service/SysUserTokenService.java
  3. 25
      src/main/java/com/gaotao/modules/sys/service/impl/SysUserTokenServiceImpl.java

4
src/main/java/com/gaotao/modules/sys/controller/SysLoginController.java

@ -97,6 +97,7 @@ public class SysLoginController extends AbstractController {
if(user.getStatus() == 0){
return R.error(getLanguageMsg(SysMsgConstant.OBJECT_ID_200208));
}
// 域控账号允许多设备登录不需要检查重复登录
}else {
user = sysUserService.queryByUserName(form.getUsername());
//账号不存在密码错误
@ -109,6 +110,9 @@ public class SysLoginController extends AbstractController {
return R.error(getLanguageMsg(SysMsgConstant.OBJECT_ID_200208));
}
}
if(sysUserTokenService.isUserLoggedIn(user.getUserId())){
return R.error("用户已经登录,请先退出后再登录");
}
session.setAttribute("user", user);
//生成token并保存到数据库

7
src/main/java/com/gaotao/modules/sys/service/SysUserTokenService.java

@ -25,4 +25,11 @@ public interface SysUserTokenService extends IService<SysUserTokenEntity> {
*/
void logout(long userId);
/**
* 检查用户是否已登录token是否有效
* @param userId 用户ID
* @return true-已登录false-未登录
*/
boolean isUserLoggedIn(long userId);
}

25
src/main/java/com/gaotao/modules/sys/service/impl/SysUserTokenServiceImpl.java

@ -57,13 +57,24 @@ public class SysUserTokenServiceImpl extends ServiceImpl<SysUserTokenDao, SysUse
@Override
public void logout(long userId) {
//生成一个token
String token = TokenGenerator.generateValue();
//删除token记录
this.removeById(userId);
}
@Override
public boolean isUserLoggedIn(long userId) {
//根据用户ID查询token
SysUserTokenEntity tokenEntity = this.getById(userId);
if(tokenEntity == null){
return false;
}
//检查token是否过期
Date now = new Date();
if(tokenEntity.getExpireTime() == null || tokenEntity.getExpireTime().before(now)){
return false;
}
//修改token
SysUserTokenEntity tokenEntity = new SysUserTokenEntity();
tokenEntity.setUserId(userId);
tokenEntity.setToken(token);
this.updateById(tokenEntity);
return true;
}
}
Loading…
Cancel
Save