Files
jx-callback/business/model/user.go
苏尹岚 a9e9d30308 member
2020-10-19 15:25:31 +08:00

274 lines
8.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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
MemberTypeNormal = 1 //普通会员
)
var (
UserTypeName = map[int]string{
UserTypeConsumer: "消费者",
UserTypeStoreBoss: "门店老板",
UserTypeOperator: "运营",
UserTypeBoss: "老板",
}
)
type MemberCard struct {
ID int `orm:"column(id)" json:"id"`
Price int `json:"price"`
}
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"},
}
}
type UserMember struct {
ModelIDCULD
UserID string `orm:"size(48);column(user_id)" json:"userID"` //内部唯一标识
MemberType int `json:"memberType"` //会员类型, 1为折扣卡
MemberTypeID int `orm:"column(member_type_id)" json:"memberTypeID"` //会员类型ID折扣卡的话代表几档
EndAt time.Time `json:"endAt"` //会员过期时间
}
func (v *UserMember) TableIndex() [][]string {
return [][]string{
[]string{"UserID"},
}
}
type Role struct {
ModelIDCULD
Name string `json:"name"` //角色名
}
func (*Role) TableUnique() [][]string {
return [][]string{
[]string{"Name", "DeletedAt"},
}
}
type UserRole struct {
ModelIDCULD
UserID string `orm:"column(user_id)" json:"userID"` //用户ID
RoleID int `orm:"column(role_id)" json:"roleID"` //角色ID
}
func (*UserRole) TableUnique() [][]string {
return [][]string{
[]string{"UserID", "RoleID", "DeletedAt"},
}
}
type Menu struct {
ModelIDCULD
Name string `json:"name"` //功能名
URL string `orm:"column(url)" json:"url"` //路径
ImgURL string `orm:"column(img_url)" json:"imgURL"` //图标
Level int `json:"level"` //级别
ParentID int `orm:"column(parent_id)" json:"parentID"` //父功能ID
Color string `json:"color"` //颜色
}
func (*Menu) TableUnique() [][]string {
return [][]string{
[]string{"Name", "DeletedAt"},
}
}
type RoleMenu struct {
ModelIDCULD
RoleID int `orm:"column(role_id)" json:"roleID"` //角色ID
MenuID int `orm:"column(menu_id)" json:"menuID"` //功能ID
}
func (*RoleMenu) TableUnique() [][]string {
return [][]string{
[]string{"MenuID", "RoleID", "DeletedAt"},
}
}