fix: 资源数据上报文件数据格式

This commit is contained in:
TsMask
2024-03-25 15:31:58 +08:00
parent 4f8c24f971
commit 81fe42c6e8
4 changed files with 107 additions and 15 deletions

View File

@@ -8,8 +8,8 @@ type NRMLog struct {
ChangeTime string `json:"ChangeTime" gorm:"column:change_time"` // 资源变化时间,格式为"2022-12-15 08:34:24" 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删除 ChangeType string `json:"ChangeType" gorm:"column:change_type"` // 变化类型 add新增 mod修改 del删除
ChangeOper string `json:"ChangeOper" gorm:"column:change_oper"` // 资源的具体属性 ChangeOper string `json:"ChangeOper" gorm:"column:change_oper"` // 资源的具体属性
CreateBy string `json:"CreateBy" gorm:"column:create_by"` // 创建者 CreateBy string `json:"-" gorm:"column:create_by"` // 创建者
CreateTime int64 `json:"CreateTime" gorm:"column:create_time"` // 创建时间 CreateTime int64 `json:"-" gorm:"column:create_time"` // 创建时间
} }
// TableName 表名称 // TableName 表名称

View File

@@ -23,7 +23,6 @@ var NewConfigImpl = &ConfigImpl{
neInfoService: neService.NewNeInfoImpl, neInfoService: neService.NewNeInfoImpl,
neVersionService: neService.NewNeVersionImpl, neVersionService: neService.NewNeVersionImpl,
resourceService: NewResourceImpl, resourceService: NewResourceImpl,
nrmLogService: NewNRMLogImpl,
} }
// 配置数据处理服务 服务层处理 // 配置数据处理服务 服务层处理
@@ -34,8 +33,6 @@ type ConfigImpl struct {
neVersionService neService.INeVersion neVersionService neService.INeVersion
// 资源数据处理服务 // 资源数据处理服务
resourceService IResource resourceService IResource
// 资源数据日志处理服务
nrmLogService INRMLog
} }
// ConfigUploadOSS 配置数据上报 // ConfigUploadOSS 配置数据上报
@@ -464,7 +461,7 @@ func (s *ConfigImpl) ConfigParamModify(neInfo neModel.NeInfo, byUsername string,
ChangeType: operType, ChangeType: operType,
ChangeOper: string(bytes), ChangeOper: string(bytes),
} }
nrmLogId := s.nrmLogService.Insert(nrmLog) nrmLogId := s.resourceService.ResourceeInsert(nrmLog)
if nrmLogId != "" { if nrmLogId != "" {
pushData := operPara pushData := operPara
pushData["MsgID"] = nrmLogId pushData["MsgID"] = nrmLogId

View File

@@ -1,10 +1,15 @@
package service package service
import "nms_cxy/src/modules/nms_cxy/model"
// 资源数据处理服务 服务层接口 // 资源数据处理服务 服务层接口
type IResource interface { type IResource interface {
// ResourceeUploadOSS 资源数据上报 // ResourceeUploadOSS 资源数据上报
ResourceeUploadOSS(neType string) error ResourceeUploadOSS(neType string) error
// ResourceeInsert 资源数据变更日志插入
ResourceeInsert(nrmLog model.NRMLog) string
// KafkaPush 推送数据Kafka // KafkaPush 推送数据Kafka
// //
// acronyms 资源对象类型简称,没有就填空字符串 // acronyms 资源对象类型简称,没有就填空字符串

View File

@@ -6,29 +6,114 @@ import (
"nms_cxy/src/framework/constants/uploadsubpath" "nms_cxy/src/framework/constants/uploadsubpath"
"nms_cxy/src/framework/logger" "nms_cxy/src/framework/logger"
"nms_cxy/src/framework/utils/file" "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/common"
"nms_cxy/src/modules/nms_cxy/utils/kafka" "nms_cxy/src/modules/nms_cxy/utils/kafka"
) )
// 实例化数据层 ResourceImpl 结构体 // 实例化数据层 ResourceImpl 结构体
var NewResourceImpl = &ResourceImpl{} var NewResourceImpl = &ResourceImpl{
nrmLogService: NewNRMLogImpl,
neInfoService: neService.NewNeInfoImpl,
}
// 资源数据处理服务 服务层处理 // 资源数据处理服务 服务层处理
type ResourceImpl struct{} type ResourceImpl struct {
// 资源数据日志处理服务
nrmLogService INRMLog
// 网元信息服务
neInfoService neService.INeInfo
}
// ResourceeUploadOSS 资源数据上报 // ResourceeUploadOSS 资源数据上报
// OMC在每天的0时及12时上报网元的全量资源数据文件至OSS // OMC在每天的0时及12时上报网元的全量资源数据文件至OSS
func (s *ResourceImpl) ResourceeUploadOSS(neType string) error { func (s *ResourceImpl) ResourceeUploadOSS(neType string) error {
// 资源数据 var pageNum int64 = 1
var pageSize int64 = 20
dataArr := []any{} dataArr := []any{}
dataArr = append(dataArr, map[string]any{
"RUID": "WXZX001CLL0000115349200113", // 查网元
"UserLabel": "cell1000", neInfo := s.neInfoService.SelectNeInfoByNeTypeAndNeID(neType, "001")
"CellBarred": 0, if neInfo.NeType != neType {
"UeInactiveTimer": 10000, logger.Errorf("ResourceeUploadOSS ne info not fount")
"SupportRRCNumbers": 200, 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{ dataSaveFileName := common.DataSaveFileName{
ResCode: neType, ResCode: neType,
@@ -43,6 +128,11 @@ func (s *ResourceImpl) ResourceeUploadOSS(neType string) error {
return common.UploadOSSByJSONToZip(filePath, neType, "NRM") return common.UploadOSSByJSONToZip(filePath, neType, "NRM")
} }
// ResourceeInsert 资源数据变更日志插入
func (s *ResourceImpl) ResourceeInsert(nrmLog model.NRMLog) string {
return s.nrmLogService.Insert(nrmLog)
}
// KafkaPush 推送数据Kafka // KafkaPush 推送数据Kafka
// //
// acronyms 资源对象类型简称,没有就填空字符串 // acronyms 资源对象类型简称,没有就填空字符串