From 108c3200b772c76f201209dca8d54e3683bd3b13 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Fri, 29 Aug 2025 18:46:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9F=BA=E7=AB=99=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=85=B3=E8=81=94=E6=9F=A5=E8=AF=A2=E7=A7=9F?= =?UTF-8?q?=E6=88=B7=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/network_data/controller/amf.go | 14 ++++++ src/modules/network_data/controller/mme.go | 14 ++++++ .../network_data/repository/sys_tenant.go | 49 +++++++++++++++++++ src/modules/network_element/fetch_link/amf.go | 1 + src/modules/network_element/fetch_link/mme.go | 1 + 5 files changed, 79 insertions(+) create mode 100644 src/modules/network_data/repository/sys_tenant.go diff --git a/src/modules/network_data/controller/amf.go b/src/modules/network_data/controller/amf.go index 39038291..87ccaaee 100644 --- a/src/modules/network_data/controller/amf.go +++ b/src/modules/network_data/controller/amf.go @@ -14,6 +14,7 @@ import ( "be.ems/src/framework/utils/parse" "be.ems/src/framework/vo/result" "be.ems/src/modules/network_data/model" + neDataRepository "be.ems/src/modules/network_data/repository" neDataService "be.ems/src/modules/network_data/service" neFetchlink "be.ems/src/modules/network_element/fetch_link" neService "be.ems/src/modules/network_element/service" @@ -328,5 +329,18 @@ func (s *AMFController) NbStateList(c *gin.Context) { return } + // 添加租户信息 + for i, v := range data { + ranId, ok := v["ranId"] + if !ok { + continue + } + tenantID, tenantName := neDataRepository.NewSysTenant.Query(map[string]string{ + "radioKey": fmt.Sprintf("5G_%v", ranId), + }) + data[i]["tenantID"] = tenantID + data[i]["tenantName"] = tenantName + } + c.JSON(200, result.OkData(data)) } diff --git a/src/modules/network_data/controller/mme.go b/src/modules/network_data/controller/mme.go index 3a34b7d6..57460acb 100644 --- a/src/modules/network_data/controller/mme.go +++ b/src/modules/network_data/controller/mme.go @@ -15,6 +15,7 @@ import ( "be.ems/src/framework/utils/parse" "be.ems/src/framework/vo/result" "be.ems/src/modules/network_data/model" + neDataRepository "be.ems/src/modules/network_data/repository" neDataService "be.ems/src/modules/network_data/service" neFetchlink "be.ems/src/modules/network_element/fetch_link" neService "be.ems/src/modules/network_element/service" @@ -318,5 +319,18 @@ func (s *MMEController) NbStateList(c *gin.Context) { return } + // 添加租户信息 + for i, v := range data { + ranId, ok := v["ranId"] + if !ok { + continue + } + tenantID, tenantName := neDataRepository.NewSysTenant.Query(map[string]string{ + "radioKey": fmt.Sprintf("5G_%v", ranId), + }) + data[i]["tenantID"] = tenantID + data[i]["tenantName"] = tenantName + } + c.JSON(200, result.OkData(data)) } diff --git a/src/modules/network_data/repository/sys_tenant.go b/src/modules/network_data/repository/sys_tenant.go new file mode 100644 index 00000000..a314ba19 --- /dev/null +++ b/src/modules/network_data/repository/sys_tenant.go @@ -0,0 +1,49 @@ +package repository + +import ( + "fmt" + "strings" + + "be.ems/src/framework/datasource" + "be.ems/src/framework/logger" + "be.ems/src/framework/utils/parse" +) + +// 实例化数据层 SysTenant 结构体 +var NewSysTenant = &SysTenant{} + +// SysTenant 租户表 数据层处理 +type SysTenant struct{} + +// Query 查询租户信息 ID 名称 +// radioKey 5G_2 4G_3 +func (r SysTenant) Query(query map[string]string) (int64, string) { + // 查询条件拼接 + var conditions []string + var params []any + if v, ok := query["radioKey"]; ok && v != "" { + conditions = append(conditions, "st2.tenancy_type = 'RADIO' AND st2.tenancy_key = ?") + params = append(params, v) + } + + // 构建查询条件语句 + whereSql := "" + if len(conditions) > 0 { + whereSql += " where st2.status = '1' AND " + strings.Join(conditions, " and ") + } else { + return 0, "" + } + + // 查询数据 + querySql := "SELECT st1.tenant_id, st1.tenant_name FROM sys_tenant st1 JOIN sys_tenant st2 ON st1.tenant_id = st2.parent_id " + whereSql + results, err := datasource.RawDB("", querySql, params) + if err != nil { + logger.Errorf("query err %v", err) + return 0, "" + } + if len(results) > 0 { + v := results[0] + return parse.Number(v["tenant_id"]), fmt.Sprint(v["tenant_name"]) + } + return 0, "" +} diff --git a/src/modules/network_element/fetch_link/amf.go b/src/modules/network_element/fetch_link/amf.go index f1b2dfec..952bda93 100644 --- a/src/modules/network_element/fetch_link/amf.go +++ b/src/modules/network_element/fetch_link/amf.go @@ -80,6 +80,7 @@ func AMFGnbStateList(neInfo model.NeInfo) ([]map[string]any, error) { // "onTime": "2024-12-30T15:41:59+08:00", // "state": "OFF", // "nbName": "SA", + // "ranId": 8, // "ueNum": 1 // }, // ] diff --git a/src/modules/network_element/fetch_link/mme.go b/src/modules/network_element/fetch_link/mme.go index 39bd1140..9eba7918 100644 --- a/src/modules/network_element/fetch_link/mme.go +++ b/src/modules/network_element/fetch_link/mme.go @@ -80,6 +80,7 @@ func MMEEnbStateList(neInfo model.NeInfo) ([]map[string]any, error) { // "onTime": "2024-12-30T15:41:59+08:00", // "state": "OFF", // "nbName": "SA", + // "ranId": 8, // "ueNum": 1 // }, // ]