| | |
| | | |
| | | 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); |
| | |
| | | |
| | | 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)); |