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"` Avatar string `orm:"size(255)" json:"avatar" compact:"avatar"` // 头像 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"` ParentMobile string `orm:"size(32)" json:"parentMobile"` DividePercentage int `json:"dividePercentage"` Profit int `json:"profit"` ProfitSum int `json:"profitSum"` Arrears int `json:"arrears"` } 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 } func (user *User) GetAvatar() string { return user.Avatar } 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"` // 内部唯一标识 Tag string `orm:"size(32)" json:"tag"` ConsigneeName string `orm:"size(32)" json:"consigneeName"` ConsigneeMobile string `orm:"size(32)" json:"consigneeMobile"` Address string `orm:"size(255)" json:"address"` // 地址(区县以下,门牌号以上的地址信息) DetailAddress string `orm:"size(255)" json:"detailAddress"` // 门牌号 Lng float64 `orm:"digits(10);decimals(6)" json:"lng"` Lat float64 `orm:"digits(10);decimals(6)" json:"lat"` AutoAddress string `orm:"size(255)" json:"autoAddress"` // 这个是通过坐标自动获取的结构化的地址 CityCode int `orm:"default(0);null" json:"cityCode"` // 根据坐标获得 DistrictCode int `orm:"default(0);null" json:"districtCode"` // 根据坐标获得 Remark string `orm:"type(text)" json:"remark"` IsDefault int8 `json:"isDefault"` } func (*UserDeliveryAddress) TableUnique() [][]string { return [][]string{ // []string{"UserID", "ConsigneeMobile", "DeletedAt"}, } } type UserCartItem struct { ID int64 `orm:"column(id)" json:"-"` CreatedAt time.Time `orm:"auto_now_add;type(datetime)" json:"createdAt"` UpdatedAt time.Time `orm:"auto_now;type(datetime)" json:"-"` LastOperator string `orm:"size(32)" json:"-"` // 最后操作员 UserID string `orm:"size(48);column(user_id)" json:"userID"` StoreID int `orm:"column(store_id)" json:"storeID"` SkuID int `orm:"column(sku_id)" json:"skuID"` ActID int `orm:"column(act_id)" json:"actID"` Count int `json:"count"` Price int `json:"price"` IsChecked int8 `json:"isChecked"` } func (*UserCartItem) TableUnique() [][]string { return [][]string{ []string{"UserID", "StoreID", "SkuID", "ActID"}, } } type UserAgreement struct { ModelIDCULD Name string `orm:"size(32);index" json:"name"` // 外部显示标识(当前可以重复) Mobile string `orm:"size(32)" json:"mobile"` IDNumber string `orm:"column(id_number);size(20)" json:"idNumber"` BankNumber string `orm:"size(32)" json:"bankNumber"` } type UserOrderSms struct { ID int64 `orm:"column(id)" json:"-"` CreatedAt time.Time `orm:"auto_now_add;type(datetime)" json:"createdAt"` UpdatedAt time.Time `orm:"auto_now;type(datetime)" json:"-"` LastOperator string `orm:"size(32)" json:"-"` // 最后操作员 Mobile string `orm:"size(32)" json:"mobile"` Name string `orm:"size(32)" json:"name"` VendorUserID string `orm:"column(vendor_user_id)" json:"vendorUserID"` SMSMark int `orm:"column(sms_mark)" json:"smsMark"` TotalCount int `json:"totalCount"` } func (*UserOrderSms) TableUnique() [][]string { return [][]string{ []string{"Mobile"}, } }