Help us shape the future of Go! Take the 2026 Go Developer Survey

relation

package
v3.4.0 Latest Latest
Warning

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

Go to latest
Published: Nov 10, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BlackModelTableName = "blacks"
)
View Source
const (
	ChatLogModelTableName = "chat_logs"
)
View Source
const (
	FriendModelTableName = "friends"
)
View Source
const FriendRequestModelTableName = "friend_requests"
View Source
const (
	GroupMemberModelTableName = "group_members"
)
View Source
const (
	GroupModelTableName = "groups"
)
View Source
const (
	GroupRequestModelTableName = "group_requests"
)
View Source
const (
	ObjectInfoModelTableName = "object"
)
View Source
const (
	UserModelTableName = "users"
)

Variables

This section is empty.

Functions

func IsNotFound

func IsNotFound(err error) bool

Types

type BatchUpdateGroupMember

type BatchUpdateGroupMember struct {
	GroupID string
	UserID  string
	Map     map[string]any
}

type BlackModel

type BlackModel struct {
	OwnerUserID    string    `gorm:"column:owner_user_id;primary_key;size:64"`
	BlockUserID    string    `gorm:"column:block_user_id;primary_key;size:64"`
	CreateTime     time.Time `gorm:"column:create_time"`
	AddSource      int32     `gorm:"column:add_source"`
	OperatorUserID string    `gorm:"column:operator_user_id;size:64"`
	Ex             string    `gorm:"column:ex;size:1024"`
}

func (BlackModel) TableName

func (BlackModel) TableName() string

type BlackModelInterface

type BlackModelInterface interface {
	Create(ctx context.Context, blacks []*BlackModel) (err error)
	Delete(ctx context.Context, blacks []*BlackModel) (err error)
	UpdateByMap(ctx context.Context, ownerUserID, blockUserID string, args map[string]interface{}) (err error)
	Update(ctx context.Context, blacks []*BlackModel) (err error)
	Find(ctx context.Context, blacks []*BlackModel) (blackList []*BlackModel, err error)
	Take(ctx context.Context, ownerUserID, blockUserID string) (black *BlackModel, err error)
	FindOwnerBlacks(ctx context.Context, ownerUserID string, pageNumber, showNumber int32) (blacks []*BlackModel, total int64, err error)
	FindOwnerBlackInfos(ctx context.Context, ownerUserID string, userIDs []string) (blacks []*BlackModel, err error)
	FindBlackUserIDs(ctx context.Context, ownerUserID string) (blackUserIDs []string, err error)
}

type ChatLogModel

type ChatLogModel struct {
	ServerMsgID      string    `` /* 167-byte string literal not displayed */
	ClientMsgID      string    `` /* 167-byte string literal not displayed */
	SendID           string    `` /* 162-byte string literal not displayed */
	RecvID           string    `` /* 162-byte string literal not displayed */
	SenderPlatformID int32     `` /* 172-byte string literal not displayed */
	SenderNickname   string    `` /* 170-byte string literal not displayed */
	SenderFaceURL    string    `` /* 169-byte string literal not displayed */
	SessionType      int32     `` /* 167-byte string literal not displayed */
	MsgFrom          int32     `` /* 163-byte string literal not displayed */
	ContentType      int32     `` /* 167-byte string literal not displayed */
	Content          string    `` /* 163-byte string literal not displayed */
	Status           int32     `` /* 162-byte string literal not displayed */
	SendTime         time.Time `` /* 164-byte string literal not displayed */
	CreateTime       time.Time `` /* 166-byte string literal not displayed */
	Ex               string    `` /* 158-byte string literal not displayed */
}

func (ChatLogModel) TableName

func (ChatLogModel) TableName() string

type ChatLogModelInterface

type ChatLogModelInterface interface {
	Create(msg *pbmsg.MsgDataToMQ) error
}

type ConversationModel

type ConversationModel struct {
	OwnerUserID           string    `gorm:"column:owner_user_id;primary_key;type:char(128)"     json:"OwnerUserID"`
	ConversationID        string    `gorm:"column:conversation_id;primary_key;type:char(128)"   json:"conversationID"`
	ConversationType      int32     `gorm:"column:conversation_type"                            json:"conversationType"`
	UserID                string    `gorm:"column:user_id;type:char(64)"                        json:"userID"`
	GroupID               string    `gorm:"column:group_id;type:char(128)"                      json:"groupID"`
	RecvMsgOpt            int32     `gorm:"column:recv_msg_opt"                                 json:"recvMsgOpt"`
	IsPinned              bool      `gorm:"column:is_pinned"                                    json:"isPinned"`
	IsPrivateChat         bool      `gorm:"column:is_private_chat"                              json:"isPrivateChat"`
	BurnDuration          int32     `gorm:"column:burn_duration;default:30"                     json:"burnDuration"`
	GroupAtType           int32     `gorm:"column:group_at_type"                                json:"groupAtType"`
	AttachedInfo          string    `gorm:"column:attached_info;type:varchar(1024)"             json:"attachedInfo"`
	Ex                    string    `gorm:"column:ex;type:varchar(1024)"                        json:"ex"`
	MaxSeq                int64     `gorm:"column:max_seq"                                      json:"maxSeq"`
	MinSeq                int64     `gorm:"column:min_seq"                                      json:"minSeq"`
	CreateTime            time.Time `gorm:"column:create_time;index:create_time;autoCreateTime"`
	IsMsgDestruct         bool      `gorm:"column:is_msg_destruct;default:false"`
	MsgDestructTime       int64     `gorm:"column:msg_destruct_time;default:604800"`
	LatestMsgDestructTime time.Time `gorm:"column:latest_msg_destruct_time;autoCreateTime"`
}

func (ConversationModel) TableName

func (ConversationModel) TableName() string

type ConversationModelInterface

type ConversationModelInterface interface {
	Create(ctx context.Context, conversations []*ConversationModel) (err error)
	Delete(ctx context.Context, groupIDs []string) (err error)
	UpdateByMap(ctx context.Context, userIDs []string, conversationID string, args map[string]interface{}) (rows int64, err error)
	Update(ctx context.Context, conversation *ConversationModel) (err error)
	Find(ctx context.Context, ownerUserID string, conversationIDs []string) (conversations []*ConversationModel, err error)
	FindUserID(ctx context.Context, userIDs []string, conversationIDs []string) ([]string, error)
	FindUserIDAllConversationID(ctx context.Context, userID string) ([]string, error)
	Take(ctx context.Context, userID, conversationID string) (conversation *ConversationModel, err error)
	FindConversationID(ctx context.Context, userID string, conversationIDs []string) (existConversationID []string, err error)
	FindUserIDAllConversations(ctx context.Context, userID string) (conversations []*ConversationModel, err error)
	FindRecvMsgNotNotifyUserIDs(ctx context.Context, groupID string) ([]string, error)
	GetUserRecvMsgOpt(ctx context.Context, ownerUserID, conversationID string) (opt int, err error)
	FindSuperGroupRecvMsgNotNotifyUserIDs(ctx context.Context, groupID string) ([]string, error)
	GetAllConversationIDs(ctx context.Context) ([]string, error)
	GetAllConversationIDsNumber(ctx context.Context) (int64, error)
	PageConversationIDs(ctx context.Context, pageNumber, showNumber int32) (conversationIDs []string, err error)
	GetUserAllHasReadSeqs(ctx context.Context, ownerUserID string) (hashReadSeqs map[string]int64, err error)
	GetConversationsByConversationID(ctx context.Context, conversationIDs []string) ([]*ConversationModel, error)
	GetConversationIDsNeedDestruct(ctx context.Context) ([]*ConversationModel, error)
	GetConversationNotReceiveMessageUserIDs(ctx context.Context, conversationID string) ([]string, error)
	NewTx(tx any) ConversationModelInterface
}

type FriendModel

type FriendModel struct {
	OwnerUserID    string    `gorm:"column:owner_user_id;primary_key;size:64"`
	FriendUserID   string    `gorm:"column:friend_user_id;primary_key;size:64"`
	Remark         string    `gorm:"column:remark;size:255"`
	CreateTime     time.Time `gorm:"column:create_time;autoCreateTime"`
	AddSource      int32     `gorm:"column:add_source"`
	OperatorUserID string    `gorm:"column:operator_user_id;size:64"`
	Ex             string    `gorm:"column:ex;size:1024"`
}

func (FriendModel) TableName

func (FriendModel) TableName() string

type FriendModelInterface

type FriendModelInterface interface {
	// 插入多条记录
	Create(ctx context.Context, friends []*FriendModel) (err error)
	// 删除ownerUserID指定的好友
	Delete(ctx context.Context, ownerUserID string, friendUserIDs []string) (err error)
	// 更新ownerUserID单个好友信息 更新零值
	UpdateByMap(ctx context.Context, ownerUserID string, friendUserID string, args map[string]interface{}) (err error)
	// 更新好友信息的非零值
	Update(ctx context.Context, friends []*FriendModel) (err error)
	// 更新好友备注(也支持零值 )
	UpdateRemark(ctx context.Context, ownerUserID, friendUserID, remark string) (err error)
	// 获取单个好友信息,如没找到 返回错误
	Take(ctx context.Context, ownerUserID, friendUserID string) (friend *FriendModel, err error)
	// 查找好友关系,如果是双向关系,则都返回
	FindUserState(ctx context.Context, userID1, userID2 string) (friends []*FriendModel, err error)
	// 获取 owner指定的好友列表 如果有friendUserIDs不存在,也不返回错误
	FindFriends(ctx context.Context, ownerUserID string, friendUserIDs []string) (friends []*FriendModel, err error)
	// 获取哪些人添加了friendUserID 如果有ownerUserIDs不存在,也不返回错误
	FindReversalFriends(
		ctx context.Context,
		friendUserID string,
		ownerUserIDs []string,
	) (friends []*FriendModel, err error)
	// 获取ownerUserID好友列表 支持翻页
	FindOwnerFriends(
		ctx context.Context,
		ownerUserID string,
		pageNumber, showNumber int32,
	) (friends []*FriendModel, total int64, err error)
	// 获取哪些人添加了friendUserID 支持翻页
	FindInWhoseFriends(
		ctx context.Context,
		friendUserID string,
		pageNumber, showNumber int32,
	) (friends []*FriendModel, total int64, err error)
	// 获取好友UserID列表
	FindFriendUserIDs(ctx context.Context, ownerUserID string) (friendUserIDs []string, err error)
	NewTx(tx any) FriendModelInterface
}

type FriendRequestModel

type FriendRequestModel struct {
	FromUserID    string    `gorm:"column:from_user_id;primary_key;size:64"`
	ToUserID      string    `gorm:"column:to_user_id;primary_key;size:64"`
	HandleResult  int32     `gorm:"column:handle_result"`
	ReqMsg        string    `gorm:"column:req_msg;size:255"`
	CreateTime    time.Time `gorm:"column:create_time; autoCreateTime"`
	HandlerUserID string    `gorm:"column:handler_user_id;size:64"`
	HandleMsg     string    `gorm:"column:handle_msg;size:255"`
	HandleTime    time.Time `gorm:"column:handle_time"`
	Ex            string    `gorm:"column:ex;size:1024"`
}

func (FriendRequestModel) TableName

func (FriendRequestModel) TableName() string

type FriendRequestModelInterface

type FriendRequestModelInterface interface {
	// 插入多条记录
	Create(ctx context.Context, friendRequests []*FriendRequestModel) (err error)
	// 删除记录
	Delete(ctx context.Context, fromUserID, toUserID string) (err error)
	// 更新零值
	UpdateByMap(ctx context.Context, formUserID string, toUserID string, args map[string]interface{}) (err error)
	// 更新多条记录 (非零值)
	Update(ctx context.Context, friendRequest *FriendRequestModel) (err error)
	// 获取来指定用户的好友申请  未找到 不返回错误
	Find(ctx context.Context, fromUserID, toUserID string) (friendRequest *FriendRequestModel, err error)
	Take(ctx context.Context, fromUserID, toUserID string) (friendRequest *FriendRequestModel, err error)
	// 获取toUserID收到的好友申请列表
	FindToUserID(
		ctx context.Context,
		toUserID string,
		pageNumber, showNumber int32,
	) (friendRequests []*FriendRequestModel, total int64, err error)
	// 获取fromUserID发出去的好友申请列表
	FindFromUserID(
		ctx context.Context,
		fromUserID string,
		pageNumber, showNumber int32,
	) (friendRequests []*FriendRequestModel, total int64, err error)
	FindBothFriendRequests(ctx context.Context, fromUserID, toUserID string) (friends []*FriendRequestModel, err error)
	NewTx(tx any) FriendRequestModelInterface
}

type GroupMemberModel

type GroupMemberModel struct {
	GroupID        string    `gorm:"column:group_id;primary_key;size:64"`
	UserID         string    `gorm:"column:user_id;primary_key;size:64"`
	Nickname       string    `gorm:"column:nickname;size:255"`
	FaceURL        string    `gorm:"column:user_group_face_url;size:255"`
	RoleLevel      int32     `gorm:"column:role_level"`
	JoinTime       time.Time `gorm:"column:join_time"`
	JoinSource     int32     `gorm:"column:join_source"`
	InviterUserID  string    `gorm:"column:inviter_user_id;size:64"`
	OperatorUserID string    `gorm:"column:operator_user_id;size:64"`
	MuteEndTime    time.Time `gorm:"column:mute_end_time"`
	Ex             string    `gorm:"column:ex;size:1024"`
}

func (GroupMemberModel) TableName

func (GroupMemberModel) TableName() string

type GroupMemberModelInterface

type GroupMemberModelInterface interface {
	NewTx(tx any) GroupMemberModelInterface
	Create(ctx context.Context, groupMembers []*GroupMemberModel) (err error)
	Delete(ctx context.Context, groupID string, userIDs []string) (err error)
	DeleteGroup(ctx context.Context, groupIDs []string) (err error)
	Update(ctx context.Context, groupID string, userID string, data map[string]any) (err error)
	UpdateRoleLevel(ctx context.Context, groupID string, userID string, roleLevel int32) (rowsAffected int64, err error)
	Find(
		ctx context.Context,
		groupIDs []string,
		userIDs []string,
		roleLevels []int32,
	) (groupMembers []*GroupMemberModel, err error)
	FindMemberUserID(ctx context.Context, groupID string) (userIDs []string, err error)
	Take(ctx context.Context, groupID string, userID string) (groupMember *GroupMemberModel, err error)
	TakeOwner(ctx context.Context, groupID string) (groupMember *GroupMemberModel, err error)
	SearchMember(
		ctx context.Context,
		keyword string,
		groupIDs []string,
		userIDs []string,
		roleLevels []int32,
		pageNumber, showNumber int32,
	) (total uint32, groupList []*GroupMemberModel, err error)
	MapGroupMemberNum(ctx context.Context, groupIDs []string) (count map[string]uint32, err error)
	FindJoinUserID(ctx context.Context, groupIDs []string) (groupUsers map[string][]string, err error)
	FindUserJoinedGroupID(ctx context.Context, userID string) (groupIDs []string, err error)
	TakeGroupMemberNum(ctx context.Context, groupID string) (count int64, err error)
	FindUsersJoinedGroupID(ctx context.Context, userIDs []string) (map[string][]string, error)
	FindUserManagedGroupID(ctx context.Context, userID string) (groupIDs []string, err error)
}

type GroupModel

type GroupModel struct {
	GroupID                string    `gorm:"column:group_id;primary_key;size:64"                 json:"groupID"           binding:"required"`
	GroupName              string    `gorm:"column:name;size:255"                                json:"groupName"`
	Notification           string    `gorm:"column:notification;size:255"                        json:"notification"`
	Introduction           string    `gorm:"column:introduction;size:255"                        json:"introduction"`
	FaceURL                string    `gorm:"column:face_url;size:255"                            json:"faceURL"`
	CreateTime             time.Time `gorm:"column:create_time;index:create_time;autoCreateTime"`
	Ex                     string    `gorm:"column:ex"                                           json:"ex;size:1024"`
	Status                 int32     `gorm:"column:status"`
	CreatorUserID          string    `gorm:"column:creator_user_id;size:64"`
	GroupType              int32     `gorm:"column:group_type"`
	NeedVerification       int32     `gorm:"column:need_verification"`
	LookMemberInfo         int32     `gorm:"column:look_member_info"                             json:"lookMemberInfo"`
	ApplyMemberFriend      int32     `gorm:"column:apply_member_friend"                          json:"applyMemberFriend"`
	NotificationUpdateTime time.Time `gorm:"column:notification_update_time"`
	NotificationUserID     string    `gorm:"column:notification_user_id;size:64"`
}

func (GroupModel) TableName

func (GroupModel) TableName() string

type GroupModelInterface

type GroupModelInterface interface {
	NewTx(tx any) GroupModelInterface
	Create(ctx context.Context, groups []*GroupModel) (err error)
	UpdateMap(ctx context.Context, groupID string, args map[string]interface{}) (err error)
	UpdateStatus(ctx context.Context, groupID string, status int32) (err error)
	Find(ctx context.Context, groupIDs []string) (groups []*GroupModel, err error)
	FindNotDismissedGroup(ctx context.Context, groupIDs []string) (groups []*GroupModel, err error)
	Take(ctx context.Context, groupID string) (group *GroupModel, err error)
	Search(
		ctx context.Context,
		keyword string,
		pageNumber, showNumber int32,
	) (total uint32, groups []*GroupModel, err error)
	GetGroupIDsByGroupType(ctx context.Context, groupType int) (groupIDs []string, err error)
	// 获取群总数
	CountTotal(ctx context.Context, before *time.Time) (count int64, err error)
	// 获取范围内群增量
	CountRangeEverydayTotal(ctx context.Context, start time.Time, end time.Time) (map[string]int64, error)
}

type GroupRequestModel

type GroupRequestModel struct {
	UserID        string    `gorm:"column:user_id;primary_key;size:64"`
	GroupID       string    `gorm:"column:group_id;primary_key;size:64"`
	HandleResult  int32     `gorm:"column:handle_result"`
	ReqMsg        string    `gorm:"column:req_msg;size:1024"`
	HandledMsg    string    `gorm:"column:handle_msg;size:1024"`
	ReqTime       time.Time `gorm:"column:req_time"`
	HandleUserID  string    `gorm:"column:handle_user_id;size:64"`
	HandledTime   time.Time `gorm:"column:handle_time"`
	JoinSource    int32     `gorm:"column:join_source"`
	InviterUserID string    `gorm:"column:inviter_user_id;size:64"`
	Ex            string    `gorm:"column:ex;size:1024"`
}

func (GroupRequestModel) TableName

func (GroupRequestModel) TableName() string

type GroupRequestModelInterface

type GroupRequestModelInterface interface {
	NewTx(tx any) GroupRequestModelInterface
	Create(ctx context.Context, groupRequests []*GroupRequestModel) (err error)
	Delete(ctx context.Context, groupID string, userID string) (err error)
	UpdateHandler(ctx context.Context, groupID string, userID string, handledMsg string, handleResult int32) (err error)
	Take(ctx context.Context, groupID string, userID string) (groupRequest *GroupRequestModel, err error)
	FindGroupRequests(ctx context.Context, groupID string, userIDs []string) (int64, []*GroupRequestModel, error)
	Page(
		ctx context.Context,
		userID string,
		pageNumber, showNumber int32,
	) (total uint32, groups []*GroupRequestModel, err error)
	PageGroup(
		ctx context.Context,
		groupIDs []string,
		pageNumber, showNumber int32,
	) (total uint32, groups []*GroupRequestModel, err error)
}

type GroupSimpleUserID

type GroupSimpleUserID struct {
	Hash      uint64
	MemberNum uint32
}

type Log added in v3.3.2

type Log struct {
	LogID      string    `gorm:"column:log_id;primary_key;type:char(64)"`
	Platform   string    `gorm:"column:platform;type:varchar(32)"`
	UserID     string    `gorm:"column:user_id;type:char(64)"`
	CreateTime time.Time `gorm:"index:,sort:desc"`
	Url        string    `gorm:"column:url;type varchar(255)"`
	FileName   string    `gorm:"column:filename;type varchar(255)"`
	SystemType string    `gorm:"column:system_type;type varchar(255)"`
	Version    string    `gorm:"column:version;type varchar(255)"`
	Ex         string    `gorm:"column:ex;type varchar(255)"`
}

type LogInterface added in v3.3.2

type LogInterface interface {
	Create(ctx context.Context, log []*Log) error
	Search(ctx context.Context, keyword string, start time.Time, end time.Time, pageNumber int32, showNumber int32) (uint32, []*Log, error)
	Delete(ctx context.Context, logID []string, userID string) error
	Get(ctx context.Context, logIDs []string, userID string) ([]*Log, error)
}

type ObjectInfoModelInterface

type ObjectInfoModelInterface interface {
	NewTx(tx any) ObjectInfoModelInterface
	SetObject(ctx context.Context, obj *ObjectModel) error
	Take(ctx context.Context, name string) (*ObjectModel, error)
}

type ObjectModel

type ObjectModel struct {
	Name        string    `gorm:"column:name;primary_key"`
	UserID      string    `gorm:"column:user_id"`
	Hash        string    `gorm:"column:hash"`
	Key         string    `gorm:"column:key"`
	Size        int64     `gorm:"column:size"`
	ContentType string    `gorm:"column:content_type"`
	Cause       string    `gorm:"column:cause"`
	CreateTime  time.Time `gorm:"column:create_time"`
}

func (ObjectModel) TableName

func (ObjectModel) TableName() string

type UserModel

type UserModel struct {
	UserID           string    `gorm:"column:user_id;primary_key;size:64"`
	Nickname         string    `gorm:"column:name;size:255"`
	FaceURL          string    `gorm:"column:face_url;size:255"`
	Ex               string    `gorm:"column:ex;size:1024"`
	CreateTime       time.Time `gorm:"column:create_time;index:create_time;autoCreateTime"`
	AppMangerLevel   int32     `gorm:"column:app_manger_level;default:1"`
	GlobalRecvMsgOpt int32     `gorm:"column:global_recv_msg_opt"`
}

func (*UserModel) GetEx

func (u *UserModel) GetEx() string

func (*UserModel) GetFaceURL

func (u *UserModel) GetFaceURL() string

func (*UserModel) GetNickname

func (u *UserModel) GetNickname() string

func (*UserModel) GetUserID

func (u *UserModel) GetUserID() string

func (UserModel) TableName

func (UserModel) TableName() string

type UserModelInterface

type UserModelInterface interface {
	Create(ctx context.Context, users []*UserModel) (err error)
	UpdateByMap(ctx context.Context, userID string, args map[string]interface{}) (err error)
	Update(ctx context.Context, user *UserModel) (err error)
	// 获取指定用户信息  不存在,也不返回错误
	Find(ctx context.Context, userIDs []string) (users []*UserModel, err error)
	// 获取某个用户信息  不存在,则返回错误
	Take(ctx context.Context, userID string) (user *UserModel, err error)
	// 获取用户信息 不存在,不返回错误
	Page(ctx context.Context, pageNumber, showNumber int32) (users []*UserModel, count int64, err error)
	GetAllUserID(ctx context.Context, pageNumber, showNumber int32) (userIDs []string, err error)
	GetUserGlobalRecvMsgOpt(ctx context.Context, userID string) (opt int, err error)
	// 获取用户总数
	CountTotal(ctx context.Context, before *time.Time) (count int64, err error)
	// 获取范围内用户增量
	CountRangeEverydayTotal(ctx context.Context, start time.Time, end time.Time) (map[string]int64, error)
}

Jump to

Keyboard shortcuts

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