From 81fe42c6e834210ef82c044ff4e60a49dff0b085 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Mon, 25 Mar 2024 15:31:58 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=B5=84=E6=BA=90=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=8A=E6=8A=A5=E6=96=87=E4=BB=B6=E6=95=B0=E6=8D=AE=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/nms_cxy/model/nms_cxy_nrm_log.go | 4 +- src/modules/nms_cxy/service/config.impl.go | 5 +- src/modules/nms_cxy/service/resource.go | 5 + src/modules/nms_cxy/service/resource.impl.go | 108 +++++++++++++++++-- 4 files changed, 107 insertions(+), 15 deletions(-) diff --git a/src/modules/nms_cxy/model/nms_cxy_nrm_log.go b/src/modules/nms_cxy/model/nms_cxy_nrm_log.go index 99021b6..f6fe9db 100644 --- a/src/modules/nms_cxy/model/nms_cxy_nrm_log.go +++ b/src/modules/nms_cxy/model/nms_cxy_nrm_log.go @@ -8,8 +8,8 @@ type NRMLog struct { ChangeTime string `json:"ChangeTime" gorm:"column:change_time"` // 资源变化时间,格式为"2022-12-15 08:34:24" ChangeType string `json:"ChangeType" gorm:"column:change_type"` // 变化类型 add:新增 mod:修改 del:删除 ChangeOper string `json:"ChangeOper" gorm:"column:change_oper"` // 资源的具体属性 - CreateBy string `json:"CreateBy" gorm:"column:create_by"` // 创建者 - CreateTime int64 `json:"CreateTime" gorm:"column:create_time"` // 创建时间 + CreateBy string `json:"-" gorm:"column:create_by"` // 创建者 + CreateTime int64 `json:"-" gorm:"column:create_time"` // 创建时间 } // TableName 表名称 diff --git a/src/modules/nms_cxy/service/config.impl.go b/src/modules/nms_cxy/service/config.impl.go index 956567f..ffc462e 100644 --- a/src/modules/nms_cxy/service/config.impl.go +++ b/src/modules/nms_cxy/service/config.impl.go @@ -23,7 +23,6 @@ var NewConfigImpl = &ConfigImpl{ neInfoService: neService.NewNeInfoImpl, neVersionService: neService.NewNeVersionImpl, resourceService: NewResourceImpl, - nrmLogService: NewNRMLogImpl, } // 配置数据处理服务 服务层处理 @@ -34,8 +33,6 @@ type ConfigImpl struct { neVersionService neService.INeVersion // 资源数据处理服务 resourceService IResource - // 资源数据日志处理服务 - nrmLogService INRMLog } // ConfigUploadOSS 配置数据上报 @@ -464,7 +461,7 @@ func (s *ConfigImpl) ConfigParamModify(neInfo neModel.NeInfo, byUsername string, ChangeType: operType, ChangeOper: string(bytes), } - nrmLogId := s.nrmLogService.Insert(nrmLog) + nrmLogId := s.resourceService.ResourceeInsert(nrmLog) if nrmLogId != "" { pushData := operPara pushData["MsgID"] = nrmLogId diff --git a/src/modules/nms_cxy/service/resource.go b/src/modules/nms_cxy/service/resource.go index 3d7a212..6b43dc7 100644 --- a/src/modules/nms_cxy/service/resource.go +++ b/src/modules/nms_cxy/service/resource.go @@ -1,10 +1,15 @@ package service +import "nms_cxy/src/modules/nms_cxy/model" + // 资源数据处理服务 服务层接口 type IResource interface { // ResourceeUploadOSS 资源数据上报 ResourceeUploadOSS(neType string) error + // ResourceeInsert 资源数据变更日志插入 + ResourceeInsert(nrmLog model.NRMLog) string + // KafkaPush 推送数据Kafka // // acronyms 资源对象类型简称,没有就填空字符串 diff --git a/src/modules/nms_cxy/service/resource.impl.go b/src/modules/nms_cxy/service/resource.impl.go index 5d09af7..3efbdb0 100644 --- a/src/modules/nms_cxy/service/resource.impl.go +++ b/src/modules/nms_cxy/service/resource.impl.go @@ -6,29 +6,114 @@ import ( "nms_cxy/src/framework/constants/uploadsubpath" "nms_cxy/src/framework/logger" "nms_cxy/src/framework/utils/file" + "nms_cxy/src/framework/utils/parse" + neService "nms_cxy/src/modules/network_element/service" + "nms_cxy/src/modules/nms_cxy/model" "nms_cxy/src/modules/nms_cxy/utils/common" "nms_cxy/src/modules/nms_cxy/utils/kafka" ) // 实例化数据层 ResourceImpl 结构体 -var NewResourceImpl = &ResourceImpl{} +var NewResourceImpl = &ResourceImpl{ + nrmLogService: NewNRMLogImpl, + neInfoService: neService.NewNeInfoImpl, +} // 资源数据处理服务 服务层处理 -type ResourceImpl struct{} +type ResourceImpl struct { + // 资源数据日志处理服务 + nrmLogService INRMLog + // 网元信息服务 + neInfoService neService.INeInfo +} // ResourceeUploadOSS 资源数据上报 // OMC在每天的0时及12时上报网元的全量资源数据文件至OSS func (s *ResourceImpl) ResourceeUploadOSS(neType string) error { - // 资源数据 + var pageNum int64 = 1 + var pageSize int64 = 20 dataArr := []any{} - dataArr = append(dataArr, map[string]any{ - "RUID": "WXZX001CLL0000115349200113", - "UserLabel": "cell1000", - "CellBarred": 0, - "UeInactiveTimer": 10000, - "SupportRRCNumbers": 200, + + // 查网元 + neInfo := s.neInfoService.SelectNeInfoByNeTypeAndNeID(neType, "001") + if neInfo.NeType != neType { + logger.Errorf("ResourceeUploadOSS ne info not fount") + return fmt.Errorf("ne info not fount") + } + startTime := 1711331232081 // time.Now().UnixMilli() + + // 查询数据 + pageData := s.nrmLogService.SelectPage(map[string]any{ + "startTime": startTime, + "neType": neType, + "ruid": neInfo.RmUID, + "pageNum": pageNum, + "pageSize": pageSize, }) + total := parse.Number(pageData["total"]) + rows, ok := pageData["rows"].([]model.NRMLog) + if !ok || len(rows) <= 0 { + return fmt.Errorf("resourcee rows not fount") + } + for _, v := range rows { + data := map[string]any{} + data["MsgID"] = v.MsgID + data["Ruid"] = v.Ruid + data["UserLabel"] = v.UserLabel + data["ChangeTime"] = v.ChangeTime + data["ChangeType"] = v.ChangeType + // 操作数据合并 + changeOper := map[string]any{} + json.Unmarshal([]byte(v.ChangeOper), &changeOper) + for operK, operV := range changeOper { + data[operK] = operV + } + dataArr = append(dataArr, data) + } + pageNum += 1 + + // 按总数分批遍历 + batchNum := total / pageSize + for i := 1; i <= int(batchNum); i++ { + // 查询数据 + pageData := s.nrmLogService.SelectPage(map[string]any{ + "startTime": startTime, + "neType": neType, + "ruid": neInfo.RmUID, + "pageNum": pageNum, + "pageSize": pageSize, + }) + rows, ok := pageData["rows"].([]model.NRMLog) + if !ok || len(rows) <= 0 { + return fmt.Errorf("resourcee rows not fount") + } + for _, v := range rows { + data := map[string]any{} + data["MsgID"] = v.MsgID + data["Ruid"] = v.Ruid + data["UserLabel"] = v.UserLabel + data["ChangeTime"] = v.ChangeTime + data["ChangeType"] = v.ChangeType + // 操作数据合并 + changeOper := map[string]any{} + json.Unmarshal([]byte(v.ChangeOper), &changeOper) + for operK, operV := range changeOper { + data[operK] = operV + } + dataArr = append(dataArr, data) + } + pageNum += 1 + } + + // dataArr = append(dataArr, map[string]any{ + // "RUID": "WXZX001CLL0000115349200113", + // "UserLabel": "cell1000", + // "CellBarred": 0, + // "UeInactiveTimer": 10000, + // "SupportRRCNumbers": 200, + // }) + // 文件名 dataSaveFileName := common.DataSaveFileName{ ResCode: neType, @@ -43,6 +128,11 @@ func (s *ResourceImpl) ResourceeUploadOSS(neType string) error { return common.UploadOSSByJSONToZip(filePath, neType, "NRM") } +// ResourceeInsert 资源数据变更日志插入 +func (s *ResourceImpl) ResourceeInsert(nrmLog model.NRMLog) string { + return s.nrmLogService.Insert(nrmLog) +} + // KafkaPush 推送数据Kafka // // acronyms 资源对象类型简称,没有就填空字符串