From 712a9fee0bab85e5b913102fe5b8d193ba492ac3 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Tue, 6 Aug 2024 16:43:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20CDR/Event=E5=8F=91=E9=80=81=E5=88=B0?= =?UTF-8?q?=E5=8C=B9=E9=85=8D=E7=9A=84=E7=BD=91=E5=85=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- features/cdr/cdrevent.go | 21 +++++++++++++++------ features/event/event.go | 12 +++++++++--- src/modules/ws/service/ws_send.impl.go | 12 ++++++------ 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/features/cdr/cdrevent.go b/features/cdr/cdrevent.go index 02c95243..5567be4e 100644 --- a/features/cdr/cdrevent.go +++ b/features/cdr/cdrevent.go @@ -11,6 +11,7 @@ import ( "be.ems/lib/log" "be.ems/lib/services" "be.ems/restagent/config" + neService "be.ems/src/modules/network_element/service" wsService "be.ems/src/modules/ws/service" ) @@ -241,10 +242,14 @@ func PostCDREventFromIMS(w http.ResponseWriter, r *http.Request) { return } - // 推送到ws订阅组 - if v, ok := cdrEvent.CDR["recordType"]; ok { - if v == "MOC" || v == "MTSM" { - wsService.NewWSSendImpl.ByGroupID(wsService.GROUP_IMS_CDR, cdrEvent) + // 发送到匹配的网元 + neInfo := neService.NewNeInfoImpl.SelectNeInfoByRmuid(cdrEvent.RmUID) + if neInfo.RmUID == cdrEvent.RmUID { + // 推送到ws订阅组 + if v, ok := cdrEvent.CDR["recordType"]; ok { + if v == "MOC" || v == "MTSM" { + wsService.NewWSSendImpl.ByGroupID(wsService.GROUP_IMS_CDR+neInfo.NeId, cdrEvent) + } } } @@ -278,8 +283,12 @@ func PostCDREventFromSMF(w http.ResponseWriter, r *http.Request) { return } - // 推送到ws订阅组 - wsService.NewWSSendImpl.ByGroupID(wsService.GROUP_SMF_CDR, cdrEvent) + // 发送到匹配的网元 + neInfo := neService.NewNeInfoImpl.SelectNeInfoByRmuid(cdrEvent.RmUID) + if neInfo.RmUID == cdrEvent.RmUID { + // 推送到ws订阅组 + wsService.NewWSSendImpl.ByGroupID(wsService.GROUP_SMF_CDR+neInfo.NeId, cdrEvent) + } services.ResponseStatusOK204NoContent(w) } diff --git a/features/event/event.go b/features/event/event.go index 66164b1a..c04cd44b 100644 --- a/features/event/event.go +++ b/features/event/event.go @@ -14,6 +14,7 @@ import ( "be.ems/lib/log" "be.ems/lib/services" "be.ems/restagent/config" + neService "be.ems/src/modules/network_element/service" wsService "be.ems/src/modules/ws/service" "github.com/gin-gonic/gin" ) @@ -71,6 +72,7 @@ func PostUEEventFromAMF(c *gin.Context) { return } + // AMF没有RmUID,直接推送 // 推送到ws订阅组 wsService.NewWSSendImpl.ByGroupID(wsService.GROUP_AMF_UE, ueEvent) @@ -96,9 +98,13 @@ func PostUEEvent(w http.ResponseWriter, r *http.Request) { return } - // 推送到ws订阅组 - if ueEvent.NeType == "MME" { - wsService.NewWSSendImpl.ByGroupID(wsService.GROUP_MME_UE, ueEvent) + // 发送到匹配的网元 + neInfo := neService.NewNeInfoImpl.SelectNeInfoByRmuid(ueEvent.RmUID) + if neInfo.RmUID == ueEvent.RmUID { + // 推送到ws订阅组 + if ueEvent.NeType == "MME" { + wsService.NewWSSendImpl.ByGroupID(wsService.GROUP_MME_UE+neInfo.NeId, ueEvent) + } } services.ResponseStatusOK204NoContent(w) diff --git a/src/modules/ws/service/ws_send.impl.go b/src/modules/ws/service/ws_send.impl.go index da71fe18..73cc4c49 100644 --- a/src/modules/ws/service/ws_send.impl.go +++ b/src/modules/ws/service/ws_send.impl.go @@ -16,14 +16,14 @@ const ( GROUP_KPI = "10_" // 组号-指标UPF 12_neId GROUP_KPI_UPF = "12_" - // 组号-IMS_CDR会话事件 - GROUP_IMS_CDR = "1005" - // 组号-SMF_CDR会话事件 - GROUP_SMF_CDR = "1006" + // 组号-IMS_CDR会话事件 1005_neId + GROUP_IMS_CDR = "1005_" + // 组号-SMF_CDR会话事件 1006_neId + GROUP_SMF_CDR = "1006_" // 组号-AMF_UE会话事件 GROUP_AMF_UE = "1010" - // 组号-MME_UE会话事件 - GROUP_MME_UE = "1011" + // 组号-MME_UE会话事件 1011_neId + GROUP_MME_UE = "1011_" ) // 实例化服务层 WSSendImpl 结构体