user.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package model
  2. import (
  3. "context"
  4. "gorm.io/gorm"
  5. "project_management/global"
  6. "project_management/utils"
  7. )
  8. type User struct {
  9. gorm.Model
  10. Phone string `gorm:"type:varchar(50);" json:"phone" validate:"required" min:"11" max:"11"`
  11. }
  12. type UserRegist struct {
  13. Phone string `json:"phone" validate:"required" min:"11" max:"11"`
  14. Code string `json:"code" validate:"required" min:"6" max:"6"`
  15. }
  16. func (u User) Login(user UserRegist) (string, string) {
  17. //TODO implement me
  18. tx := global.DBLink.Where("phone = ?", user.Phone).First(&u)
  19. ctx := context.Background()
  20. result, err := global.Rdb.Get(ctx, user.Phone).Result()
  21. if err != nil {
  22. return "", "验证验证码失败请联系管理员"
  23. } else if result != user.Code {
  24. return "", "验证码错误"
  25. }
  26. token, err := utils.CreateToken(u.ID, u.Phone, "user")
  27. token = "interior:" + token
  28. if err != nil {
  29. return "", "创建令牌失败"
  30. }
  31. if tx.RowsAffected == 0 {
  32. u.Phone = user.Phone
  33. create := global.DBLink.Create(&u)
  34. if create.Error != nil {
  35. return "", "登录失败"
  36. }
  37. return token, ""
  38. }
  39. return token, ""
  40. }