Jelajahi Sumber

🐛 fix(log): optimize channel ID collection by using a map to prevent duplicates

CaIon 6 bulan lalu
induk
melakukan
8978dc7a8b
1 mengubah file dengan 7 tambahan dan 2 penghapusan
  1. 7 2
      model/log.go

+ 7 - 2
model/log.go

@@ -227,13 +227,18 @@ func GetAllLogs(logType int, startTimestamp int64, endTimestamp int64, modelName
 		return nil, 0, err
 	}
 
-	channelIds := make([]int, 0)
+	channelIdsMap := make(map[int]struct{})
 	channelMap := make(map[int]string)
 	for _, log := range logs {
 		if log.ChannelId != 0 {
-			channelIds = append(channelIds, log.ChannelId)
+			channelIdsMap[log.ChannelId] = struct{}{}
 		}
 	}
+
+	channelIds := make([]int, 0, len(channelIdsMap))
+	for channelId := range channelIdsMap {
+		channelIds = append(channelIds, channelId)
+	}
 	if len(channelIds) > 0 {
 		var channels []struct {
 			Id   int    `gorm:"column:id"`