🎨 优化微信登录流程&新增手机和微信绑定接口
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
@@ -9,6 +9,7 @@ import (
|
||||
common "git.echol.cn/loser/lckt/model/common/request"
|
||||
"git.echol.cn/loser/lckt/model/user"
|
||||
"git.echol.cn/loser/lckt/model/user/request"
|
||||
"git.echol.cn/loser/lckt/utils/sms"
|
||||
"go.uber.org/zap"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
"math/rand"
|
||||
@@ -43,11 +44,11 @@ func (u *UserService) SendCode(req request.SendCodeReq) (err error) {
|
||||
rand.New(rand.NewSource(time.Now().UnixNano()))
|
||||
verifyCode := fmt.Sprintf("%06v", rand.Int31n(1000000))
|
||||
|
||||
//if ok := sms.SendSMS(req.Phone, verifyCode); !ok {
|
||||
// global.GVA_LOG.Error("发送验证码失败")
|
||||
// return
|
||||
//}
|
||||
//
|
||||
if ok := sms.DxbSendSMS(req.Phone, verifyCode); !ok {
|
||||
global.GVA_LOG.Error("发送验证码失败")
|
||||
return
|
||||
}
|
||||
|
||||
if err = rdb.Set(context.Background(), key, verifyCode, 5*time.Minute).Err(); err != nil {
|
||||
global.GVA_LOG.Error("设置验证码缓存失败", zap.Error(err))
|
||||
return
|
||||
@@ -202,3 +203,28 @@ func (u *UserService) GetTeacherApplyList(p request.GetTeacherApplyListReq) (lis
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (u *UserService) UpdateTeacherApplyStatus(p app.TeacherApply) (err error) {
|
||||
err = global.GVA_DB.Save(&p).Error
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("更新教师申请状态失败", zap.Error(err))
|
||||
return
|
||||
}
|
||||
|
||||
// 如果申请通过,更新用户类型为教师
|
||||
if p.Status == 1 {
|
||||
var user user.User
|
||||
err = global.GVA_DB.Model(&user).Where("id = ?", p.UserId).First(&user).Error
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("查询用户信息失败", zap.Error(err))
|
||||
return
|
||||
}
|
||||
user.UserType = 2 // 设置为教师
|
||||
err = global.GVA_DB.Save(&user).Error
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("更新用户类型失败", zap.Error(err))
|
||||
return
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
Reference in New Issue
Block a user