f
This commit is contained in:
@@ -107,9 +107,22 @@ func (l *BindMobileLogic) BindMobile(req *types.BindMobileReq) (resp *types.Bind
|
||||
if _, err := l.svcCtx.UserModel.Update(l.ctx, nil, currentUser); err != nil {
|
||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "更新手机号失败: %v", err)
|
||||
}
|
||||
// 记录mobile认证(确保后续可通过手机号登录)
|
||||
if _, err := l.svcCtx.UserAuthModel.Insert(l.ctx, nil, &model.UserAuth{Id: uuid.NewString(), UserId: finalUserID, AuthType: model.UserAuthTypeMobile, AuthKey: encryptedMobile}); err != nil {
|
||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "创建手机号认证失败: %v", err)
|
||||
// user_auth 上可能已有 mobile 行而 user.mobile 曾为空/不一致,直接 Insert 会违反 unique_userId_key
|
||||
existingMobileAuth, authErr := l.svcCtx.UserAuthModel.FindOneByUserIdAuthType(l.ctx, finalUserID, model.UserAuthTypeMobile)
|
||||
if authErr != nil && !errors.Is(authErr, model.ErrNotFound) {
|
||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "查询手机号认证失败: %v", authErr)
|
||||
}
|
||||
if existingMobileAuth != nil {
|
||||
if existingMobileAuth.AuthKey != encryptedMobile {
|
||||
existingMobileAuth.AuthKey = encryptedMobile
|
||||
if _, err := l.svcCtx.UserAuthModel.Update(l.ctx, nil, existingMobileAuth); err != nil {
|
||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "更新手机号认证失败: %v", err)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if _, err := l.svcCtx.UserAuthModel.Insert(l.ctx, nil, &model.UserAuth{Id: uuid.NewString(), UserId: finalUserID, AuthType: model.UserAuthTypeMobile, AuthKey: encryptedMobile}); err != nil {
|
||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "创建手机号认证失败: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
// 自动创建代理记录(注册即成为代理)
|
||||
|
||||
Reference in New Issue
Block a user