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"
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 表名称

View File

@@ -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

View File

@@ -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 资源对象类型简称,没有就填空字符串

View File

@@ -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 资源对象类型简称,没有就填空字符串