| | |
| | | @Override |
| | | public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException |
| | | { |
| | | SysUser user = userService.selectUserByUserName(username); |
| | | |
| | | // 尝试判断是手机号、openId还是用户名 |
| | | SysUser user = null; |
| | | //qywechat__ |
| | | if (username.startsWith("qywechat__")) |
| | | { |
| | | //企业微信登录 |
| | | //qywechat__qyUserId |
| | | String qyUserId =StringUtils.substringAfter(username, "qywechat__"); |
| | | user = userService.selectUserByQyWechatUserId(qyUserId); |
| | | } |
| | | // 判断是否为微信OpenID(通常以"o"开头,28位字符) |
| | | else if (username.startsWith("o") && username.length() == 28) |
| | | { |
| | | // 微信OpenID登录 |
| | | log.info("尝试使用微信OpenID登录:{}", username); |
| | | user = userService.selectUserByOpenId(username); |
| | | } |
| | | // 判断是否为手机号(简单判断:全是数字且11位) |
| | | else if (username.matches("^1[3-9]\\d{9}$")) |
| | | { |
| | | // 手机号登录 |
| | | log.info("尝试使用手机号登录:{}", username); |
| | | user = userService.selectUserByPhonenumber(username); |
| | | } |
| | | else |
| | | { |
| | | // 用户名登录 |
| | | log.info("尝试使用用户名登录:{}", username); |
| | | user = userService.selectUserByUserName(username); |
| | | } |
| | | |
| | | if (StringUtils.isNull(user)) |
| | | { |
| | | log.info("登录用户:{} 不存在.", username); |