From 0faeb1e0ca6435ad1a725b84ad823ba3230344de Mon Sep 17 00:00:00 2001 From: simonzhangsz Date: Tue, 25 Jun 2024 15:35:39 +0800 Subject: [PATCH] fix: upf kpi for tenant --- features/pm/performance.go | 6 +++++- src/modules/network_data/controller/perf_kpi.go | 10 +++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/features/pm/performance.go b/features/pm/performance.go index d717e791..54ddc728 100644 --- a/features/pm/performance.go +++ b/features/pm/performance.go @@ -76,7 +76,8 @@ type KpiData struct { Granularity int8 `json:"granularity" xorm:"granularity"` KPIValues []KPIVal `json:"kpiValues" xorm:"json 'kpi_values'"` //CreatedAt int64 `json:"createdAt" xorm:"created 'created_at'"` - CreatedAt int64 `json:"createdAt" xorm:"'created_at'"` + CreatedAt int64 `json:"createdAt" xorm:"'created_at'"` + TenantName string `json:"tenantName" xorm:"tenant_name"` } type KPIVal struct { KPIID string `json:"kpi_id" xorm:"kpi_id"` @@ -257,6 +258,9 @@ func PostKPIReportFromNF(w http.ResponseWriter, r *http.Request) { kpiData.KPIValues = append(kpiData.KPIValues, *kpiVal) } + // set tenant_name if exist + where := fmt.Sprintf("status='1' and tenant_id=(select parent_id from sys_tenant where status='1' and tenancy_type='UPF' and tenancy_key='%s')", kpiData.RmUid) + kpiData.TenantName, _ = dborm.XormGetSingleColStringByWhere("sys_tenant", "tenant_name", where) // insert kpi_report table, no session tableName := "kpi_report_" + strings.ToLower(kpiReport.Task.NE.NeType) affected, err := xEngine.Table(tableName).Insert(kpiData) diff --git a/src/modules/network_data/controller/perf_kpi.go b/src/modules/network_data/controller/perf_kpi.go index ad457a2f..378bfa1f 100644 --- a/src/modules/network_data/controller/perf_kpi.go +++ b/src/modules/network_data/controller/perf_kpi.go @@ -71,9 +71,13 @@ func (s *PerfKPIController) GoldKPI(c *gin.Context) { var userName, rmUID string userName = ctx.LoginUserToUserName(c) // multi-tenancy, useName->tenantID->UPF.001(NEType.NEID)->rmUID - selectSQL := fmt.Sprintf(`SELECT rm_uid FROM ne_info n WHERE CONCAT(n.ne_type,'.',n.ne_id) = - (SELECT t.tenancy_key FROM sys_tenant t WHERE t.status='1' AND t.tenancy_type='NE' AND t.parent_id = - (SELECT u.tenant_id FROM sys_user u WHERE u.user_name='%s'))`, userName) + // selectSQL := fmt.Sprintf(`SELECT rm_uid FROM ne_info n WHERE CONCAT(n.ne_type,'.',n.ne_id) = + // (SELECT t.tenancy_key FROM sys_tenant t WHERE t.status='1' AND t.tenancy_type='UPF' AND t.parent_id = + // (SELECT u.tenant_id FROM sys_user u WHERE u.user_name='%s'))`, userName) + + // multi-tenancy, useName->tenantID->rmUID + selectSQL := fmt.Sprintf(`SELECT t.tenancy_key FROM sys_tenant t WHERE t.status='1' AND t.tenancy_type='UPF' AND t.parent_id = + (SELECT u.tenant_id FROM sys_user u WHERE u.user_name='%s')`, userName) _, err := datasource.DefaultDB().SQL(selectSQL).Cols("rm_uid").Get(&rmUID) if err != nil { c.JSON(200, result.ErrMsgFmt("DB Get error: %s", err.Error()))