From 016812baa621d9962b0152e9829763f953817b5e Mon Sep 17 00:00:00 2001 From: CaIon Date: Mon, 23 Feb 2026 14:11:11 +0800 Subject: [PATCH] feat: implement caching for channel retrieval --- model/log.go | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/model/log.go b/model/log.go index 1f521b1e5..2d4782fa5 100644 --- a/model/log.go +++ b/model/log.go @@ -295,8 +295,24 @@ func GetAllLogs(logType int, startTimestamp int64, endTimestamp int64, modelName Id int `gorm:"column:id"` Name string `gorm:"column:name"` } - if err = DB.Table("channels").Select("id, name").Where("id IN ?", channelIds.Items()).Find(&channels).Error; err != nil { - return logs, total, err + if common.MemoryCacheEnabled { + // Cache get channel + for _, channelId := range channelIds.Items() { + if cacheChannel, err := CacheGetChannel(channelId); err == nil { + channels = append(channels, struct { + Id int `gorm:"column:id"` + Name string `gorm:"column:name"` + }{ + Id: channelId, + Name: cacheChannel.Name, + }) + } + } + } else { + // Bulk query channels from DB + if err = DB.Table("channels").Select("id, name").Where("id IN ?", channelIds.Items()).Find(&channels).Error; err != nil { + return logs, total, err + } } channelMap := make(map[int]string, len(channels)) for _, channel := range channels {