user_model.go 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Package user 存放用户 Model 相关逻辑
  2. package user
  3. import (
  4. "github.com/runningwater/gohub/app/models"
  5. "github.com/runningwater/gohub/pkg/database"
  6. "github.com/runningwater/gohub/pkg/hash"
  7. )
  8. // User 用户模型
  9. type User struct {
  10. models.BaseModel
  11. Name string `json:"name,omitempty"`
  12. City string `json:"city,omitempty"`
  13. Introduction string `json:"introduction,omitempty"`
  14. Avatar string `json:"avatar,omitempty"`
  15. Email string `json:"-"`
  16. Phone string `json:"-"`
  17. Password string `json:"-"`
  18. models.CommonTimestampsField
  19. }
  20. // Create 创建用户, 通过 User.ID 来判断是否创建成功
  21. func (u *User) Create() {
  22. database.DB.Create(&u)
  23. }
  24. // Save 保存用户信息
  25. func (u *User) Save() (rowsAffected int64) {
  26. result := database.DB.Save(&u)
  27. return result.RowsAffected
  28. }
  29. func (u *User) GetStringID() string {
  30. return models.GetStringID(u.ID)
  31. }
  32. // ComparePassword 密码是否匹配
  33. func (u *User) ComparePassword(_password string) bool {
  34. return hash.BcryptCheck(_password, u.Password)
  35. }