user.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package mysql
  2. import (
  3. orm "duoduo/database"
  4. "duoduo/tools"
  5. )
  6. type User struct {
  7. CreateTime string `gorm:"column:create_time" json:"createTime"`
  8. OpenID string `gorm:"column:open_id" json:"openId"`
  9. Phone string `gorm:"column:phone" json:"phone"`
  10. Pid string `gorm:"column:pid" json:"pid"`
  11. UpdateTime string `gorm:"column:update_time" json:"updateTime"`
  12. }
  13. // TableName sets the insert table name for this struct type
  14. func (u *User) TableName() string {
  15. return "user"
  16. }
  17. func (u *User) GetNum() int {
  18. var count int
  19. tableCount := orm.Eloquent.Table(u.TableName()).Where("open_id = ? ", u.OpenID)
  20. tableCount.Count(&count)
  21. return count
  22. }
  23. func (u *User) Get() (User, error) {
  24. var doc User
  25. err := orm.Eloquent.Select("pid").Where("open_id = ? ", u.OpenID).Table(u.TableName()).First(&doc).Error
  26. if err != nil {
  27. return doc, err
  28. }
  29. return doc, nil
  30. }
  31. func (u *User) Create() (User, error) {
  32. var doc User
  33. result := orm.Eloquent.Table(u.TableName()).Create(&u)
  34. if result.Error != nil {
  35. err := result.Error
  36. return doc, err
  37. }
  38. doc = *u
  39. return doc, nil
  40. }
  41. func (u *User) Update() (update User, err error) {
  42. if err := orm.Eloquent.Table(u.TableName()).Model(&update).Where("open_id = ? ", u.OpenID).Updates(
  43. map[string]interface{}{
  44. "pid": u.Pid,
  45. "update_time": tools.GetCurrntTimeStr()}).Error; err != nil {
  46. return update, err
  47. }
  48. return update, nil
  49. }