db

package
v0.0.0-...-2eb9458 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 15, 2021 License: AGPL-3.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Cli

func Cli() *qmgo.Client

Cli is mongo client

func CreateAgent

func CreateAgent(ctx context.Context, msg *Agent) (id string, err error)

func CreateMessage

func CreateMessage(ctx context.Context, msg *Message)

func CreateVisitor

func CreateVisitor(ctx context.Context, visitor *Visitor) (id string, err error)

func DB

func DB(database ...string) *qmgo.Database

DB 数据库实例

func GetAgentCollection

func GetAgentCollection() *qmgo.Collection

func GetMessageCollection

func GetMessageCollection() *qmgo.Collection

func GetUserCollection

func GetUserCollection() *qmgo.Collection

func GetVisitorCollection

func GetVisitorCollection() *qmgo.Collection

func GetVisitorNicks

func GetVisitorNicks(ctx context.Context, ids []string) (nickmap map[string]string, err error)

func UpsertAgent

func UpsertAgent(ctx context.Context, agentID string, agent *Agent) (id string, err error)

func UpsertVisitor

func UpsertVisitor(ctx context.Context, visitor *Visitor) (id string, err error)

Types

type Agent

type Agent struct {
	DefaultField `bson:",inline"`
	UserID       string `bson:"userID" json:"userID"`
	Status       int    `bson:"status" json:"status"`
	Online       bool   `bson:"online" json:"online"`
	Blocked      bool   `bson:"blocked" json:"blocked"`
}

Agent 客服

func GetAgentByUID

func GetAgentByUID(ctx context.Context, uid string) (agent *Agent, err error)

func GetAllAgents

func GetAllAgents(ctx context.Context, filter interface{}) ([]*Agent, error)

type DefaultField

type DefaultField struct {
	ID        primitive.ObjectID `bson:"_id" json:"id"`
	CreatedAt time.Time          `bson:"createdAt" json:"createdAt"`
	UpdatedAt time.Time          `bson:"updatedAt" json:"updatedAt"`
}

func (DefaultField) CustomFields

func (DefaultField) CustomFields() field.CustomFieldsBuilder

type Message

type Message struct {
	DefaultField `bson:",inline"`
	AgentID      string                 `bson:"agentID" json:"agentID"`     // 客服ID
	VisitorID    string                 `bson:"visitorID" json:"visitorID"` // 访客ID
	SenderID     string                 `bson:"senderID" json:"senderID"`   // 发送者ID
	Type         string                 `bson:"type" json:"type"`           // 消息类型
	Content      map[string]interface{} `bson:"content" json:"content"`     // 消息内容
	Status       int                    `bson:"status" json:"status"`       // 消息状态
}

Message 消息

func FindMessageByVisitorID

func FindMessageByVisitorID(ctx context.Context, id string) ([]*Message, error)

func FindMessageByVisitorIDWithPaging

func FindMessageByVisitorIDWithPaging(ctx context.Context, id string, pageNum, pageSize int64) ([]*Message, error)

func GetLastMessageByVisitorID

func GetLastMessageByVisitorID(ctx context.Context, id string) (*Message, error)

func GetLastMessagesByVisitorIDs

func GetLastMessagesByVisitorIDs(ctx context.Context, ids []string) ([]*Message, error)

type User

type User struct {
	DefaultField `bson:",inline"`
	Username     string `bson:"username" json:"username"`
	Nickname     string `bson:"nickname" json:"nickname"`
	Phone        string `bson:"phone" json:"phone"`
	Email        string `bson:"email" json:"email"`
	Password     string `bson:"password" json:"-"`
	Avatar       string `bson:"avatar" json:"avatar"`
	Language     string `bson:"language" json:"language"`
	IsAdmin      bool   `bson:"isAdmin" json:"isAdmin"`
}

User 账号

func GetUserByID

func GetUserByID(ctx context.Context, id string) (u *User, err error)

func GetUserBySignin

func GetUserBySignin(ctx context.Context, login string) (u *User, err error)

func GetUserByUsername

func GetUserByUsername(ctx context.Context, username string) (u *User, err error)

type Visitor

type Visitor struct {
	DefaultField `bson:",inline"`
	Domain       string `bson:"domain" json:"domain"`
	Refer        string `bson:"refer" json:"refer"`
	Token        string `bson:"token" json:"token"`
	Nickname     string `bson:"nickname" json:"nickname"`
	Email        string `bson:"email" json:"email"`
	Phone        string `bson:"phone" json:"phone"`
	Geo          string `bson:"geo" json:"geo"`
	IP           string `bson:"ip" json:"ip"`
	Country      string `bson:"country" json:"country"`
	City         string `bson:"city" json:"city"`
	AgentID      string `bons:"agentID" json:"agentID"`
}

Visitor 访客

func GetVisitorByID

func GetVisitorByID(ctx context.Context, id string) (visitor *Visitor, err error)

func (*Visitor) Address

func (visitor *Visitor) Address() string

type WorkingTime

type WorkingTime struct {
	DefaultField    `bson:",inline"`
	InboxID         string   // 用于区分不同渠道下不同的设定
	CloseByHolidays []string // 公共的假期:不区分年,应该是一个常规的日期:月/日
	CloseByDates    []string // 自定义假期:具体的日期:年/月/日
	StartWeek       int      // 周几开始
	EndWeek         int      // 周几结束
	StartTime       string   // 每天几点开始
	EndTime         string   // 每天几点结束
}

WorkingTime 客服工作时段设定

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL