feat(schedule): add course table screens and navigation
Add complete schedule functionality including: - Schedule screen with weekly course table view - Course detail screen with transparent modal presentation - New ScheduleStack navigator integrated into main tab bar - Schedule service for API interactions - Type definitions for course entities Also includes bug fixes for group invite/request handlers to include required groupId parameter.
This commit is contained in:
41
internal/cache/keys.go
vendored
41
internal/cache/keys.go
vendored
@@ -26,6 +26,13 @@ const (
|
||||
// 用户相关
|
||||
PrefixUserInfo = "users:info"
|
||||
PrefixUserMe = "users:me"
|
||||
|
||||
// 消息缓存相关
|
||||
keyPrefixMsgHash = "msg_hash" // 消息详情 Hash
|
||||
keyPrefixMsgIndex = "msg_index" // 消息索引 Sorted Set
|
||||
keyPrefixMsgCount = "msg_count" // 消息计数
|
||||
keyPrefixMsgSeq = "msg_seq" // Seq 计数器
|
||||
keyPrefixMsgPage = "msg_page" // 分页缓存
|
||||
)
|
||||
|
||||
// PostListKey 生成帖子列表缓存键
|
||||
@@ -145,3 +152,37 @@ func InvalidateUserInfo(cache Cache, userID string) {
|
||||
cache.Delete(UserInfoKey(userID))
|
||||
cache.Delete(UserMeKey(userID))
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// 消息缓存 Key 生成函数
|
||||
// ============================================================
|
||||
|
||||
// MessageHashKey 消息详情 Hash key
|
||||
func MessageHashKey(convID string) string {
|
||||
return fmt.Sprintf("%s:%s", keyPrefixMsgHash, convID)
|
||||
}
|
||||
|
||||
// MessageIndexKey 消息索引 Sorted Set key
|
||||
func MessageIndexKey(convID string) string {
|
||||
return fmt.Sprintf("%s:%s", keyPrefixMsgIndex, convID)
|
||||
}
|
||||
|
||||
// MessageCountKey 消息计数 key
|
||||
func MessageCountKey(convID string) string {
|
||||
return fmt.Sprintf("%s:%s", keyPrefixMsgCount, convID)
|
||||
}
|
||||
|
||||
// MessageSeqKey Seq 计数器 key
|
||||
func MessageSeqKey(convID string) string {
|
||||
return fmt.Sprintf("%s:%s", keyPrefixMsgSeq, convID)
|
||||
}
|
||||
|
||||
// MessagePageKey 分页缓存 key
|
||||
func MessagePageKey(convID string, page, pageSize int) string {
|
||||
return fmt.Sprintf("%s:%s:%d:%d", keyPrefixMsgPage, convID, page, pageSize)
|
||||
}
|
||||
|
||||
// InvalidateMessagePages 失效会话消息分页缓存
|
||||
func InvalidateMessagePages(cache Cache, conversationID string) {
|
||||
cache.DeleteByPrefix(fmt.Sprintf("%s:%s:", keyPrefixMsgPage, conversationID))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user