From 280ef5100bece9b40ac51736aef037704a52a4ca Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 30 七月 2026 14:58:52 +0800
Subject: [PATCH] update

---
 backend/src/main/java/com/tourguide/modules/user/service/AuthService.java |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/backend/src/main/java/com/tourguide/modules/user/service/AuthService.java b/backend/src/main/java/com/tourguide/modules/user/service/AuthService.java
index 5a2b326..5c4af68 100644
--- a/backend/src/main/java/com/tourguide/modules/user/service/AuthService.java
+++ b/backend/src/main/java/com/tourguide/modules/user/service/AuthService.java
@@ -95,7 +95,7 @@
 
     public AuthResponse<GuideUserResponse> loginGuide(LoginRequest request) {
         GuideUser user = guideUserService.findByUsername(request.getUsername());
-        if (user == null || user.getStatus() == null || user.getStatus() != 1 || !passwordEncoder.matches(request.getPassword(), user.getPassword())) {
+        if (!isGuideLoginable(user) || !passwordEncoder.matches(request.getPassword(), user.getPassword())) {
             throw new BusinessException(401, "用户名或密码错误");
         }
         return issueGuideToken(user);
@@ -111,12 +111,19 @@
 
     private GuideUser findLoginableGuideByPhone(String phone) {
         GuideUser user = guideUserService.findByPhone(phone);
-        if (user == null || user.getStatus() == null || user.getStatus() != 1) {
+        if (!isGuideLoginable(user)) {
             throw new BusinessException(401, "手机号未注册或账号已停用");
         }
         return user;
     }
 
+    private boolean isGuideLoginable(GuideUser user) {
+        return user != null
+                && user.getStatus() != null
+                && (user.getStatus() == GuideUserService.STATUS_ENABLED
+                || user.getStatus() == GuideUserService.STATUS_PENDING);
+    }
+
     private AuthResponse<GuideUserResponse> issueGuideToken(GuideUser user) {
         String token = issueToken(user.getId(), user.getUsername(), UserRole.GUIDE_USER.name(), ClientType.GUIDE);
         return new AuthResponse<GuideUserResponse>(token, jwtTokenService.getExpirationSeconds(), GuideUserResponse.from(user));

--
Gitblit v1.7.1