| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package logic
- import (
- "context"
- "fmt"
- "slowwild/internal/errorx"
- "slowwild/internal/model"
- "slowwild/internal/svc"
- "slowwild/internal/utils"
- "git.banshen.xyz/huangguangrong/slow_wild_protobuff/slowwild/slowwildserver"
- "github.com/zeromicro/go-zero/core/logx"
- )
- type RegisterLogic struct {
- ctx context.Context
- svcCtx *svc.ServiceContext
- logx.Logger
- }
- func NewRegisterLogic(ctx context.Context, svcCtx *svc.ServiceContext) *RegisterLogic {
- return &RegisterLogic{
- ctx: ctx,
- svcCtx: svcCtx,
- Logger: logx.WithContext(ctx),
- }
- }
- // 用户注册
- func (l *RegisterLogic) Register(in *slowwildserver.RegisterReq) (*slowwildserver.LoginAndRegisterRsp, error) {
- // 参数校验
- if in.Phone == "" || in.Password == "" || in.Code == "" {
- return nil, errorx.ErrInvalidParam
- }
- // 检查手机号是否已注册
- _, err := l.svcCtx.UserModel.FindOneByPhone(l.ctx, in.Phone)
- if err != nil && err != model.ErrNotFound {
- return nil, errorx.ErrUserQueryFailed
- }
- if err == nil {
- return nil, errorx.NewCodeError(10007, "手机号已注册")
- }
- // TODO: 验证验证码
- // if !verifyCode(in.Phone, in.Code) {
- // return nil, errorx.ErrInvalidCode
- // }
- // 生成盐值
- salt := utils.GenerateSalt()
- // 加密密码
- encryptedPassword := utils.EncryptPassword(in.Password, salt)
- //判断是否是空的用户名
- var username string
- if in.Nickname == "" {
- in.Nickname = fmt.Sprintf("用户-%s", in.Phone)
- username = fmt.Sprintf("用户-%s", in.Phone)
- } else {
- username = in.Nickname
- }
- // 生成一个随机用户名称
- // 创建用户
- user := &model.User{
- Phone: in.Phone,
- Password: encryptedPassword,
- Salt: salt,
- Nickname: in.Nickname,
- Sex: int(in.Sex),
- Status: 1, // 正常状态
- Username: username,
- }
- err = l.svcCtx.UserModel.Create(l.ctx, user)
- if err != nil {
- return nil, errorx.NewCodeError(10008, "创建用户失败")
- }
- // 生成token
- token, err := utils.GenerateToken(user.ID)
- if err != nil {
- return nil, errorx.ErrGenerateToken
- }
- return &slowwildserver.LoginAndRegisterRsp{
- Token: token,
- }, nil
- }
|