diff --git a/src/main/java/com/gaotao/modules/sys/controller/SysLoginController.java b/src/main/java/com/gaotao/modules/sys/controller/SysLoginController.java index 5ac6966..af08550 100644 --- a/src/main/java/com/gaotao/modules/sys/controller/SysLoginController.java +++ b/src/main/java/com/gaotao/modules/sys/controller/SysLoginController.java @@ -1,4 +1,4 @@ - + package com.gaotao.modules.sys.controller; @@ -32,7 +32,7 @@ import java.util.Map; /** * 登录相关 * - * + * */ @RestController public class SysLoginController extends AbstractController { @@ -42,7 +42,7 @@ public class SysLoginController extends AbstractController { private SysUserTokenService sysUserTokenService; @Autowired private SysCaptchaService sysCaptchaService; - + // 域控接口控制 @Value("${ldap-control.control-flag:false}") private Boolean ldapFlag; @@ -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,并保存到数据库 @@ -126,5 +130,5 @@ public class SysLoginController extends AbstractController { sysUserTokenService.logout(getUserId()); return R.ok(getLanguageMsg(SysMsgConstant.OBJECT_ID_200000)); } - + } diff --git a/src/main/java/com/gaotao/modules/sys/service/SysUserTokenService.java b/src/main/java/com/gaotao/modules/sys/service/SysUserTokenService.java index 9fca107..3799cf8 100644 --- a/src/main/java/com/gaotao/modules/sys/service/SysUserTokenService.java +++ b/src/main/java/com/gaotao/modules/sys/service/SysUserTokenService.java @@ -25,4 +25,11 @@ public interface SysUserTokenService extends IService { */ void logout(long userId); + /** + * 检查用户是否已登录(token是否有效) + * @param userId 用户ID + * @return true-已登录,false-未登录 + */ + boolean isUserLoggedIn(long userId); + } diff --git a/src/main/java/com/gaotao/modules/sys/service/impl/SysUserTokenServiceImpl.java b/src/main/java/com/gaotao/modules/sys/service/impl/SysUserTokenServiceImpl.java index 6392ee0..c9165c1 100644 --- a/src/main/java/com/gaotao/modules/sys/service/impl/SysUserTokenServiceImpl.java +++ b/src/main/java/com/gaotao/modules/sys/service/impl/SysUserTokenServiceImpl.java @@ -57,13 +57,24 @@ public class SysUserTokenServiceImpl extends ServiceImpl