用户修改头像、昵称、绑定手机号、获取用户详细信息
This commit is contained in:
@ -2,6 +2,8 @@ package internal
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"server/internal/consts"
|
||||
"server/internal/dao"
|
||||
"server/internal/model"
|
||||
@ -115,21 +117,83 @@ func (s *sUser) Info(ctx context.Context, in *model.UserInfoIn) (out *model.User
|
||||
return nil, ecode.Fail.Sub("查找用户失败")
|
||||
}
|
||||
out = &model.UserInfoOut{
|
||||
Id: user.Id,
|
||||
Id: user.Id,
|
||||
WxOpenId: user.WxOpenId,
|
||||
Username: user.Username,
|
||||
Nickname: user.Nickname,
|
||||
Avatar: user.Avatar,
|
||||
Email: user.Email,
|
||||
PhoneNumber: user.PhoneNumber,
|
||||
WxPopenId: user.WxPopenId,
|
||||
QQPopenId: user.QqPopenId,
|
||||
RoleId: user.RoleId,
|
||||
}
|
||||
return
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (s *sUser) Code(ctx context.Context, in *model.UserCodeIn) (out *model.UserCodeOut, err error) {
|
||||
return
|
||||
func (s *sUser) Code(ctx context.Context, in *model.GetPhoneCodeIn) (out *model.GetPhoneCodeOut, err error) {
|
||||
// TODO 短信平台获取验证码
|
||||
code := "9999"
|
||||
|
||||
// 存入 redis
|
||||
err = g.Redis().SetEX(ctx, fmt.Sprintf(consts.UserBindPhoneKey, in.Id), code, consts.UserCodeExpire)
|
||||
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("设置验证码失败")
|
||||
}
|
||||
|
||||
return &model.GetPhoneCodeOut{
|
||||
Success: true,
|
||||
}, nil
|
||||
}
|
||||
func (s *sUser) Update(ctx context.Context, in *model.UserUpdateIn) (out *model.UpdateOut, err error) {
|
||||
return
|
||||
|
||||
exist, err := dao.Users.Ctx(ctx).Where(do.Users{Id: in.Id}).Exist()
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("该用户不存在")
|
||||
}
|
||||
|
||||
if !exist {
|
||||
return nil, ecode.Params.Sub("用户不存在")
|
||||
}
|
||||
|
||||
_, err = dao.Users.Ctx(ctx).Where(do.Users{Id: in.Id}).Update(do.Users{
|
||||
Nickname: in.Nickname,
|
||||
Avatar: in.Avatar,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("更新用户信息失败")
|
||||
}
|
||||
|
||||
return &model.UpdateOut{
|
||||
Success: true,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *sUser) BindPhone(ctx context.Context, in *model.UserBindPhoneIn) (out *model.UpdateOut, err error) {
|
||||
func (s *sUser) BindPhone(ctx context.Context, in *model.UserBindPhoneIn) (out *model.UserBindPhoneOut, err error) {
|
||||
// 绑定手机号,需要验证入参和缓存中的验证码时候相同
|
||||
return
|
||||
value, err := g.Redis().Get(ctx, fmt.Sprintf(consts.UserBindPhoneKey, in.Id))
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("获取失败")
|
||||
}
|
||||
|
||||
if value.IsEmpty() {
|
||||
return nil, ecode.Fail.Sub("验证码已过期")
|
||||
}
|
||||
|
||||
if value.String() != in.PhoneCode {
|
||||
return nil, ecode.Fail.Sub("验证码错误")
|
||||
}
|
||||
|
||||
_, err = dao.Users.Ctx(ctx).Where(do.Users{Id: in.Id}).Update(do.Users{
|
||||
PhoneNumber: in.Phone,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("绑定手机号失败")
|
||||
}
|
||||
return &model.UserBindPhoneOut{
|
||||
Success: true,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *sUser) List(ctx context.Context, in *model.UserListIn) (out *model.UserListOut, err error) {
|
||||
|
||||
Reference in New Issue
Block a user