Files
jx-callback/business/model/user.go
suyl a913ce904f aa
2021-07-27 11:11:42 +08:00

293 lines
9.7 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
UserTypeRole = 16
UserTypeNonConsumer = ^1
MemberTypeDiscountCard = 1 //会员折扣卡
)
var (
UserTypeName = map[int]string{
UserTypeConsumer: "消费者",
UserTypeStoreBoss: "门店老板",
UserTypeOperator: "运营",
UserTypeBoss: "老板",
UserTypeRole: "受权限管理",
}
)
type DiscountCard struct {
ID int `orm:"column(id)" json:"id"`
PicePercentage int `json:"pricePercentage"`
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"`
LastBrandID int `orm:"column(last_brand_id)" json:"lastBrandID"`
LastStoreID int `orm:"column(last_store_id)" json:"lastStoreID"` //上次浏览过的店铺
ParentMobile string `orm:"size(32)" json:"parentMobile"`
DividePercentage int `json:"dividePercentage"`
Profit int `json:"profit"`
ProfitSum int `json:"profitSum"`
Arrears int `json:"arrears"`
BindStoreID string `orm:"column(bind_store_id)" json:"bindStoreID"` //门店老板账号用,表示绑的哪个门店,后权限用
BindStoreUser string `json:"bindStoreUser"` //表示绑的哪个账号,密码同这个账号
}
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
VendorOrderID string `orm:"column(vendor_order_id);size(48)" json:"vendorOrderID"` //和order_pay关联的不知道有没用先加上把
VendorID int `orm:"column(vendor_id)" json:"vendorID"`
UserID string `orm:"size(48);column(user_id)" json:"userID"` //内部唯一标识
Mobile string `orm:"size(48)" json:"mobile"` //内部唯一标识
MemberType int `json:"memberType"` //会员类型, 1为折扣卡
MemberTypeID int `orm:"column(member_type_id)" json:"memberTypeID"` //会员类型ID折扣卡的话代表几档
EndAt time.Time `json:"endAt"` //会员过期时间
IsPay int `json:"isPay"`
}
func (v *UserMember) TableIndex() [][]string {
return [][]string{
[]string{"UserID"},
[]string{"CreatedAt"},
}
}
type Role struct {
ModelIDCULD
Name string `json:"name"` //角色名
BrandID int `orm:"column(brand_id)" json:"brandID"`
CityCodes string `orm:"type(text)" json:"cityCodes"`
StoreIDs string `orm:"column(store_ids);type(text)" json:"storeIDs"`
CityInfo []*Place `orm:"-" json:"cityInfo"`
Stores []*Store `orm:"-" json:"storeInfo"`
}
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"` //颜色
Type int `json:"type"` //0为功能菜单1为权限菜单
}
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"},
}
}