package model import ( "context" "gorm.io/gorm" "project_management/global" "project_management/utils" ) type User struct { gorm.Model Phone string `gorm:"type:varchar(50);" json:"phone" validate:"required" min:"11" max:"11"` } type UserRegist struct { Phone string `json:"phone" validate:"required" min:"11" max:"11"` Code string `json:"code" validate:"required" min:"6" max:"6"` } func (u User) Login(user UserRegist) (string, string) { //TODO implement me tx := global.DBLink.Where("phone = ?", user.Phone).First(&u) ctx := context.Background() result, err := global.Rdb.Get(ctx, user.Phone).Result() if err != nil { return "", "验证验证码失败请联系管理员" } else if result != user.Code { return "", "验证码错误" } token, err := utils.CreateToken(u.ID, u.Phone, "user") token = "interior:" + token if err != nil { return "", "创建令牌失败" } if tx.RowsAffected == 0 { u.Phone = user.Phone create := global.DBLink.Create(&u) if create.Error != nil { return "", "登录失败" } return token, "" } return token, "" }