You've already forked VptPassiveAdapter
Initial
This commit is contained in:
41
util/file_filter.go
Normal file
41
util/file_filter.go
Normal file
@ -0,0 +1,41 @@
|
||||
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
|
||||
}
|
Reference in New Issue
Block a user