diff --git a/src/main/java/com/sczx/user/service/impl/UserServiceImpl.java b/src/main/java/com/sczx/user/service/impl/UserServiceImpl.java index 7f0e4d0..5418b35 100644 --- a/src/main/java/com/sczx/user/service/impl/UserServiceImpl.java +++ b/src/main/java/com/sczx/user/service/impl/UserServiceImpl.java @@ -27,6 +27,7 @@ import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; import java.util.Objects; +import java.util.Optional; /** * @Author: 张黎 @@ -90,7 +91,10 @@ public class UserServiceImpl implements IUserService { phoneInfo = weichatInteg.decryptPhoneNumber(sessionKey, wxMiniProgramRegRequest.getPhoneEncryptedData(), wxMiniProgramRegRequest.getPhoneIv()); log.info("解密手机号信息:{}", phoneInfo); } - + String phoneNumber = Optional.ofNullable(phoneInfo).map(WechatDecryptedPhoneInfo::getPurePhoneNumber).orElse(null); + if(StringUtils.isBlank(phoneNumber)){ + throw new BizException("微信小程序注册失败,无法获取用户真实手机号"); + } // // 3. 解密用户基本信息(昵称、头像等) // WechatDecryptedUserInfo userInfo = null; // if (StringUtils.isNotBlank(wxMiniProgramRegRequest.getUserEncryptedData()) && StringUtils.isNotBlank(wxMiniProgramRegRequest.getUserIv()) @@ -100,22 +104,22 @@ public class UserServiceImpl implements IUserService { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(BaseUserPO::getPhoneNumber, phoneInfo.getPurePhoneNumber()); + queryWrapper.eq(BaseUserPO::getPhoneNumber, phoneNumber); BaseUserPO baseUserPO = baseUserRepo.getOne(queryWrapper); BaseUserPO newUserPO = new BaseUserPO(); if(Objects.isNull(baseUserPO)){ newUserPO.setWechatOpenid(openid); - newUserPO.setUserName(phoneInfo.getPurePhoneNumber()); - newUserPO.setPhoneNumber(phoneInfo.getPurePhoneNumber()); - newUserPO.setPassword(MD5Utils.md5Hex(phoneInfo.getPurePhoneNumber(), StandardCharsets.UTF_8.name())); + newUserPO.setUserName(phoneNumber); + newUserPO.setPhoneNumber(phoneNumber); + newUserPO.setPassword(MD5Utils.md5Hex(phoneNumber, StandardCharsets.UTF_8.name())); - newUserPO.setNickName(phoneInfo.getPurePhoneNumber()); + newUserPO.setNickName(phoneNumber); // newUserPO.setAvatarUrl(Optional.ofNullable(userInfo).map(WechatDecryptedUserInfo::getAvatarUrl).orElse(null)); newUserPO.setRoleId(1); }else { newUserPO.setId(baseUserPO.getId()); newUserPO.setWechatOpenid(openid); - newUserPO.setNickName(phoneInfo.getPurePhoneNumber()); + newUserPO.setNickName(phoneNumber); // newUserPO.setAvatarUrl(Optional.ofNullable(userInfo).map(WechatDecryptedUserInfo::getAvatarUrl).orElse(null)); } baseUserRepo.saveOrUpdate(newUserPO);