| | |
| | | user.setUsername(phone); |
| | | user.setNickName("OYING-" + phone); |
| | | user.setUserType(ConstantsKey.BUYER); |
| | | user.setPhone(phone); |
| | | user.setGender("男"); |
| | | user.setEnabled(true); |
| | | getRole(user); |
| | | user.setPassword(passwordEncoder.encode(phone.substring(phone.length() - 6))); |
| | |
| | | Set<Role> roles = new HashSet<>(); |
| | | Role role = new Role(); |
| | | DictDetail detail = dictDetailService.getDictByName(ConstantsKey.USER_TYPE_BUYER).get(0); |
| | | role.setId(Long.valueOf(detail.getLabel())); |
| | | role.setId(Long.valueOf(detail.getValue())); |
| | | roles.add(role); |
| | | user1.setRoles(roles); |
| | | } |
| | | |
| | | @Log("骑手小程序:微信授权登录") |
| | | @ApiOperation("骑手小程序:微信授权登录") |
| | | @AnonymousPostMapping(value = "/rider/login/weixin") |
| | | public ResponseEntity<Object> riderLoginWeixin(@Validated @RequestBody AuthUserWeixinDto authUser, HttpServletRequest request) throws Exception { |
| | | JSONObject jsonObject; |
| | | switch (authUser.getType()) { |
| | | case OLD: |
| | | jsonObject = weiXinService.code2SessionRider(authUser.getCode()); |
| | | String openid = jsonObject.getString("openid"); |
| | | User userDto = userService.findByRiderOpenId(openid); |
| | | if (userDto == null) { |
| | | return ResponseEntity.ok(R.success(openid)); |
| | | } |
| | | authUser.setUsername(userDto.getUsername()); |
| | | break; |
| | | case NEW: |
| | | jsonObject = weiXinService.getPhoneNumber(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.setPhone(phone); |
| | | user.setGender("男"); |
| | | user.setEnabled(true); |
| | | getRole(user); |
| | | user.setPassword(passwordEncoder.encode(phone.substring(phone.length() - 6))); |
| | | user.setOpenid(authUser.getUsername()); |
| | | userService.create(user); |
| | | } else { |
| | | if (user1.getUserType().equals(ConstantsKey.RIDER)) { |
| | | if (user1.getRoles() == null) { |
| | | getRole(user1); |
| | | } |
| | | } |
| | | user1.setOpenid(authUser.getUsername()); |
| | | userService.update(user1); |
| | | } |
| | | authUser.setUsername(phone); |
| | | break; |
| | | default: |
| | | throw new BadRequestException("登录类型错误"); |
| | | |
| | | } |
| | | // 获取用户信息 |
| | | JwtUserDto jwtUser = userDetailsService.loadUserByUsername(authUser.getUsername()); |
| | | Authentication authentication = new UsernamePasswordAuthenticationToken(jwtUser, null, jwtUser.getAuthorities()); |
| | | SecurityContextHolder.getContext().setAuthentication(authentication); |
| | | // 生成令牌 |
| | | String token = tokenProvider.createToken(jwtUser); |
| | | // 返回 token 与 用户信息 |
| | | Map<String, Object> authInfo = new HashMap<String, Object>(2) {{ |
| | | put("token", properties.getTokenStartWith() + token); |
| | | put("user", jwtUser); |
| | | }}; |
| | | if (loginProperties.isSingleLogin()) { |
| | | // 踢掉之前已经登录的token |
| | | onlineUserService.kickOutForUsername(authUser.getUsername()); |
| | | } |
| | | // 保存在线信息 |
| | | onlineUserService.save(jwtUser, token, request); |
| | | // 返回登录信息 |
| | | return ResponseEntity.ok(R.success(authInfo)); |
| | | } |
| | | |
| | | @ApiOperation("临时授权") |
| | | @AnonymousGetMapping(value = "/token") |
| | | public ResponseEntity<Object> loginTest(@RequestParam String username, HttpServletRequest request) { |