|
|
@@ -2,6 +2,7 @@ package com.izouma.jiashanxia.service;
|
|
|
|
|
|
import cn.binarywang.wx.miniapp.api.WxMaService;
|
|
|
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
|
|
|
+import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
|
|
|
import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.izouma.jiashanxia.config.Constants;
|
|
|
@@ -16,6 +17,7 @@ import com.izouma.jiashanxia.security.JwtUserFactory;
|
|
|
import com.izouma.jiashanxia.service.sms.SmsService;
|
|
|
import com.izouma.jiashanxia.service.storage.StorageService;
|
|
|
import com.izouma.jiashanxia.utils.JpaUtils;
|
|
|
+import com.izouma.jiashanxia.utils.SecurityUtils;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import me.chanjar.weixin.common.error.WxErrorException;
|
|
|
@@ -172,6 +174,15 @@ public class UserService {
|
|
|
return user;
|
|
|
}
|
|
|
|
|
|
+ public User getMaPhone(String sessionKey, String encryptedData, String iv) {
|
|
|
+ // 解密用户信息
|
|
|
+ WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService().getPhoneNoInfo(sessionKey, encryptedData, iv);
|
|
|
+ User user = userRepo.findById(SecurityUtils.getAuthenticatedUser().getId())
|
|
|
+ .orElseThrow(new BusinessException("用户不存在"));
|
|
|
+ user.setPhone(phoneNoInfo.getPhoneNumber());
|
|
|
+ return userRepo.save(user);
|
|
|
+ }
|
|
|
+
|
|
|
public String setPassword(Long userId, String password) {
|
|
|
User user = userRepo.findById(userId).orElseThrow(new BusinessException("用户不存在"));
|
|
|
user.setPassword(new BCryptPasswordEncoder().encode(password));
|