🎨 优化微信登录流程&新增手机和微信绑定接口

This commit is contained in:
2025-07-23 02:33:39 +08:00
parent f0a67822ef
commit 7a729211d1
9 changed files with 218 additions and 32 deletions

View File

@@ -175,3 +175,49 @@ func (u *AppUserService) GetTeacherApplyStatus(id uint) (teacherApply app.Teache
return
}
// BindWechat 手机登录用户绑定微信
func (u *AppUserService) BindWechat(p request.BindWechatReq) (*user.User, error) {
var userInfo user.User
err := global.GVA_DB.Model(&user.User{}).Where("id = ?", p.Id).First(&userInfo).Error
if err != nil {
global.GVA_LOG.Error("查询用户失败", zap.Error(err))
return nil, err
}
if userInfo.OpenId != "" {
global.GVA_LOG.Error("用户已绑定微信")
return nil, fmt.Errorf("用户已绑定微信")
}
userInfo.OpenId = p.Openid
err = global.GVA_DB.Save(&userInfo).Error
if err != nil {
global.GVA_LOG.Error("绑定微信失败", zap.Error(err))
return nil, err
}
return &userInfo, nil
}
// BindPhone 微信登录用户绑定手机号
func (u *AppUserService) BindPhone(p request.BindPhoneReq) (*user.User, error) {
var userInfo user.User
err := global.GVA_DB.Model(&user.User{}).Where("id = ?", p.Id).First(&userInfo).Error
if err != nil {
global.GVA_LOG.Error("查询用户失败", zap.Error(err))
return nil, err
}
userInfo.Phone = p.Phone
pwd, _ := bcrypt.GenerateFromPassword([]byte(p.PassWord), bcrypt.DefaultCost)
userInfo.Password = string(pwd)
err = global.GVA_DB.Save(&userInfo).Error
if err != nil {
global.GVA_LOG.Error("绑定微信失败", zap.Error(err))
return nil, err
}
return &userInfo, nil
}