增加健壮性

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.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<BaseUserPO> 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);