package model import ( "time" "git.rosy.net.cn/baseapi/utils" ) const ( UserStatusNormal = 1 UserStatusDisabled = 2 ) const ( UserTypeConsumer = 1 UserTypeStoreBoss = 2 UserTypeOperator = 4 UserTypeBoss = 8 UserTypeNonConsumer = ^1 ) var ( UserTypeName = map[int]string{ UserTypeConsumer: "消费者", UserTypeStoreBoss: "门店老板", UserTypeOperator: "运营", UserTypeBoss: "老板", } ) type User struct { ModelIDCULD UserID string `orm:"size(48);column(user_id)" json:"userID" compact:"userID"` // 内部唯一标识 UserID2 string `orm:"size(48);column(user_id2)" json:"userID2" compact:"userID2"` // 外部唯一标识(一般用于登录) Name string `orm:"size(48);index" json:"name" compact:"name"` // 外部显示标识(当前可以重复) Mobile *string `orm:"size(32);null" json:"mobile" compact:"mobile"` Email *string `orm:"size(32);null" json:"email" compact:"email"` Status int8 `json:"status" compact:"status"` Type int8 `json:"type" compact:"type"` // 用户类型 CityCode int `orm:"default(0)" json:"cityCode"` DistrictCode int `orm:"default(0);index" json:"districtCode"` Address string `orm:"size(255)" json:"address"` IDCardNo string `orm:"size(18);column(id_card_no)" json:"idCardNo" compact:"idCardNo"` // 身份证号 Remark string `orm:"size(255)" json:"remark"` LastLoginAt *time.Time `orm:"null" json:"lastLoginAt"` LastLoginIP string `orm:"size(64);column(last_login_ip)" json:"lastLoginIP"` LastLoginType string `orm:"size(16)" json:"lastLoginType"` } func (*User) TableUnique() [][]string { return [][]string{ []string{"UserID"}, []string{"UserID2", "DeletedAt"}, []string{"Mobile", "DeletedAt"}, []string{"Email", "DeletedAt"}, // []string{"IDCardNo", "DeletedAt"}, } } func (user *User) GetID() string { return user.UserID } func (user *User) GetID2() string { return user.UserID2 } func (user *User) GetMobile() string { return utils.Pointer2String(user.Mobile) } func (user *User) GetEmail() string { return utils.Pointer2String(user.Email) } func (user *User) GetName() string { return user.Name } type StoreBoss struct { ModelIDCULD UserID string `orm:"size(48);column(user_id);unique" json:"userID"` // 内部唯一标识 BossName string `orm:"size(48);index" json:"bossName"` // 门店老板真实姓名 StoreID int `orm:"column(store_id)" json:"storeID"` ParentUserID string `orm:"size(48);column(parent_user_id)" json:"-"` ReferrerID string `orm:"size(48);index" json:"referrerID"` // 推荐人ID ReferrerName string `orm:"size(48);index" json:"referrerName"` // 推荐人姓名 CityCode int `json:"cityCode"` // 期望开店所在的城市 IDCardFront string `orm:"size(255);column(id_card_front)" json:"idCardFront"` IDCardBack string `orm:"size(255);column(id_card_back)" json:"idCardBack"` IDCardHand string `orm:"size(255);column(id_card_hand)" json:"idCardHand"` Licence string `orm:"size(255)" json:"licence"` LicenceCode string `orm:"size(32);index" json:"licenceCode"` Remark string `orm:"type(text)" json:"-"` } // const ( // PaymentType // ) type UserPayment struct { ModelIDCULD UserID string `orm:"size(48);column(user_id)" json:"userID"` // 内部唯一标识 Type int8 // } type UserDeliveryAddress struct { ModelIDCULD UserID string `orm:"size(48);column(user_id)" json:"userID"` // 内部唯一标识 Name string `orm:"size(255)" json:"name"` Tag string `orm:"size(32)" json:"tag"` ConsigneeName string `orm:"size(32)" json:"consigneeName"` ConsigneeMobile string `orm:"size(32)" json:"consigneeMobile"` AutoAddress string `orm:"size(255)" json:"autoAddress"` // 这个是通过坐标自动获取的结构化的地址 Address string `orm:"size(255)" json:"address"` // 这个是用户手输入的详细地址 CityCode int `orm:"default(0);null" json:"cityCode"` // todo ? DistrictCode int `orm:"default(0);null" json:"districtCode"` // todo ? Lng int `json:"-"` // 乘了10的6次方 Lat int `json:"-"` // 乘了10的6次方 Remark string `orm:"type(text)" json:"-"` IsDefault int8 `json:"isDefault"` }