| | |
| | | } |
| | | |
| | | /** |
| | | * 创建或更新用户记录 |
| | | * 创建或更新用户记录(仅在小程序报名成功时创建新用户) |
| | | */ |
| | | private User createOrUpdateUser(ActivityRegistrationInput input) { |
| | | try { |
| | | // 使用UserService的findOrCreateUserByPhone方法 |
| | | User user = userService.findOrCreateUserByPhone( |
| | | input.getPlayerInfo().getPhone(), |
| | | input.getPlayerInfo().getName(), |
| | | null // 不设置密码,使用默认密码 |
| | | ); |
| | | String phone = input.getPlayerInfo().getPhone(); |
| | | String name = input.getPlayerInfo().getName(); |
| | | |
| | | // 更新用户的生日信息 |
| | | if (input.getPlayerInfo().getBirthDate() != null) { |
| | | user.setBirthday(input.getPlayerInfo().getBirthDate()); |
| | | // 先查找现有用户 |
| | | Optional<User> existingUserOpt = userService.findByPhone(phone); |
| | | |
| | | if (existingUserOpt.isPresent()) { |
| | | // 用户存在,更新信息 |
| | | User user = existingUserOpt.get(); |
| | | user.setName(name); |
| | | |
| | | // 更新用户的生日信息 |
| | | if (input.getPlayerInfo().getBirthDate() != null) { |
| | | user.setBirthday(input.getPlayerInfo().getBirthDate()); |
| | | } |
| | | |
| | | user = userService.save(user); |
| | | log.info("更新用户生日信息成功,用户ID: {}", user.getId()); |
| | | log.info("更新现有用户信息成功,用户ID: {}", user.getId()); |
| | | return user; |
| | | } else { |
| | | // 用户不存在,创建新用户(仅在小程序报名成功时) |
| | | log.info("用户不存在,为小程序报名成功创建新用户,手机号: {}", phone); |
| | | |
| | | User newUser = new User(); |
| | | newUser.setName(name); |
| | | newUser.setPhone(phone); |
| | | newUser.setPassword(userService.getPasswordEncoder().encode("123456")); // 默认密码 |
| | | |
| | | // 设置生日信息 |
| | | if (input.getPlayerInfo().getBirthDate() != null) { |
| | | newUser.setBirthday(input.getPlayerInfo().getBirthDate()); |
| | | } |
| | | |
| | | newUser = userService.save(newUser); |
| | | log.info("为小程序报名成功创建新用户,用户ID: {}", newUser.getId()); |
| | | return newUser; |
| | | } |
| | | |
| | | return user; |
| | | } catch (Exception e) { |
| | | log.error("创建或更新用户记录时发生错误", e); |
| | | throw new RuntimeException("创建或更新用户记录失败", e); |