增加健壮性

This commit is contained in:
2025-08-04 11:30:47 +08:00
parent 072017b658
commit 30964f3b0d

View File

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