user.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package mysqlLy
  2. import (
  3. orm "duoduo/database"
  4. "duoduo/tools"
  5. "time"
  6. )
  7. type User struct {
  8. ID int64 `gorm:"column:id;type:bigint(20);primary_key;AUTO_INCREMENT" json:"id"`
  9. OpenID string `gorm:"column:open_id;type:varchar(255)" json:"open_id"` // open_id 唯一索引
  10. Phone string `gorm:"column:phone;type:varchar(24)" json:"phone"` // 手机号
  11. NickName string `gorm:"column:nick_name;type:varchar(255)" json:"nick_name"` // 微信用户名
  12. AvatarUrl string `gorm:"column:avatar_url;type:varchar(255)" json:"avatar_url"` // 头像url
  13. Mechanism string `gorm:"column:mechanism;type:varchar(255)" json:"mechanism"` // 机构
  14. WxCode string `gorm:"column:wx_code;type:varchar(255)" json:"wx_code"` // 微信号
  15. CreateTime time.Time `gorm:"column:create_time;type:datetime" json:"create_time"` // 创建时间
  16. UpdateTime time.Time `gorm:"column:update_time;type:datetime" json:"update_time"` // 更新时间
  17. }
  18. func (m *User) TableName() string {
  19. return "user"
  20. }
  21. func (m *User) Create() (User, error) {
  22. var doc User
  23. result := orm.LyMysql.Where(User{OpenID: m.OpenID}).FirstOrCreate(&m)
  24. if result.Error != nil {
  25. err := result.Error
  26. return doc, err
  27. }
  28. doc = *m
  29. return doc, nil
  30. }
  31. func (m *User) GetNum() int {
  32. var count int
  33. count = 0
  34. tableCount := orm.LyMysql.Table(m.TableName()).Where("open_id = ? ", m.OpenID)
  35. tableCount.Count(&count)
  36. return count
  37. }
  38. func (m *User) Get() (User, error) {
  39. var doc User
  40. err := orm.LyMysql.Where("open_id = ? ", m.OpenID).Table(m.TableName()).First(&doc).Error
  41. if err != nil {
  42. return doc, err
  43. }
  44. return doc, nil
  45. }
  46. func (m *User) Update() (update User, err error) {
  47. if err := orm.Eloquent.Table(m.TableName()).Model(&update).Where("open_id = ? ", m.OpenID).Updates(
  48. map[string]interface{}{
  49. "phone": m.Phone,
  50. "nick_name": m.NickName,
  51. "avatar_url": m.AvatarUrl,
  52. "wx_code": m.WxCode,
  53. "update_time": tools.GetCurrntTimeStr()}).Error; err != nil {
  54. return update, err
  55. }
  56. return update, nil
  57. }