VptPassiveAdapter/util/file_filter.go
2025-02-07 22:58:01 +08:00

42 lines
1010 B
Go

package util
import (
"ZhenTuLocalPassiveAdapter/dto"
"sort"
"time"
)
func FilterAndSortFiles(fileList []dto.File, beginDt, endDt time.Time) []dto.File {
var filteredFiles []dto.File
for _, file := range fileList {
fileStartTime := file.StartTime
nextFileStartTime := file.EndTime
// 如果当前文件还没有开始
if beginDt.After(fileStartTime) {
// 没有下一个文件的情况下,就是最后一个文件
if nextFileStartTime.IsZero() {
continue
}
// 但是下一个文件已经开始
if beginDt.Before(nextFileStartTime) {
filteredFiles = append(filteredFiles, file)
}
// 已经开始,但是也已经结束了
} else if fileStartTime.After(endDt) {
continue
// 已经开始,但未结束
} else {
filteredFiles = append(filteredFiles, file)
}
}
// 按照 GetDiffMs 的值降序排序
sort.Slice(filteredFiles, func(i, j int) bool {
return filteredFiles[i].GetDiffMs() > filteredFiles[j].GetDiffMs()
})
return filteredFiles
}