package model import ( "SciencesServer/utils" "gorm.io/gorm" "time" ) // UserInstance 账号信息 type UserInstance struct { Model Local UUID uint64 `gorm:"column:uuid;uniqueIndex:idx_tenant_user_uuid;type:int;default:0;comment:用户唯一UUID" json:"-"` Name string `gorm:"column:name;type:varchar(20);default:null;comment:真实姓名" json:"name"` Mobile string `gorm:"column:mobile;index:idx_user_instance_mobile;type:varchar(15);default:null;comment:联系方式" json:"mobile"` Identity int `gorm:"column:identity;type:int(8);default:0;comment:身份信息" json:"-"` Password string `gorm:"column:password;type:varchar(100);default:null;comment:密码" json:"-"` Salt string `gorm:"column:salt;type:varchar(10);default:null;comment:盐值" json:"-"` AccountStatus ModelDeleted ModelAt } func (m *UserInstance) TableName() string { return "user_instance" } func (m *UserInstance) BeforeCreate(db *gorm.DB) error { m.NewPassword() snowflake, _ := utils.NewSnowflake(1) m.UUID = uint64(snowflake.GetID()) m.Status = AccountStatusForEnable m.CreatedAt = time.Now() return nil } func (m *UserInstance) NewPassword() { m.Salt = utils.GetRandomString(8) m.Password = utils.HashString([]byte(utils.Md5String(m.Password, m.Salt))) } func NewUserInstance() *UserInstance { return &UserInstance{} }