From d8e7de9e183634e2e5b44ee2bc8e2d1f5852c7e6 Mon Sep 17 00:00:00 2001 From: simonzhangsz Date: Mon, 24 Jun 2024 17:24:55 +0800 Subject: [PATCH] fix: kpi_report issue --- .../network_data/repository/perf_kpi.impl.go | 43 ++++++++++++++++--- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/src/modules/network_data/repository/perf_kpi.impl.go b/src/modules/network_data/repository/perf_kpi.impl.go index fab63d06..94e2aa20 100644 --- a/src/modules/network_data/repository/perf_kpi.impl.go +++ b/src/modules/network_data/repository/perf_kpi.impl.go @@ -96,19 +96,47 @@ func (r *PerfKPIImpl) SelectKpiReport(query model.GoldKPIQuery, kpiIds []string) params = append(params, query.RmUID) } if query.NeType != "" { - conditions = append(conditions, "gk.ne_type = ?") - params = append(params, query.NeType) + //conditions = append(conditions, "gk.ne_type = ?") + // params = append(params, query.NeType) tableName += strings.ToLower(query.NeType) } - var dateTimeStr string = "CONCAT(gk.`date`, \" \", gk.start_time)" + + var dateStr1, dateStr2, timeStr1, timeStr2 string if query.StartTime != "" { - conditions = append(conditions, dateTimeStr+" >= ?") - params = append(params, query.StartTime) + dateStr1 = query.StartTime[:10] + timeStr1 = query.StartTime[11:] } if query.EndTime != "" { - conditions = append(conditions, dateTimeStr+" <= ?") - params = append(params, query.EndTime) + dateStr2 = query.EndTime[:10] + timeStr2 = query.EndTime[11:] } + if dateStr1 == dateStr2 && dateStr1 != "" { + conditions = append(conditions, "gk.`date` = ?") + params = append(params, dateStr1) + conditions = append(conditions, "gk.`start_time` >= ?") + params = append(params, timeStr1) + conditions = append(conditions, "gk.`start_time` <= ?") + params = append(params, timeStr2) + } else { + if dateStr1 != "" { + conditions = append(conditions, "(gk.`date` > ? OR (gk.`date` = ? AND gk.`start_time` >= ?))") + params = append(params, dateStr1, dateStr1, timeStr1) + } + if dateStr2 != "" { + conditions = append(conditions, "(gk.`date` < ? OR (gk.`date` = ? AND gk.`start_time` <= ?))") + params = append(params, dateStr2, dateStr2, timeStr2) + } + } + + // var dateTimeStr string = "CONCAT(gk.`date`, \" \", gk.start_time)" + // if query.StartTime != "" { + // conditions = append(conditions, dateTimeStr+" >= ?") + // params = append(params, query.StartTime) + // } + // if query.EndTime != "" { + // conditions = append(conditions, dateTimeStr+" <= ?") + // params = append(params, query.EndTime) + // } // 构建查询条件语句 whereSql := "" if len(conditions) > 0 { @@ -116,6 +144,7 @@ func (r *PerfKPIImpl) SelectKpiReport(query model.GoldKPIQuery, kpiIds []string) } // 查询字段列 + var dateTimeStr string = "CONCAT(gk.`date`, \" \", gk.start_time)" timeFormat := "DATE_FORMAT(" + dateTimeStr + ", '%Y-%m-%d %H:%i:')" secondGroup := fmt.Sprintf("LPAD(FLOOR(SECOND(gk.start_time) / %d) * %d, 2, '0')", query.Interval, query.Interval) groupByField := fmt.Sprintf("CONCAT( %s, %s ) AS timeGroup", timeFormat, secondGroup)