diff --git a/src/modules/network_data/repository/perf_kpi.go b/src/modules/network_data/repository/perf_kpi.go index 065d7842..d2674155 100644 --- a/src/modules/network_data/repository/perf_kpi.go +++ b/src/modules/network_data/repository/perf_kpi.go @@ -15,7 +15,4 @@ type IPerfKPI interface { // SelectUPFTotalFlow 查询UPF总流量 N3上行 N6下行 SelectUPFTotalFlow(neType, rmUID, startDate, endDate string) map[string]any - - // select upf throughput from new kpi_report - SelectUPFThroughput(neType, rmUID, startDate, endDate string) map[string]any } diff --git a/src/modules/network_data/repository/perf_kpi.impl.go b/src/modules/network_data/repository/perf_kpi.impl.go index 94e2aa20..80908098 100644 --- a/src/modules/network_data/repository/perf_kpi.impl.go +++ b/src/modules/network_data/repository/perf_kpi.impl.go @@ -204,19 +204,19 @@ func (r *PerfKPIImpl) SelectUPFTotalFlow(neType, rmUID, startDate, endDate strin var conditions []string var params []any if neType != "" { - conditions = append(conditions, "gk.ne_type = ?") + conditions = append(conditions, "kupf.ne_type = ?") params = append(params, neType) } if rmUID != "" { - conditions = append(conditions, "gk.rm_uid = ?") + conditions = append(conditions, "kupf.rm_uid = ?") params = append(params, rmUID) } if startDate != "" { - conditions = append(conditions, "gk.date >= ?") + conditions = append(conditions, "kupf.created_at >= ?") params = append(params, startDate) } if endDate != "" { - conditions = append(conditions, "gk.date <= ?") + conditions = append(conditions, "kupf.created_at <= ?") params = append(params, endDate) } // 构建查询条件语句 @@ -226,44 +226,11 @@ func (r *PerfKPIImpl) SelectUPFTotalFlow(neType, rmUID, startDate, endDate strin } // 查询数据 - querySql := fmt.Sprintf("SELECT sum( CASE WHEN gk.kpi_id = 'UPF.03' THEN gk.VALUE ELSE 0 END ) AS 'up', sum( CASE WHEN gk.kpi_id = 'UPF.06' THEN gk.VALUE ELSE 0 END ) AS 'down' FROM gold_kpi gk %s", whereSql) - results, err := datasource.RawDB("", querySql, params) - if err != nil { - logger.Errorf("query err => %v", err) - } - return results[0] -} - -// SelectUPFTotalFlow 查询UPF总流量 N3上行 N6下行 -func (r *PerfKPIImpl) SelectUPFThroughput(neType, rmUID, startDate, endDate string) map[string]any { - // 查询条件拼接 - var conditions []string - var params []any - if neType != "" { - conditions = append(conditions, "gk.ne_type = ?") - params = append(params, neType) - } - if rmUID != "" { - conditions = append(conditions, "gk.rm_uid = ?") - params = append(params, rmUID) - } - if startDate != "" { - conditions = append(conditions, "gk.date >= ?") - params = append(params, startDate) - } - if endDate != "" { - conditions = append(conditions, "gk.date <= ?") - params = append(params, endDate) - } - // 构建查询条件语句 - whereSql := "" - if len(conditions) > 0 { - whereSql += " where " + strings.Join(conditions, " and ") - } - - // 查询数据 - querySql := fmt.Sprintf("SELECT sum( CASE WHEN JSON_EXTRACT(gk.kpi_values, '$[2].kpi_id') = 'UPF.03' THEN JSON_EXTRACT(gk.kpi_values, '$[2].value') ELSE 0 END ) AS 'up', sum( CASE WHEN JSON_EXTRACT(gk.kpi_values, '$[5].kpi_id') = 'UPF.06' THEN JSON_EXTRACT(gk.kpi_values, '$[5].value') ELSE 0 END ) AS 'down' FROM kpi_report_upf gk %s", whereSql) - results, err := datasource.RawDB("", querySql, params) + querySql := `SELECT + sum( CASE WHEN JSON_EXTRACT(kupf.kpi_values, '$[2].kpi_id') = 'UPF.03' THEN JSON_EXTRACT(kupf.kpi_values, '$[2].value') ELSE 0 END ) AS 'up', + sum( CASE WHEN JSON_EXTRACT(kupf.kpi_values, '$[5].kpi_id') = 'UPF.06' THEN JSON_EXTRACT(kupf.kpi_values, '$[5].value') ELSE 0 END ) AS 'down' + FROM kpi_report_upf kupf` + results, err := datasource.RawDB("", querySql+whereSql, params) if err != nil { logger.Errorf("query err => %v", err) } diff --git a/src/modules/network_data/service/perf_kpi.impl.go b/src/modules/network_data/service/perf_kpi.impl.go index 1376c17b..da234fab 100644 --- a/src/modules/network_data/service/perf_kpi.impl.go +++ b/src/modules/network_data/service/perf_kpi.impl.go @@ -46,12 +46,11 @@ func (r *PerfKPIImpl) SelectGoldKPITitle(neType string) []model.GoldKPITitle { // SelectUPFTotalFlow 查询UPF总流量 N3上行 N6下行 func (r *PerfKPIImpl) SelectUPFTotalFlow(neType, rmUID string, day int) map[string]any { - // 获取当前日期 now := time.Now() - endDate := now.Format("2006-01-02") + // 获取当前日期 + endDate := fmt.Sprint(now.UnixMilli()) // 将当前日期前几天数 - afterDays := now.AddDate(0, 0, -day) - startDate := afterDays.Format("2006-01-02") + startDate := fmt.Sprint(now.AddDate(0, 0, -day).Truncate(24 * time.Hour).UnixMilli()) var info map[string]any @@ -61,14 +60,18 @@ func (r *PerfKPIImpl) SelectUPFTotalFlow(neType, rmUID string, day int) map[stri if infoStr != "" { json.Unmarshal([]byte(infoStr), &info) expireSecond, _ := redis.GetExpire("", key) - expireMinute := (time.Duration(int64(expireSecond)) * time.Second) - if expireMinute > 2*time.Minute { + if expireSecond > 120 { return info } } - //info = r.perfKPIRepository.SelectUPFTotalFlow(neType, rmUID, startDate, endDate) - info = r.perfKPIRepository.SelectUPFThroughput(neType, rmUID, startDate, endDate) + info = r.perfKPIRepository.SelectUPFTotalFlow(neType, rmUID, startDate, endDate) + if v, ok := info["up"]; ok && v == nil { + info["up"] = 0 + } + if v, ok := info["down"]; ok && v == nil { + info["down"] = 0 + } // 保存到缓存 infoJSON, _ := json.Marshal(info)