fix: export table file

This commit is contained in:
2024-08-28 18:22:11 +08:00
parent 16eb4e1041
commit f62d7d7d11
3 changed files with 25 additions and 18 deletions

View File

@@ -58,29 +58,36 @@ func (s *BarProcessor) Execute(data any) (any, error) {
}
//duration = params.Duration
// 查询数据
var unitNum int = 0
now := time.Now()
end := time.Date(now.Year(), now.Month(), now.Day(), now.Hour(), 0, 0, 0, now.Location())
start := end.Add(-time.Duration(params.Duration) * time.Hour)
var startTime, endTime int64
switch params.TimeUnit {
case "second":
unitNum = 1
// 格式化时间戳为秒级
startTime = start.Unix()
endTime = end.Unix()
case "milli":
unitNum = 1000
// 格式化时间戳为毫秒级
startTime = start.UnixMilli()
endTime = end.UnixMilli()
case "micro":
unitNum = 1000000
// 格式化时间戳为微妙级
startTime = start.UnixMicro()
endTime = end.UnixMicro()
default:
return nil, fmt.Errorf("error input parameter")
}
var query string
if params.Extras != "" {
query = fmt.Sprintf("SELECT %s FROM `%s` WHERE `%s` >= UNIX_TIMESTAMP(NOW() - INTERVAL 2*%d HOUR) * %d AND `%s` < UNIX_TIMESTAMP(NOW() - INTERVAL %d HOUR) * %d AND %s",
params.Columns, params.TableName, params.TimeCol, params.Duration, unitNum, params.TimeCol, params.Duration, unitNum, params.Extras)
query = fmt.Sprintf("SELECT %s FROM `%s` WHERE `%s` >= %d AND `%s` < %d AND %s",
params.Columns, params.TableName, params.TimeCol, startTime, params.TimeCol, endTime, params.Extras)
} else {
query = fmt.Sprintf("SELECT %s FROM `%s` WHERE `%s` >= UNIX_TIMESTAMP(NOW() - INTERVAL 2*%d HOUR) * %d AND `%s` < UNIX_TIMESTAMP(NOW() - INTERVAL %d HOUR) * %d",
params.Columns, params.TableName, params.TimeCol, params.Duration, unitNum, params.TimeCol, params.Duration, unitNum)
query = fmt.Sprintf("SELECT %s FROM `%s` WHERE `%s` >= %d AND `%s` < %d",
params.Columns, params.TableName, params.TimeCol, startTime, params.TimeCol, endTime)
}
//log.Trace("query:", query)
//filePath := fmt.Sprintf("%s/%s_export_%s.csv", params.FilePath, params.TableName, time.Now().Format("20060102150405"))
log.Trace("query:", query)
filePath := fmt.Sprintf("%s/%s_export_%s.csv", params.FilePath, params.TableName, time.Now().Format("20060102150405"))
affected, err := s.exportData(query, filePath)
if err != nil {