fix: 查询UPF总流量时间改为时间戳避免时间转换时区问题

This commit is contained in:
TsMask
2024-07-25 12:04:04 +08:00
parent 4ceb871c23
commit 7c982cf9e2
3 changed files with 20 additions and 53 deletions

View File

@@ -15,7 +15,4 @@ type IPerfKPI interface {
// SelectUPFTotalFlow 查询UPF总流量 N3上行 N6下行 // SelectUPFTotalFlow 查询UPF总流量 N3上行 N6下行
SelectUPFTotalFlow(neType, rmUID, startDate, endDate string) map[string]any 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
} }

View File

@@ -204,19 +204,19 @@ func (r *PerfKPIImpl) SelectUPFTotalFlow(neType, rmUID, startDate, endDate strin
var conditions []string var conditions []string
var params []any var params []any
if neType != "" { if neType != "" {
conditions = append(conditions, "gk.ne_type = ?") conditions = append(conditions, "kupf.ne_type = ?")
params = append(params, neType) params = append(params, neType)
} }
if rmUID != "" { if rmUID != "" {
conditions = append(conditions, "gk.rm_uid = ?") conditions = append(conditions, "kupf.rm_uid = ?")
params = append(params, rmUID) params = append(params, rmUID)
} }
if startDate != "" { if startDate != "" {
conditions = append(conditions, "gk.date >= ?") conditions = append(conditions, "kupf.created_at >= ?")
params = append(params, startDate) params = append(params, startDate)
} }
if endDate != "" { if endDate != "" {
conditions = append(conditions, "gk.date <= ?") conditions = append(conditions, "kupf.created_at <= ?")
params = append(params, endDate) 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) querySql := `SELECT
results, err := datasource.RawDB("", querySql, params) 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',
if err != nil { 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'
logger.Errorf("query err => %v", err) FROM kpi_report_upf kupf`
} results, err := datasource.RawDB("", querySql+whereSql, params)
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)
if err != nil { if err != nil {
logger.Errorf("query err => %v", err) logger.Errorf("query err => %v", err)
} }

View File

@@ -46,12 +46,11 @@ func (r *PerfKPIImpl) SelectGoldKPITitle(neType string) []model.GoldKPITitle {
// SelectUPFTotalFlow 查询UPF总流量 N3上行 N6下行 // SelectUPFTotalFlow 查询UPF总流量 N3上行 N6下行
func (r *PerfKPIImpl) SelectUPFTotalFlow(neType, rmUID string, day int) map[string]any { func (r *PerfKPIImpl) SelectUPFTotalFlow(neType, rmUID string, day int) map[string]any {
// 获取当前日期
now := time.Now() now := time.Now()
endDate := now.Format("2006-01-02") // 获取当前日期
endDate := fmt.Sprint(now.UnixMilli())
// 将当前日期前几天数 // 将当前日期前几天数
afterDays := now.AddDate(0, 0, -day) startDate := fmt.Sprint(now.AddDate(0, 0, -day).Truncate(24 * time.Hour).UnixMilli())
startDate := afterDays.Format("2006-01-02")
var info map[string]any var info map[string]any
@@ -61,14 +60,18 @@ func (r *PerfKPIImpl) SelectUPFTotalFlow(neType, rmUID string, day int) map[stri
if infoStr != "" { if infoStr != "" {
json.Unmarshal([]byte(infoStr), &info) json.Unmarshal([]byte(infoStr), &info)
expireSecond, _ := redis.GetExpire("", key) expireSecond, _ := redis.GetExpire("", key)
expireMinute := (time.Duration(int64(expireSecond)) * time.Second) if expireSecond > 120 {
if expireMinute > 2*time.Minute {
return info return info
} }
} }
//info = r.perfKPIRepository.SelectUPFTotalFlow(neType, rmUID, startDate, endDate) info = r.perfKPIRepository.SelectUPFTotalFlow(neType, rmUID, startDate, endDate)
info = r.perfKPIRepository.SelectUPFThroughput(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) infoJSON, _ := json.Marshal(info)