repository

package
v0.0.0-...-1764b58 Latest Latest
Warning

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

Go to latest
Published: Sep 7, 2025 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// 用户信息缓存键前缀
	UserProfileKey = "user:profile:%d" // user:profile:123
	UserOnlineKey  = "user:online:%d"  // user:online:123
	UserSettingKey = "user:setting:%d" // user:setting:123

	// 好友关系缓存键前缀
	FriendsListKey   = "user:friends:%d"    // user:friends:123
	BlockedUsersKey  = "user:blocked:%d"    // user:blocked:123
	FriendRequestKey = "user:friend_req:%d" // user:friend_req:123

	// 搜索缓存键前缀
	SearchResultKey = "search:users:%s" // search:users:keyword

	// 缓存过期时间
	UserCacheTTL    = 30 * time.Minute // 用户信息缓存30分钟
	OnlineCacheTTL  = 5 * time.Minute  // 在线状态缓存5分钟
	FriendsCacheTTL = 15 * time.Minute // 好友列表缓存15分钟
	SearchCacheTTL  = 10 * time.Minute // 搜索结果缓存10分钟
)

RedisKeys Redis键名常量

Variables

View Source
var DB *gorm.DB

DB 数据库实例

View Source
var RedisClient *redis.Client

RedisClient Redis客户端实例

Functions

func AutoMigrate

func AutoMigrate() error

AutoMigrate 自动迁移数据表

func CloseDB

func CloseDB() error

CloseDB 关闭数据库连接

func CloseRedis

func CloseRedis() error

CloseRedis 关闭Redis连接

func GetDB

func GetDB() *gorm.DB

GetDB 获取数据库实例

func GetRedis

func GetRedis() *redis.Client

GetRedis 获取Redis客户端实例

func InitDB

func InitDB(cfg *config.DatabaseConfig) error

InitDB 初始化数据库连接

func InitRedis

func InitRedis(cfg *config.RedisConfig) error

InitRedis 初始化Redis连接

Types

type FriendshipRepository

type FriendshipRepository struct {
	// contains filtered or unexported fields
}

FriendshipRepository 好友关系数据访问层

func NewFriendshipRepository

func NewFriendshipRepository() *FriendshipRepository

NewFriendshipRepository 创建好友关系repository

func (*FriendshipRepository) CheckFriendship

func (r *FriendshipRepository) CheckFriendship(userID, friendID uint) (bool, error)

CheckFriendship 检查是否为好友关系

func (*FriendshipRepository) CreateFriendship

func (r *FriendshipRepository) CreateFriendship(userID, friendID uint) error

CreateFriendship 创建好友关系

func (*FriendshipRepository) DeleteFriendship

func (r *FriendshipRepository) DeleteFriendship(userID, friendID uint) error

func (*FriendshipRepository) GetFriendRequest

func (r *FriendshipRepository) GetFriendRequest(fromID, toID uint) (*model.FriendRequest, error)

GetFriendRequest 获取好友请求

func (*FriendshipRepository) GetFriendRequestByID

func (r *FriendshipRepository) GetFriendRequestByID(requestID uint) (*model.FriendRequest, error)

GetFriendRequestByID 根据ID获取好友请求

func (*FriendshipRepository) GetFriendsList

func (r *FriendshipRepository) GetFriendsList(userID uint, page, pageSize int) ([]*model.Friendship, error)

GetFriendsList 获取好友列表

func (*FriendshipRepository) GetFriendship

func (r *FriendshipRepository) GetFriendship(userID, friendID uint) (*model.Friendship, error)

GetFriendship 获取好友关系

func (*FriendshipRepository) GetMutualFriends

func (r *FriendshipRepository) GetMutualFriends(userID1, userID2 uint) ([]*model.UserProfile, error)

GetMutualFriends 获取共同好友

func (*FriendshipRepository) GetPendingFriendRequests

func (r *FriendshipRepository) GetPendingFriendRequests(userID uint) ([]*model.FriendRequest, error)

GetPendingFriendRequests 获取待处理的好友请求

func (*FriendshipRepository) SendFriendRequest

func (r *FriendshipRepository) SendFriendRequest(req *model.FriendRequest) error

SendFriendRequest 发送好友请求

func (*FriendshipRepository) UpdateFriendRequestStatus

func (r *FriendshipRepository) UpdateFriendRequestStatus(requestID uint, status string) error

UpdateFriendRequestStatus 更新好友请求状态

type UserCacheRepository

type UserCacheRepository struct {
	// contains filtered or unexported fields
}

UserCacheRepository 用户缓存仓储

func NewUserCacheRepository

func NewUserCacheRepository(redis *redis.Client) *UserCacheRepository

NewUserCacheRepository 创建用户缓存仓储实例

func (*UserCacheRepository) AddUserBlocking

func (r *UserCacheRepository) AddUserBlocking(ctx context.Context, userID, blockedUserID uint) error

AddUserBlocking 添加单个屏蔽关系到缓存

func (*UserCacheRepository) CheckUserBlocked

func (r *UserCacheRepository) CheckUserBlocked(ctx context.Context, userID, targetUserID uint) (bool, bool, error)

CheckUserBlocked 从缓存检查用户是否被屏蔽

func (*UserCacheRepository) DeleteBlockedUsers

func (r *UserCacheRepository) DeleteBlockedUsers(ctx context.Context, userID uint) error

DeleteBlockedUsers 删除屏蔽用户列表缓存

func (*UserCacheRepository) DeleteFriendsList

func (r *UserCacheRepository) DeleteFriendsList(ctx context.Context, userID uint) error

DeleteFriendsList 删除好友列表缓存

func (*UserCacheRepository) DeleteUserProfile

func (r *UserCacheRepository) DeleteUserProfile(ctx context.Context, userID uint) error

DeleteUserProfile 删除用户资料缓存

func (*UserCacheRepository) GetBlockedUsers

func (r *UserCacheRepository) GetBlockedUsers(ctx context.Context, userID uint) ([]*model.BlockedUser, error)

GetBlockedUsers 获取缓存的屏蔽用户列表

func (*UserCacheRepository) GetFriendsList

func (r *UserCacheRepository) GetFriendsList(ctx context.Context, userID uint) ([]*model.Friendship, error)

GetFriendsList 获取缓存的好友列表

func (*UserCacheRepository) GetSearchResult

func (r *UserCacheRepository) GetSearchResult(ctx context.Context, keyword string) ([]*model.UserProfile, error)

GetSearchResult 获取缓存的搜索结果

func (*UserCacheRepository) GetUserOnlineStatus

func (r *UserCacheRepository) GetUserOnlineStatus(ctx context.Context, userID uint) (isOnline bool, lastSeen time.Time, err error)

GetUserOnlineStatus 获取用户在线状态

func (*UserCacheRepository) GetUserProfile

func (r *UserCacheRepository) GetUserProfile(ctx context.Context, userID uint) (*model.UserProfile, error)

GetUserProfile 获取缓存的用户资料

func (*UserCacheRepository) GetUserSettings

func (r *UserCacheRepository) GetUserSettings(ctx context.Context, userID uint) (*model.UserSetting, error)

GetUserSettings 从缓存获取用户设置

func (*UserCacheRepository) InvalidateFriendshipCache

func (r *UserCacheRepository) InvalidateFriendshipCache(ctx context.Context, userID1, userID2 uint) error

InvalidateFriendshipCache 使好友关系缓存失效

func (*UserCacheRepository) InvalidateUserCache

func (r *UserCacheRepository) InvalidateUserCache(ctx context.Context, userID uint) error

InvalidateUserCache 使用户相关的所有缓存失效

func (*UserCacheRepository) InvalidateUserSettings

func (r *UserCacheRepository) InvalidateUserSettings(ctx context.Context, userID uint) error

InvalidateUserSettings 使用户设置缓存失效

func (*UserCacheRepository) RemoveUserBlocking

func (r *UserCacheRepository) RemoveUserBlocking(ctx context.Context, userID, blockedUserID uint) error

RemoveUserBlocking 从缓存中移除屏蔽关系

func (*UserCacheRepository) SetBlockedUsers

func (r *UserCacheRepository) SetBlockedUsers(ctx context.Context, userID uint, blockedUsers []*model.BlockedUser) error

SetBlockedUsers 缓存屏蔽用户列表

func (*UserCacheRepository) SetFriendsList

func (r *UserCacheRepository) SetFriendsList(ctx context.Context, userID uint, friends []*model.Friendship) error

SetFriendsList 缓存好友列表

func (*UserCacheRepository) SetSearchResult

func (r *UserCacheRepository) SetSearchResult(ctx context.Context, keyword string, users []*model.UserProfile) error

SetSearchResult 缓存搜索结果

func (*UserCacheRepository) SetUserBlocking

func (r *UserCacheRepository) SetUserBlocking(ctx context.Context, userID uint, blockedUserIDs []uint) error

SetUserBlocking 缓存用户屏蔽关系

func (*UserCacheRepository) SetUserOnlineStatus

func (r *UserCacheRepository) SetUserOnlineStatus(ctx context.Context, userID uint, isOnline bool, lastSeen time.Time) error

SetUserOnlineStatus 设置用户在线状态

func (*UserCacheRepository) SetUserProfile

func (r *UserCacheRepository) SetUserProfile(ctx context.Context, userID uint, profile *model.UserProfile) error

SetUserProfile 缓存用户资料

func (*UserCacheRepository) SetUserSettings

func (r *UserCacheRepository) SetUserSettings(ctx context.Context, userID uint, settings *model.UserSetting) error

SetUserSettings 缓存用户设置

type UserRepository

type UserRepository struct {
	// contains filtered or unexported fields
}

UserRepository 用户数据访问层

func NewUserRepository

func NewUserRepository() *UserRepository

NewUserRepository 创建用户repository

func (*UserRepository) BlockUser

func (r *UserRepository) BlockUser(userID, blockedID uint, reason string) error

BlockUser 屏蔽用户

func (*UserRepository) CreateUserProfile

func (r *UserRepository) CreateUserProfile(profile *model.UserProfile) error

CreateUserProfile 创建用户资料

func (*UserRepository) GetBlockedUsers

func (r *UserRepository) GetBlockedUsers(userID uint, limit, offset int) ([]*model.UserProfile, int64, error)

GetBlockedUsers 获取用户屏蔽列表

func (*UserRepository) GetUserByID

func (r *UserRepository) GetUserByID(userID uint) (*model.User, error)

GetUserByID 根据ID获取用户基本信息

func (*UserRepository) GetUserProfileByID

func (r *UserRepository) GetUserProfileByID(userID uint) (*model.UserProfile, error)

GetUserProfileByID 根据用户ID获取用户资料

func (*UserRepository) GetUserSettings

func (r *UserRepository) GetUserSettings(userID uint) (*model.UserSetting, error)

GetUserSettings 获取用户设置

func (*UserRepository) GetUsersByIDs

func (r *UserRepository) GetUsersByIDs(userIDs []uint) ([]*model.User, error)

func (*UserRepository) IsBlockedBy

func (r *UserRepository) IsBlockedBy(userID, byUserID uint) (bool, error)

IsBlockedBy 检查是否被某用户屏蔽

func (*UserRepository) IsUserBlocked

func (r *UserRepository) IsUserBlocked(userID, targetUserID uint) (bool, error)

IsUserBlocked 检查用户是否被屏蔽

func (*UserRepository) SearchUsersByKeyword

func (r *UserRepository) SearchUsersByKeyword(keyword string, limit int) ([]*model.UserProfile, error)

SearchUsersByKeyword 根据关键字搜索用户

func (*UserRepository) SearchUsersByKeywordWithPagination

func (r *UserRepository) SearchUsersByKeywordWithPagination(keyword string, limit, offset int, currentUserID uint) ([]*model.UserProfile, int64, error)

SearchUsersByKeywordWithPagination 根据关键字搜索用户(带分页)

func (*UserRepository) UnblockUser

func (r *UserRepository) UnblockUser(userID, blockedID uint) error

UnblockUser 取消屏蔽用户

func (*UserRepository) UpdateUserProfile

func (r *UserRepository) UpdateUserProfile(profile *model.UserProfile) error

UpdateUserProfile 更新用户资料

func (*UserRepository) UpdateUserSettings

func (r *UserRepository) UpdateUserSettings(settings *model.UserSetting) error

UpdateUserSettings 更新用户设置

func (*UserRepository) UpdateUserStatus

func (r *UserRepository) UpdateUserStatus(userID uint, status string, lastSeenAt *time.Time) error

UpdateUserStatus 更新用户在线状态

Jump to

Keyboard shortcuts

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