Files
jx-callback/business/model/user.go
2020-11-11 10:43:30 +08:00

252 lines
7.2 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"`
}
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 UserCityManager struct {
ModelIDCULD
UserID string `orm:"size(48);column(user_id)" json:"userID"` // 内部唯一标识
CityCode int `json:"cityCode"`
}
func (*UserCityManager) TableUnique() [][]string {
return [][]string{
[]string{"UserID", "CityCode"},
}
}
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"`
Type int `json:"type"` //1为寄件人2为取件人收货人
}
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 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"},
}
}