package mysqlLy import ( orm "duoduo/database" "duoduo/tools" "time" ) type User struct { ID int64 `gorm:"column:id;type:bigint(20);primary_key;AUTO_INCREMENT" json:"id"` OpenID string `gorm:"column:open_id;type:varchar(255)" json:"open_id"` // open_id 唯一索引 Phone string `gorm:"column:phone;type:varchar(24)" json:"phone"` // 手机号 NickName string `gorm:"column:nick_name;type:varchar(255)" json:"nick_name"` // 微信用户名 AvatarUrl string `gorm:"column:avatar_url;type:varchar(255)" json:"avatar_url"` // 头像url Mechanism string `gorm:"column:mechanism;type:varchar(255)" json:"mechanism"` // 机构 WxCode string `gorm:"column:wx_code;type:varchar(255)" json:"wx_code"` // 微信号 CreateTime time.Time `gorm:"column:create_time;type:datetime" json:"create_time"` // 创建时间 UpdateTime time.Time `gorm:"column:update_time;type:datetime" json:"update_time"` // 更新时间 } func (m *User) TableName() string { return "user" } func (m *User) Create() (User, error) { var doc User result := orm.LyMysql.Where(User{OpenID: m.OpenID}).FirstOrCreate(&m) if result.Error != nil { err := result.Error return doc, err } doc = *m return doc, nil } func (m *User) GetNum() int { var count int count = 0 tableCount := orm.LyMysql.Table(m.TableName()).Where("open_id = ? ", m.OpenID) tableCount.Count(&count) return count } func (m *User) Get() (User, error) { var doc User err := orm.LyMysql.Where("open_id = ? ", m.OpenID).Table(m.TableName()).First(&doc).Error if err != nil { return doc, err } return doc, nil } func (m *User) Update() (update User, err error) { if err := orm.Eloquent.Table(m.TableName()).Model(&update).Where("open_id = ? ", m.OpenID).Updates( map[string]interface{}{ "phone": m.Phone, "nick_name": m.NickName, "avatar_url": m.AvatarUrl, "wx_code": m.WxCode, "update_time": tools.GetCurrntTimeStr()}).Error; err != nil { return update, err } return update, nil }