Documentation
¶
Index ¶
- Constants
- Variables
- func AutoMigrate() error
- func CloseDB() error
- func CloseRedis() error
- func GetDB() *gorm.DB
- func GetRedis() *redis.Client
- func InitDB(cfg *config.DatabaseConfig) error
- func InitRedis(cfg *config.RedisConfig) error
- type FriendshipRepository
- func (r *FriendshipRepository) CheckFriendship(userID, friendID uint) (bool, error)
- func (r *FriendshipRepository) CreateFriendship(userID, friendID uint) error
- func (r *FriendshipRepository) DeleteFriendship(userID, friendID uint) error
- func (r *FriendshipRepository) GetFriendRequest(fromID, toID uint) (*model.FriendRequest, error)
- func (r *FriendshipRepository) GetFriendRequestByID(requestID uint) (*model.FriendRequest, error)
- func (r *FriendshipRepository) GetFriendsList(userID uint, page, pageSize int) ([]*model.Friendship, error)
- func (r *FriendshipRepository) GetFriendship(userID, friendID uint) (*model.Friendship, error)
- func (r *FriendshipRepository) GetMutualFriends(userID1, userID2 uint) ([]*model.UserProfile, error)
- func (r *FriendshipRepository) GetPendingFriendRequests(userID uint) ([]*model.FriendRequest, error)
- func (r *FriendshipRepository) SendFriendRequest(req *model.FriendRequest) error
- func (r *FriendshipRepository) UpdateFriendRequestStatus(requestID uint, status string) error
- type UserCacheRepository
- func (r *UserCacheRepository) AddUserBlocking(ctx context.Context, userID, blockedUserID uint) error
- func (r *UserCacheRepository) CheckUserBlocked(ctx context.Context, userID, targetUserID uint) (bool, bool, error)
- func (r *UserCacheRepository) DeleteBlockedUsers(ctx context.Context, userID uint) error
- func (r *UserCacheRepository) DeleteFriendsList(ctx context.Context, userID uint) error
- func (r *UserCacheRepository) DeleteUserProfile(ctx context.Context, userID uint) error
- func (r *UserCacheRepository) GetBlockedUsers(ctx context.Context, userID uint) ([]*model.BlockedUser, error)
- func (r *UserCacheRepository) GetFriendsList(ctx context.Context, userID uint) ([]*model.Friendship, error)
- func (r *UserCacheRepository) GetSearchResult(ctx context.Context, keyword string) ([]*model.UserProfile, error)
- func (r *UserCacheRepository) GetUserOnlineStatus(ctx context.Context, userID uint) (isOnline bool, lastSeen time.Time, err error)
- func (r *UserCacheRepository) GetUserProfile(ctx context.Context, userID uint) (*model.UserProfile, error)
- func (r *UserCacheRepository) GetUserSettings(ctx context.Context, userID uint) (*model.UserSetting, error)
- func (r *UserCacheRepository) InvalidateFriendshipCache(ctx context.Context, userID1, userID2 uint) error
- func (r *UserCacheRepository) InvalidateUserCache(ctx context.Context, userID uint) error
- func (r *UserCacheRepository) InvalidateUserSettings(ctx context.Context, userID uint) error
- func (r *UserCacheRepository) RemoveUserBlocking(ctx context.Context, userID, blockedUserID uint) error
- func (r *UserCacheRepository) SetBlockedUsers(ctx context.Context, userID uint, blockedUsers []*model.BlockedUser) error
- func (r *UserCacheRepository) SetFriendsList(ctx context.Context, userID uint, friends []*model.Friendship) error
- func (r *UserCacheRepository) SetSearchResult(ctx context.Context, keyword string, users []*model.UserProfile) error
- func (r *UserCacheRepository) SetUserBlocking(ctx context.Context, userID uint, blockedUserIDs []uint) error
- func (r *UserCacheRepository) SetUserOnlineStatus(ctx context.Context, userID uint, isOnline bool, lastSeen time.Time) error
- func (r *UserCacheRepository) SetUserProfile(ctx context.Context, userID uint, profile *model.UserProfile) error
- func (r *UserCacheRepository) SetUserSettings(ctx context.Context, userID uint, settings *model.UserSetting) error
- type UserRepository
- func (r *UserRepository) BlockUser(userID, blockedID uint, reason string) error
- func (r *UserRepository) CreateUserProfile(profile *model.UserProfile) error
- func (r *UserRepository) GetBlockedUsers(userID uint, limit, offset int) ([]*model.UserProfile, int64, error)
- func (r *UserRepository) GetUserByID(userID uint) (*model.User, error)
- func (r *UserRepository) GetUserProfileByID(userID uint) (*model.UserProfile, error)
- func (r *UserRepository) GetUserSettings(userID uint) (*model.UserSetting, error)
- func (r *UserRepository) GetUsersByIDs(userIDs []uint) ([]*model.User, error)
- func (r *UserRepository) IsBlockedBy(userID, byUserID uint) (bool, error)
- func (r *UserRepository) IsUserBlocked(userID, targetUserID uint) (bool, error)
- func (r *UserRepository) SearchUsersByKeyword(keyword string, limit int) ([]*model.UserProfile, error)
- func (r *UserRepository) SearchUsersByKeywordWithPagination(keyword string, limit, offset int, currentUserID uint) ([]*model.UserProfile, int64, error)
- func (r *UserRepository) UnblockUser(userID, blockedID uint) error
- func (r *UserRepository) UpdateUserProfile(profile *model.UserProfile) error
- func (r *UserRepository) UpdateUserSettings(settings *model.UserSetting) error
- func (r *UserRepository) UpdateUserStatus(userID uint, status string, lastSeenAt *time.Time) error
Constants ¶
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 ¶
var DB *gorm.DB
DB 数据库实例
var RedisClient *redis.Client
RedisClient Redis客户端实例
Functions ¶
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 (*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 ¶
UpdateUserStatus 更新用户在线状态