| | |
| | | |
| | | import cn.hutool.core.util.IdUtil; |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.oying.modules.rider.domain.RiderInfo; |
| | | import com.oying.modules.rider.service.RiderInfoService; |
| | | import com.oying.modules.security.config.CaptchaConfig; |
| | | import com.oying.modules.security.config.LoginProperties; |
| | | import com.oying.modules.security.config.SecurityProperties; |
| | |
| | | private final WeiXinService weiXinService; |
| | | private final UserService userService; |
| | | private final DictDetailService dictDetailService; |
| | | private final RiderInfoService riderInfoService; |
| | | |
| | | @Log("账号密码登录") |
| | | @ApiOperation("账号密码登录") |
| | |
| | | authUser.setUsername(userDto.getUsername()); |
| | | break; |
| | | case NEW: |
| | | jsonObject = weiXinService.getPhoneNumber(authUser.getCode()); |
| | | jsonObject = weiXinService.getRiderPhoneNumber(authUser.getCode()); |
| | | String phone = jsonObject.getJSONObject("phone_info").getString("purePhoneNumber"); |
| | | User user1 = userService.findByName(phone); |
| | | if (user1 == null) { |
| | |
| | | User user = new User(); |
| | | user.setUsername(phone); |
| | | user.setNickName("OYING-" + phone); |
| | | user.setUserType(ConstantsKey.RIDER); |
| | | user.setUserType(ConstantsKey.BUYER); |
| | | user.setPhone(phone); |
| | | user.setGender("男"); |
| | | user.setEnabled(true); |
| | | getRole(user); |
| | | user.setPassword(passwordEncoder.encode(phone.substring(phone.length() - 6))); |
| | | user.setOpenid(authUser.getUsername()); |
| | | user.setRiderOpenId(authUser.getUsername()); |
| | | userService.create(user); |
| | | } else { |
| | | if (user1.getUserType().equals(ConstantsKey.RIDER)) { |
| | | if (user1.getUserType().equals(ConstantsKey.BUYER)) { |
| | | if (user1.getRoles() == null) { |
| | | getRole(user1); |
| | | } |
| | | } |
| | | user1.setOpenid(authUser.getUsername()); |
| | | userService.update(user1); |
| | | user1.setRiderOpenId(authUser.getUsername()); |
| | | // userService.update(user1); |
| | | userService.updateRiderOpenId(user1); |
| | | } |
| | | authUser.setUsername(phone); |
| | | break; |
| | |
| | | } |
| | | // 获取用户信息 |
| | | JwtUserDto jwtUser = userDetailsService.loadUserByUsername(authUser.getUsername()); |
| | | // 查询骑手信息 |
| | | RiderInfo riderInfo = riderInfoService.getRiderSourceInfo(jwtUser.getUser().getId()); |
| | | Authentication authentication = new UsernamePasswordAuthenticationToken(jwtUser, null, jwtUser.getAuthorities()); |
| | | SecurityContextHolder.getContext().setAuthentication(authentication); |
| | | // 生成令牌 |
| | |
| | | Map<String, Object> authInfo = new HashMap<String, Object>(2) {{ |
| | | put("token", properties.getTokenStartWith() + token); |
| | | put("user", jwtUser); |
| | | put("rider", riderInfo); |
| | | }}; |
| | | if (loginProperties.isSingleLogin()) { |
| | | // 踢掉之前已经登录的token |