From 53201fb92fa8fdd54558099f4ee0e887b5e863f8 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Fri, 9 Aug 2024 09:56:20 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20CDR=E6=95=B0=E6=8D=AE=E5=AF=B9rmUID?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E5=8C=BA=E5=88=86=E5=AF=B9=E5=BA=94=E7=BD=91?= =?UTF-8?q?=E5=85=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/network_data/controller/ims.go | 21 +++++++---- src/modules/network_data/controller/smf.go | 21 +++++++---- src/modules/network_data/controller/smsc.go | 21 +++++++---- src/modules/ws/processor/cdr_connect.go | 40 +++++++++++++++++++++ src/modules/ws/service/ws_receive.impl.go | 2 ++ 5 files changed, 84 insertions(+), 21 deletions(-) diff --git a/src/modules/network_data/controller/ims.go b/src/modules/network_data/controller/ims.go index 3c7f9d5c..22221200 100644 --- a/src/modules/network_data/controller/ims.go +++ b/src/modules/network_data/controller/ims.go @@ -49,13 +49,13 @@ func (s *IMSController) CDRList(c *gin.Context) { return } - // 查询网元获取IP - // neInfo := s.neInfoService.SelectNeInfoByNeTypeAndNeID(querys.NeType, querys.NeID) - // if neInfo.NeId != querys.NeID || neInfo.IP == "" { - // c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.noNEInfo"))) - // return - // } - // querys.RmUID = neInfo.RmUID + // 查询网元信息 rmUID + neInfo := s.neInfoService.SelectNeInfoByNeTypeAndNeID(querys.NeType, querys.NeID) + if neInfo.NeId != querys.NeID || neInfo.IP == "" { + c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.noNEInfo"))) + return + } + querys.RmUID = neInfo.RmUID // 查询数据 data := s.cdrEventService.SelectPage(querys) @@ -103,6 +103,13 @@ func (s *IMSController) CDRExport(c *gin.Context) { if querys.PageSize > 10000 { querys.PageSize = 10000 } + // 查询网元信息 rmUID + neInfo := s.neInfoService.SelectNeInfoByNeTypeAndNeID(querys.NeType, querys.NeID) + if neInfo.NeId != querys.NeID || neInfo.IP == "" { + c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.noNEInfo"))) + return + } + querys.RmUID = neInfo.RmUID data := s.cdrEventService.SelectPage(querys) if parse.Number(data["total"]) == 0 { // 导出数据记录为空 diff --git a/src/modules/network_data/controller/smf.go b/src/modules/network_data/controller/smf.go index 2e033386..640fac58 100644 --- a/src/modules/network_data/controller/smf.go +++ b/src/modules/network_data/controller/smf.go @@ -47,13 +47,13 @@ func (s *SMFController) CDRList(c *gin.Context) { return } - // 查询网元获取IP - // neInfo := s.neInfoService.SelectNeInfoByNeTypeAndNeID(querys.NeType, querys.NeID) - // if neInfo.NeId != querys.NeID || neInfo.IP == "" { - // c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.noNEInfo"))) - // return - // } - // querys.RmUID = neInfo.RmUID + // 查询网元信息 rmUID + neInfo := s.neInfoService.SelectNeInfoByNeTypeAndNeID(querys.NeType, querys.NeID) + if neInfo.NeId != querys.NeID || neInfo.IP == "" { + c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.noNEInfo"))) + return + } + querys.RmUID = neInfo.RmUID // 查询数据 data := s.cdrEventService.SelectPage(querys) @@ -101,6 +101,13 @@ func (s *SMFController) CDRExport(c *gin.Context) { if querys.PageSize > 10000 { querys.PageSize = 10000 } + // 查询网元信息 rmUID + neInfo := s.neInfoService.SelectNeInfoByNeTypeAndNeID(querys.NeType, querys.NeID) + if neInfo.NeId != querys.NeID || neInfo.IP == "" { + c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.noNEInfo"))) + return + } + querys.RmUID = neInfo.RmUID data := s.cdrEventService.SelectPage(querys) if parse.Number(data["total"]) == 0 { // 导出数据记录为空 diff --git a/src/modules/network_data/controller/smsc.go b/src/modules/network_data/controller/smsc.go index a2b3b6c3..6ebcb75d 100644 --- a/src/modules/network_data/controller/smsc.go +++ b/src/modules/network_data/controller/smsc.go @@ -48,13 +48,13 @@ func (s *SMSCController) CDRList(c *gin.Context) { return } - // 查询网元获取IP - // neInfo := s.neInfoService.SelectNeInfoByNeTypeAndNeID(querys.NeType, querys.NeID) - // if neInfo.NeId != querys.NeID || neInfo.IP == "" { - // c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.noNEInfo"))) - // return - // } - // querys.RmUID = neInfo.RmUID + // 查询网元信息 rmUID + neInfo := s.neInfoService.SelectNeInfoByNeTypeAndNeID(querys.NeType, querys.NeID) + if neInfo.NeId != querys.NeID || neInfo.IP == "" { + c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.noNEInfo"))) + return + } + querys.RmUID = neInfo.RmUID // 查询数据 data := s.cdrEventService.SelectPage(querys) @@ -102,6 +102,13 @@ func (s *SMSCController) CDRExport(c *gin.Context) { if querys.PageSize > 10000 { querys.PageSize = 10000 } + // 查询网元信息 rmUID + neInfo := s.neInfoService.SelectNeInfoByNeTypeAndNeID(querys.NeType, querys.NeID) + if neInfo.NeId != querys.NeID || neInfo.IP == "" { + c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.noNEInfo"))) + return + } + querys.RmUID = neInfo.RmUID data := s.cdrEventService.SelectPage(querys) if parse.Number(data["total"]) == 0 { // 导出数据记录为空 diff --git a/src/modules/ws/processor/cdr_connect.go b/src/modules/ws/processor/cdr_connect.go index fc8dc1e8..f7d1efff 100644 --- a/src/modules/ws/processor/cdr_connect.go +++ b/src/modules/ws/processor/cdr_connect.go @@ -8,6 +8,7 @@ import ( "be.ems/src/framework/vo/result" neDataModel "be.ems/src/modules/network_data/model" neDataService "be.ems/src/modules/network_data/service" + neInfoService "be.ems/src/modules/network_element/service" ) // GetCDRConnectByIMS 获取CDR会话事件-IMS @@ -20,6 +21,13 @@ func GetCDRConnectByIMS(requestID string, data any) ([]byte, error) { return nil, fmt.Errorf("query data structure error") } + // 查询网元信息 rmUID + neInfo := neInfoService.NewNeInfoImpl.SelectNeInfoByNeTypeAndNeID(query.NeType, query.NeID) + if neInfo.NeId != query.NeID || neInfo.IP == "" { + return nil, fmt.Errorf("query neinfo not found") + } + query.RmUID = neInfo.RmUID + dataMap := neDataService.NewCDREventIMSImpl.SelectPage(query) resultByte, err := json.Marshal(result.Ok(map[string]any{ "requestId": requestID, @@ -38,6 +46,13 @@ func GetCDRConnectBySMF(requestID string, data any) ([]byte, error) { return nil, fmt.Errorf("query data structure error") } + // 查询网元信息 rmUID + neInfo := neInfoService.NewNeInfoImpl.SelectNeInfoByNeTypeAndNeID(query.NeType, query.NeID) + if neInfo.NeId != query.NeID || neInfo.IP == "" { + return nil, fmt.Errorf("query neinfo not found") + } + query.RmUID = neInfo.RmUID + dataMap := neDataService.NewCDREventSMFImpl.SelectPage(query) resultByte, err := json.Marshal(result.Ok(map[string]any{ "requestId": requestID, @@ -45,3 +60,28 @@ func GetCDRConnectBySMF(requestID string, data any) ([]byte, error) { })) return resultByte, err } + +// GetCDRConnectBySMSC 获取CDR会话事件-SMSC +func GetCDRConnectBySMSC(requestID string, data any) ([]byte, error) { + msgByte, _ := json.Marshal(data) + var query neDataModel.CDREventSMSCQuery + err := json.Unmarshal(msgByte, &query) + if err != nil { + logger.Warnf("ws processor GetCDRConnect err: %s", err.Error()) + return nil, fmt.Errorf("query data structure error") + } + + // 查询网元信息 rmUID + neInfo := neInfoService.NewNeInfoImpl.SelectNeInfoByNeTypeAndNeID(query.NeType, query.NeID) + if neInfo.NeId != query.NeID || neInfo.IP == "" { + return nil, fmt.Errorf("query neinfo not found") + } + query.RmUID = neInfo.RmUID + + dataMap := neDataService.NewCDREventSMSCImpl.SelectPage(query) + resultByte, err := json.Marshal(result.Ok(map[string]any{ + "requestId": requestID, + "data": dataMap, + })) + return resultByte, err +} diff --git a/src/modules/ws/service/ws_receive.impl.go b/src/modules/ws/service/ws_receive.impl.go index 3a5c69b2..cf09f8fd 100644 --- a/src/modules/ws/service/ws_receive.impl.go +++ b/src/modules/ws/service/ws_receive.impl.go @@ -56,6 +56,8 @@ func (s *WSReceiveImpl) Commont(client *model.WSClient, reqMsg model.WSRequest) resByte, err = processor.GetCDRConnectByIMS(reqMsg.RequestID, reqMsg.Data) case "smf_cdr": resByte, err = processor.GetCDRConnectBySMF(reqMsg.RequestID, reqMsg.Data) + case "smsc_cdr": + resByte, err = processor.GetCDRConnectBySMSC(reqMsg.RequestID, reqMsg.Data) case "amf_ue": resByte, err = processor.GetUEConnectByAMF(reqMsg.RequestID, reqMsg.Data) case "mme_ue":