1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| private static final String PHONE_REGEX = "^1[3-9]\\d{9}$";
@Override public ResponseResult updateUserInfo(User user) { Long currentUserId = SecurityUtils.getUserId(); if (currentUserId == null) { return ResponseResult.errorResult(AppHttpCodeEnum.NEED_LOGIN); }
if (!StringUtils.hasText(user.getNickname())) { return ResponseResult.errorResult(AppHttpCodeEnum.SYSTEM_ERROR, "昵称不能为空"); }
if (!StringUtils.hasText(user.getEmail()) && !StringUtils.hasText(user.getPhone())) { return ResponseResult.errorResult(AppHttpCodeEnum.SYSTEM_ERROR, "邮箱和电话号码不能同时为空"); }
if (StringUtils.hasText(user.getPhone()) && !user.getPhone().matches(PHONE_REGEX)) { return ResponseResult.errorResult(AppHttpCodeEnum.SYSTEM_ERROR, "请输入正确的手机号码"); }
if (StringUtils.hasText(user.getPhone())) { LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(User::getPhone, user.getPhone()) .ne(User::getId, currentUserId); User existUser = getOne(queryWrapper); if (existUser != null) { return ResponseResult.errorResult(AppHttpCodeEnum.SYSTEM_ERROR, "你用别人的电话号码干嘛?"); } }
if (StringUtils.hasText(user.getEmail())) { LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(User::getEmail, user.getEmail()) .ne(User::getId, currentUserId); User existUser = getOne(queryWrapper); if (existUser != null) { return ResponseResult.errorResult(AppHttpCodeEnum.SYSTEM_ERROR, "你用别人的邮箱干嘛?"); } }
LambdaUpdateWrapper<User> wrapper = new LambdaUpdateWrapper<User>() .eq(User::getId, currentUserId) .set(User::getNickname, user.getNickname()) .set(User::getSex, user.getSex()) .set(User::getPhone, user.getPhone()) .set(User::getEmail, user.getEmail()) .set(User::getAvatar, user.getAvatar());
boolean success = update(null, wrapper); if (!success) { return ResponseResult.errorResult(AppHttpCodeEnum.SYSTEM_ERROR, "更新用户信息失败"); } return ResponseResult.okResult(); }
|