diff --git a/accompany-oauth2/accompany-oauth2-service/src/main/java/com/accompany/oauth2/service/MyUserDetailsServiceImpl.java b/accompany-oauth2/accompany-oauth2-service/src/main/java/com/accompany/oauth2/service/MyUserDetailsServiceImpl.java index cb68c2556..9274df794 100644 --- a/accompany-oauth2/accompany-oauth2-service/src/main/java/com/accompany/oauth2/service/MyUserDetailsServiceImpl.java +++ b/accompany-oauth2/accompany-oauth2-service/src/main/java/com/accompany/oauth2/service/MyUserDetailsServiceImpl.java @@ -82,6 +82,20 @@ public class MyUserDetailsServiceImpl implements MyUserDetailsService { @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { + Account account = null; + if (CommonUtil.checkValidPhone(username)) { + account = accountService.getAccountByPhone(username); + } else if (CommonUtil.checkNumberOnly(username)) { + account = accountService.getAccountByErBanNo(Long.valueOf(username)); + } + if (account == null) { + throw new CustomOAuth2Exception(CustomOAuth2Exception.USER_NOT_EXISTED, + BusiStatus.USER_NOT_EXISTED.getReasonPhrase()); + } + return new AccountDetails(account); + } + + public UserDetails loadUserByUsernameWithPrettyNo(String username) throws UsernameNotFoundException { Account account = null; if (CommonUtil.checkValidPhone(username)) { account = accountService.getAccountByPhone(username); @@ -90,7 +104,7 @@ public class MyUserDetailsServiceImpl implements MyUserDetailsService { //检查是否绑定了靓号 if (null == account){ LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery() - .eq(PrettyNumberRecord::getPrettyNo, Long.parseLong(username)) + .eq(PrettyNumberRecord::getCurrentErbanNo, Long.parseLong(username)) .orderByDesc(PrettyNumberRecord::getId) .last("limit 1"); PrettyNumberRecord prettyNumberRecord = prettyNumberRecordMapper.selectOne(queryWrapper); @@ -233,7 +247,7 @@ public class MyUserDetailsServiceImpl implements MyUserDetailsService { return Boolean.FALSE; } OAuth2Authentication authentication = tokenStore.readAuthentication(accessToken); - UserDetails userDetails = loadUserByUsername(authentication.getName()); + UserDetails userDetails = loadUserByUsernameWithPrettyNo(authentication.getName()); AccountDetails accountDetails = userDetails instanceof AccountDetails ? (AccountDetails) userDetails : null; if (accountDetails == null) { return Boolean.FALSE;