From 628a56cdfa310acf4efd4d7e85d58639546dcd04 Mon Sep 17 00:00:00 2001 From: smile <1372184840@qq.com> Date: Thu, 4 Sep 2025 17:34:08 +0800 Subject: [PATCH] refactor(user): update user-related code - Remove permission check for logout endpoint - Optimize login logic --- .../user/controller/UserController.java | 2 +- .../web/system/user/service/LoginService.java | 19 ++++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/cloud/web/web-system-8081/src/main/java/com/bgasol/web/system/user/controller/UserController.java b/cloud/web/web-system-8081/src/main/java/com/bgasol/web/system/user/controller/UserController.java index 43d7dc2..a858256 100644 --- a/cloud/web/web-system-8081/src/main/java/com/bgasol/web/system/user/controller/UserController.java +++ b/cloud/web/web-system-8081/src/main/java/com/bgasol/web/system/user/controller/UserController.java @@ -51,7 +51,7 @@ public class UserController extends BaseController< @PostMapping("/logout") @Operation(summary = "用户登出", operationId = "logout") - @SaCheckPermission({"user:logout"}) +// @SaCheckPermission({"user:logout"}) public BaseVo logout() { this.loginService.logout(); return BaseVo.success("登出成功"); diff --git a/cloud/web/web-system-8081/src/main/java/com/bgasol/web/system/user/service/LoginService.java b/cloud/web/web-system-8081/src/main/java/com/bgasol/web/system/user/service/LoginService.java index 26b7ed5..3d145f9 100644 --- a/cloud/web/web-system-8081/src/main/java/com/bgasol/web/system/user/service/LoginService.java +++ b/cloud/web/web-system-8081/src/main/java/com/bgasol/web/system/user/service/LoginService.java @@ -13,6 +13,7 @@ import com.bgasol.web.system.user.mapper.UserMapper; import com.pig4cloud.captcha.ArithmeticCaptcha; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -21,6 +22,8 @@ import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.UUID; +import static com.bgasol.common.constant.value.SystemConfigValues.ADMIN_USER_ID; + @Service @RequiredArgsConstructor @Transactional @@ -81,9 +84,19 @@ public class LoginService { log.error("密码错误"); throw new BaseException("用户名或密码错误"); } - if (userEntity.getLocked()) { - log.error("用户已锁定"); - throw new BaseException("用户已锁定"); + + if (!ADMIN_USER_ID.equals(userEntity.getId())) { + userEntity = this.userService.findById(userEntity.getId()); + if (userEntity.getLocked()) { + log.error("用户已锁定"); + throw new BaseException("用户已锁定"); + } + if (ObjectUtils.isEmpty(userEntity.getRoles())) { + throw new BaseException("用户未绑定角色,无法登录"); + } + if (ObjectUtils.isEmpty(userEntity.getDepartment())) { + throw new BaseException("用户未绑定部门,无法登录"); + } } StpUtil.login(userEntity.getId()); return StpUtil.getTokenInfo();