微信小程序openid

This commit is contained in:
Echo 2024-02-24 16:06:53 +08:00
parent ca3d8924a0
commit 960d7d4901
7 changed files with 52 additions and 1 deletions

View File

@ -51,6 +51,9 @@ public class AuthLoginReqVO {
@Schema(description = "state", requiredMode = Schema.RequiredMode.REQUIRED, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62")
private String socialState;
@Schema(description = "openId", requiredMode = Schema.RequiredMode.REQUIRED, example = "o3bwX6Yw1bvbMAV-jUNjHrbrJu0I")
private String openId;
/**
* 开启验证码的 Group
*/

View File

@ -31,4 +31,8 @@ public class AuthSocialLoginReqVO {
@NotEmpty(message = "state 不能为空")
private String state;
@Schema(description = "openId", requiredMode = Schema.RequiredMode.REQUIRED, example = "o3bwX6Yw1bvbMAV-jUNjHrbrJu0I")
@NotEmpty(message = "openId 不能为空")
private String openId;
}

View File

@ -93,4 +93,8 @@ public class AdminUserDO extends TenantBaseDO {
*/
private LocalDateTime loginDate;
/**
* 微信小程序openId
*/
private String openId ;
}

View File

@ -13,6 +13,8 @@ import java.util.List;
@Mapper
public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
default AdminUserDO sgetByOpenId(String openId) { return selectOne(AdminUserDO::getOpenId, openId); }
default AdminUserDO selectByUsername(String username) {
return selectOne(AdminUserDO::getUsername, username);
}

View File

@ -109,6 +109,12 @@ public class AdminAuthServiceImpl implements AdminAuthService {
socialUserService.bindSocialUser(new SocialUserBindReqDTO(user.getId(), getUserType().getValue(),
reqVO.getSocialType(), reqVO.getSocialCode(), reqVO.getSocialState()));
}
if (reqVO.getOpenId() != null) {
//绑定用户openId
userService.updateUserOpenId(user.getId(),reqVO.getOpenId());
}
// 创建 Token 令牌记录登录日志
return createTokenAfterLoginSuccess(user.getId(), reqVO.getUsername(), LoginLogTypeEnum.LOGIN_USERNAME);
}
@ -258,9 +264,10 @@ public class AdminAuthServiceImpl implements AdminAuthService {
//获取微信小程序授权手机号
WxMaPhoneNumberInfo wxMaPhoneNumberInfo = socialClientService.getWxMaPhoneNumberInfo(2,reqVO.getCode()) ;
String phoneNumber = wxMaPhoneNumberInfo.getPhoneNumber() ; //授权手机号
phoneNumber = "18611845857" ;
String appId = wxMaPhoneNumberInfo.getWatermark().getAppid() ; //小程序的appId
final LoginLogTypeEnum logTypeEnum = LoginLogTypeEnum.LOGIN_USERNAME;
final LoginLogTypeEnum logTypeEnum = LoginLogTypeEnum.LOGIN_MOBILE;
//因为账号就是保存用户的手机号 所以userName就是手机号
// 校验账号是否存在
@ -275,6 +282,9 @@ public class AdminAuthServiceImpl implements AdminAuthService {
throw exception(AUTH_LOGIN_USER_DISABLED);
}
//绑定用户openId
userService.updateUserOpenId(user.getId(),reqVO.getOpenId());
/** 创建 Token 令牌,记录登录日志 */
Long userId = user.getId() ;
// 插入登陆日志

View File

@ -33,6 +33,12 @@ public interface AdminUserService {
*/
Long createUser(@Valid UserSaveReqVO createReqVO);
/**
* 绑定用户微信小程序openId
* @param openId
*/
void updateUserOpenId(Long id, String openId);
/**
* 修改用户
*
@ -111,6 +117,14 @@ public interface AdminUserService {
*/
AdminUserDO getUserByMobile(String mobile);
/**
* 根据opneId获取用户
*
* @param openId 微信小程序用户唯一id
* @return 用户对象信息
*/
AdminUserDO getUserByOpenId(String openId) ;
/**
* 获得用户分页列表
*

View File

@ -77,6 +77,20 @@ public class AdminUserServiceImpl implements AdminUserService {
@Resource
private FileApi fileApi;
@Override
@Transactional(rollbackFor = Exception.class)
public void updateUserOpenId(Long id,String openId) {
userMapper.updateById(new AdminUserDO().setId(id).setOpenId(openId));
}
@Override
public AdminUserDO getUserByOpenId(String openId) {
if (openId == null) {
return null ;
}
return userMapper.sgetByOpenId(openId);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Long createUser(UserSaveReqVO createReqVO) {