package system import ( "sundynix-go/global" "time" ) type Login interface { GetAccount() string GetUserId() string GetUserInfo() any } type User struct { global.BaseModel TenantId string `gorm:"size:20;" json:"tenantId" form:"tenantId"` ClientId string `gorm:"size:20;" json:"clientId"` Name string `gorm:"size:20" json:"name" form:"name"` Account string `gorm:"size:11;" json:"account" form:"account"` Password string `gorm:"size:100;" json:"-" form:"password"` NickName string `gorm:"size:20;column:nick_name" json:"nickName" form:"nickName"` Phone string `gorm:"size:20;column:phone" json:"phone" form:"phone"` SessionKey string `gorm:"size:80;column:session_key" json:"sessionKey" form:"sessionKey"` UnionId string `gorm:"size:80;column:union_id" json:"unionId"` OpenId string `gorm:"size:80;column:open_id" json:"openId" form:"openId"` AvatarId string `gorm:"size:50;column:avatar_id" json:"avatarId"` Avatar *Oss `gorm:"foreignKey:AvatarId" json:"avatar"` Gender int `gorm:"default:0" json:"gender"` // 性别 0:未知 1:男 2:女 Country string `gorm:"size:50" json:"country"` // 国家 Province string `gorm:"size:50" json:"province"` // 省份 City string `gorm:"size:50" json:"city"` // 城市 Language string `gorm:"size:20" json:"language"` // 语言 IsVip int `gorm:"default:0" json:"isVip"` // 是否VIP 0:否 1:是 VipExpireAt *time.Time `gorm:"column:vip_expire_at" json:"vipExpireAt"` // VIP过期时间 } func (u *User) GetAccount() string { return u.Account } func (u *User) GetUserId() string { return u.Id } func (u *User) GetUserInfo() any { return *u }