From e0fd3004e965709c2af492bac7965db3111f93b8 Mon Sep 17 00:00:00 2001 From: simonzhangsz Date: Wed, 16 Oct 2024 19:27:14 +0800 Subject: [PATCH] add: export file contain tenant name --- src/modules/network_data/controller/amf.go | 9 +++++++- src/modules/network_data/controller/ims.go | 10 ++++----- src/modules/network_data/controller/mme.go | 7 ++++++ src/modules/network_data/controller/smf.go | 10 ++++----- src/modules/network_data/controller/smsc.go | 10 ++++----- .../network_data/model/ue_event_amf.go | 22 +++++++++---------- .../network_data/model/ue_event_mme.go | 22 +++++++++---------- 7 files changed, 50 insertions(+), 40 deletions(-) diff --git a/src/modules/network_data/controller/amf.go b/src/modules/network_data/controller/amf.go index 6b0f0740..cb1d5474 100644 --- a/src/modules/network_data/controller/amf.go +++ b/src/modules/network_data/controller/amf.go @@ -100,6 +100,9 @@ func (s *AMFController) UEExport(c *gin.Context) { c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) return } + // for multi-tenancy + querys.UserName = ctx.LoginUserToUserName(c) + // 限制导出数据集 if querys.PageSize > 10000 { querys.PageSize = 10000 @@ -121,6 +124,7 @@ func (s *AMFController) UEExport(c *gin.Context) { "C1": "Event Type", "D1": "Result", "E1": "Time", + "F1": "Tenant Name", } // 读取字典数据 UE 事件类型 dictUEEventType := sysService.NewSysDictDataImpl.SelectDictDataByType("ue_event_type") @@ -182,7 +186,7 @@ func (s *AMFController) UEExport(c *gin.Context) { timeStr = v.(string) } if v, ok := eventJSON["status"]; ok && v != nil { - eventResult = v.(string) + eventResult = fmt.Sprint(v) for _, v := range dictUEEventCmState { if eventResult == v.DictValue { eventResult = i18n.TKey(language, v.DictLabel) @@ -191,6 +195,8 @@ func (s *AMFController) UEExport(c *gin.Context) { } } } + // for multi-tenancy, get tenant name + tenantName := row.TenantName dataCells = append(dataCells, map[string]any{ "A" + idx: row.ID, @@ -198,6 +204,7 @@ func (s *AMFController) UEExport(c *gin.Context) { "C" + idx: eventType, "D" + idx: eventResult, "E" + idx: timeStr, + "F" + idx: tenantName, }) } diff --git a/src/modules/network_data/controller/ims.go b/src/modules/network_data/controller/ims.go index c086ea9e..59626e11 100644 --- a/src/modules/network_data/controller/ims.go +++ b/src/modules/network_data/controller/ims.go @@ -101,6 +101,9 @@ func (s *IMSController) CDRExport(c *gin.Context) { c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) return } + // for multi-tenancy + querys.UserName = ctx.LoginUserToUserName(c) + // 限制导出数据集 if querys.PageSize > 10000 { querys.PageSize = 10000 @@ -198,11 +201,8 @@ func (s *IMSController) CDRExport(c *gin.Context) { releaseTime := parse.Number(v) timeStr = date.ParseDateToStr(releaseTime, date.YYYY_MM_DDTHH_MM_SSZ) } - // tenant name - tenantName := "" - if v, ok := cdrJSON["tenantName"]; ok && v != nil { - tenantName = v.(string) - } + // for multi-tenant, get tenant name + tenantName := row.TenantName dataCells = append(dataCells, map[string]any{ "A" + idx: row.ID, diff --git a/src/modules/network_data/controller/mme.go b/src/modules/network_data/controller/mme.go index eaf2b0c7..ea99ff53 100644 --- a/src/modules/network_data/controller/mme.go +++ b/src/modules/network_data/controller/mme.go @@ -101,6 +101,9 @@ func (s *MMEController) UEExport(c *gin.Context) { c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) return } + // for multi-tenancy + querys.UserName = ctx.LoginUserToUserName(c) + // 限制导出数据集 if querys.PageSize > 10000 { querys.PageSize = 10000 @@ -122,6 +125,7 @@ func (s *MMEController) UEExport(c *gin.Context) { "C1": "Event Type", "D1": "Result", "E1": "Time", + "F1": "Tenant Name", } // 读取字典数据 UE 事件类型 dictUEEventType := sysService.NewSysDictDataImpl.SelectDictDataByType("ue_event_type") @@ -181,6 +185,8 @@ func (s *MMEController) UEExport(c *gin.Context) { rowTime := parse.Number(v) timeStr = date.ParseDateToStr(rowTime, date.YYYY_MM_DDTHH_MM_SSZ) } + // for multi-tenant, get tenant name + tenantName := row.TenantName dataCells = append(dataCells, map[string]any{ "A" + idx: row.ID, @@ -188,6 +194,7 @@ func (s *MMEController) UEExport(c *gin.Context) { "C" + idx: eventType, "D" + idx: eventResult, "E" + idx: timeStr, + "F" + idx: tenantName, }) } diff --git a/src/modules/network_data/controller/smf.go b/src/modules/network_data/controller/smf.go index b7a92c69..f471e1fa 100644 --- a/src/modules/network_data/controller/smf.go +++ b/src/modules/network_data/controller/smf.go @@ -103,6 +103,9 @@ func (s *SMFController) CDRExport(c *gin.Context) { c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) return } + // for multi-tenancy + querys.UserName = ctx.LoginUserToUserName(c) + // 限制导出数据集 if querys.PageSize > 10000 { querys.PageSize = 10000 @@ -246,11 +249,8 @@ PDU Type: %s PDU IPv4 Address: %s PDU IPv6 Addres Swith Prefix: %s`, User_Identifier, SSC_Mode, RAT_Type, DNN_ID, PDU_Type, PDU_IPv4, PDU_IPv6) } - // Tenant Name - tenantName := "" - if v, ok := cdrJSON["tenantName"]; ok && v != nil { - tenantName = v.(string) - } + // for multi-tenant, get tenant name + tenantName := row.TenantName dataCells = append(dataCells, map[string]any{ "A" + idx: row.ID, diff --git a/src/modules/network_data/controller/smsc.go b/src/modules/network_data/controller/smsc.go index 7d63d9d8..d8762db3 100644 --- a/src/modules/network_data/controller/smsc.go +++ b/src/modules/network_data/controller/smsc.go @@ -100,6 +100,9 @@ func (s *SMSCController) CDRExport(c *gin.Context) { c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) return } + // for multi-tenancy + querys.UserName = ctx.LoginUserToUserName(c) + // 限制导出数据集 if querys.PageSize > 10000 { querys.PageSize = 10000 @@ -177,11 +180,8 @@ func (s *SMSCController) CDRExport(c *gin.Context) { releaseTime := parse.Number(v) timeStr = date.ParseDateToStr(releaseTime, date.YYYY_MM_DDTHH_MM_SSZ) } - // Tenant name - tenantName := "" - if v, ok := cdrJSON["tenantName"]; ok && v != nil { - tenantName = v.(string) - } + // for multi-tenant, get tenant name + tenantName := row.TenantName dataCells = append(dataCells, map[string]any{ "A" + idx: row.ID, diff --git a/src/modules/network_data/model/ue_event_amf.go b/src/modules/network_data/model/ue_event_amf.go index fea56cde..be7142eb 100644 --- a/src/modules/network_data/model/ue_event_amf.go +++ b/src/modules/network_data/model/ue_event_amf.go @@ -1,19 +1,17 @@ package model -import "time" - // UEEventAMF UE会话对象AMF ue_event_amf type UEEventAMF struct { - ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"` - NeType string `json:"neType" gorm:"column:ne_type"` - NeName string `json:"neName" gorm:"column:ne_name"` - RmUID string `json:"rmUID" gorm:"column:rm_uid"` // 可能没有 - Timestamp int64 `json:"timestamp" gorm:"column:timestamp"` - EventType string `json:"eventType" gorm:"column:event_type"` // 事件类型 auth-result detach cm-state - EventJSONStr string `json:"eventJSON" gorm:"column:event_json"` - CreatedAt time.Time `json:"createdAt" gorm:"column:created_at;default:CURRENT_TIMESTAMP"` - TenantID string `json:"tenantID" gorm:"tenant_id"` - TenantName string `json:"tenantName" gorm:"column:tenant_name"` + ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"` + NeType string `json:"neType" gorm:"column:ne_type"` + NeName string `json:"neName" gorm:"column:ne_name"` + RmUID string `json:"rmUID" gorm:"column:rm_uid"` // 可能没有 + Timestamp int64 `json:"timestamp" gorm:"column:timestamp"` + EventType string `json:"eventType" gorm:"column:event_type"` // 事件类型 auth-result detach cm-state + EventJSONStr string `json:"eventJSON" gorm:"column:event_json"` + CreatedAt string `json:"createdAt" gorm:"column:created_at;default:CURRENT_TIMESTAMP"` + TenantID string `json:"tenantID" gorm:"tenant_id"` + TenantName string `json:"tenantName" gorm:"column:tenant_name"` } // UEEventAMFQuery UE会话对象AMF查询参数结构体 diff --git a/src/modules/network_data/model/ue_event_mme.go b/src/modules/network_data/model/ue_event_mme.go index 27a4e48e..09bd9ba7 100644 --- a/src/modules/network_data/model/ue_event_mme.go +++ b/src/modules/network_data/model/ue_event_mme.go @@ -1,19 +1,17 @@ package model -import "time" - // UEEventMME UE会话对象MME ue_event_mme type UEEventMME struct { - ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"` - NeType string `json:"neType" gorm:"column:ne_type"` - NeName string `json:"neName" gorm:"column:ne_name"` - RmUID string `json:"rmUID" gorm:"column:rm_uid"` // 可能没有 - Timestamp int64 `json:"timestamp" gorm:"column:timestamp"` - EventType string `json:"eventType" gorm:"column:event_type"` // 事件类型 auth-result detach cm-state - EventJSONStr string `json:"eventJSON" gorm:"column:event_json"` - CreatedAt time.Time `json:"createdAt" gorm:"column:created_at;default:CURRENT_TIMESTAMP"` - TenantID string `json:"tenantID" gorm:"column:tenant_id"` - TenantName string `json:"tenantName" gorm:"column:tenant_name"` + ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"` + NeType string `json:"neType" gorm:"column:ne_type"` + NeName string `json:"neName" gorm:"column:ne_name"` + RmUID string `json:"rmUID" gorm:"column:rm_uid"` // 可能没有 + Timestamp int64 `json:"timestamp" gorm:"column:timestamp"` + EventType string `json:"eventType" gorm:"column:event_type"` // 事件类型 auth-result detach cm-state + EventJSONStr string `json:"eventJSON" gorm:"column:event_json"` + CreatedAt string `json:"createdAt" gorm:"column:created_at;default:CURRENT_TIMESTAMP"` + TenantID string `json:"tenantID" gorm:"column:tenant_id"` + TenantName string `json:"tenantName" gorm:"column:tenant_name"` } // UEEventMMEQuery UE会话对象MME查询参数结构体