From 98ad90cab78f510cced6881032b051fcecab29a7 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 24 Aug 2023 17:01:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handle/api/req_sync_alarm_file.go | 95 +++++++++++-------------------- handle/service/sysn_alarm_file.go | 94 ++++-------------------------- 2 files changed, 45 insertions(+), 144 deletions(-) diff --git a/handle/api/req_sync_alarm_file.go b/handle/api/req_sync_alarm_file.go index 7953377..f114bf0 100644 --- a/handle/api/req_sync_alarm_file.go +++ b/handle/api/req_sync_alarm_file.go @@ -2,99 +2,70 @@ package api import ( "fmt" - "omc/conf" "omc/core" - "omc/core/consts" - "omc/core/file" "omc/core/manage" "omc/core/parse" - "omc/handle/service" - "strconv" - "time" "github.com/aceld/zinx/ziface" "github.com/aceld/zinx/zlog" "github.com/aceld/zinx/znet" ) -var ackSyncAlarmFileMsgID uint32 = 6 -var ackSyncAlarmFileMsgName string = "ackSyncAlarmFile" +var ReqSyncAlarmFileID uint32 = 5 +var ReqSyncAlarmFileType uint32 = 6 +var ReqSyncAlarmFileName string = "ackSyncAlarmFile" +var ReqSyncAlarmFileResultType uint32 = 7 +var ReqSyncAlarmFileResultName string = "ackSyncAlarmFileResult" -// SyncAlarmFileApi 文件方式同步告警请求 -type SyncAlarmFileApi struct { +// reqSyncAlarmFile 文件方式同步告警请求 +type ReqSyncAlarmFile struct { znet.BaseRouter } -// Handle -// reqSyncAlarmFile;reqId=33;startTime=2014-11-27 10:00:00;endTime=2014-11-27 10:30:00; syncSource =0 -func (*SyncAlarmFileApi) Handle(request ziface.IRequest) { +func (s *ReqSyncAlarmFile) Handle(request ziface.IRequest) { // 消息处理 - checker := []string{"reqId", "syncSource"} + checker := []string{"reqId"} body, err := parse.RequestBodyDecode(request, checker) - if err != nil { + reqId := body.Data["reqId"] + if err != nil || reqId == "" { zlog.Ins().ErrorF("inlaid message body %s", err.Error()) - request.GetConnection().SendMsg(ackSyncAlarmFileMsgID, core.ResultError(ackSyncAlarmFileMsgName, err.Error(), "")) + request.GetConnection().SendMsg(ReqSyncAlarmFileType, core.ResultError(ReqSyncAlarmFileName, err.Error(), "")) return } - reqId := body.Data["reqId"] + // 额外参数预设初始值 + startTime, startTimeOk := body.Data["startTime"] + if startTimeOk { + fmt.Println(startTime) + } + endTime, endTimeOk := body.Data["endTime"] + if endTimeOk { + fmt.Println(endTime) + } + alarmSeq, alarmSeqOk := body.Data["alarmSeq"] + if alarmSeqOk { + fmt.Println(alarmSeq) + } + syncSource, syncSourceOk := body.Data["syncSource"] + if syncSourceOk { + fmt.Println(syncSource) + } //管理模块 m := manage.GetManager(request.GetConnection().GetName()) if m == nil { zlog.Ins().ErrorF("server internal error") - request.GetConnection().SendMsg(ackSyncAlarmFileMsgID, core.ResultError(ackSyncAlarmFileMsgName, "server internal error", reqId)) + request.GetConnection().SendMsg(ReqSyncAlarmFileType, core.ResultError(ReqSyncAlarmFileName, "server internal error", reqId)) return } // 检查用户是否登录 u := m.GetUserByPID(body.UID) - if !u.LoginState || u.AlarmType != consts.FILE { + if !u.LoginState { zlog.Ins().ErrorF("no permissions ") - request.GetConnection().SendMsg(ackSyncAlarmFileMsgID, core.ResultError(ackSyncAlarmFileMsgName, "no permissions", reqId)) + request.GetConnection().SendMsg(ReqSyncAlarmFileType, core.ResultError(ReqSyncAlarmFileName, "no permissions", reqId)) return } - //查询需要上报的告警信息 - start := "" - end := "" - syncSource := "" - alarmSeq := 0 - fmt.Println("body.Data:", body.Data) - //map[alarmSeq:1 reqId:35 syncSource:1] - // map[endTime:2023-07-15 23:59:59 reqId:34 startTime:2023-01-08 16:07:00 syncSource:0] - if v, ok := body.Data["startTime"]; ok { - start = v - } - if v, ok := body.Data["endTime"]; ok { - end = v - } - if v, ok := body.Data["syncSource"]; ok { - syncSource = v - } - if v, ok := body.Data["alarmSeq"]; ok { - if seq, err := strconv.Atoi(v); err == nil { - alarmSeq = seq - } - } - neBind, _ := parse.ConvertBindFlag(m.BindFlag) - alarms, err := service.GetAlarm(neBind.NeType, neBind.NeId, start, end, syncSource, alarmSeq) - if err != nil || len(alarms) == 0 { - - request.GetConnection().SendMsg(ackSyncAlarmFileMsgID, core.ResultError(ackSyncAlarmFileMsgName, "not find record", reqId)) - return - } - //ack - request.GetConnection().SendMsg(ackSyncAlarmFileMsgID, core.ResultSuccess(ackSyncAlarmFileMsgName, "", reqId)) - - //打包结果文件 - //打包生成文件 - var meta file.FileMeta - meta.DirRoot = conf.OmcConf.FTPRoot - meta.Province = m.Province - meta.DeviceCode = m.DeviceCode - meta.Index = "001" - meta.Time = time.Now().Format("20060102150405") - meta.Compress = false - go service.GenFile(request, &meta, alarms) + request.GetConnection().SendMsg(ReqSyncAlarmFileType, core.ResultSuccess(ReqSyncAlarmFileName, "ok", reqId)) } diff --git a/handle/service/sysn_alarm_file.go b/handle/service/sysn_alarm_file.go index aa3842c..8beb0ab 100644 --- a/handle/service/sysn_alarm_file.go +++ b/handle/service/sysn_alarm_file.go @@ -7,7 +7,6 @@ import ( "errors" "omc/core" "omc/core/db" - "omc/core/emun" "omc/core/file" "omc/handle/model" "time" @@ -17,7 +16,7 @@ import ( var AckSyncAlarmFileResultMsgID uint32 = 9 -func GenFile(request ziface.IRequest, meta *file.FileMeta, data []OmcAlarm) { +func GenFile(request ziface.IRequest, meta *file.FileMeta, data []model.OmcAlarm) { //生成文件内容 dataBuff := bytes.NewBuffer([]byte{}) for _, v := range data { @@ -43,38 +42,14 @@ func GenFile(request ziface.IRequest, meta *file.FileMeta, data []OmcAlarm) { } // GetAlarmOfAlarmSeq 获取告警信息 -func GetAlarmOfAlarmSeq(neType, neId string, alarmSeq int) ([]OmcAlarm, error) { +func GetAlarmOfAlarmSeq(neType, neId string, alarmSeq int) ([]model.OmcAlarm, error) { var alarms []model.Alarm - var result []OmcAlarm query := db.Client.Model(&model.Alarm{}).Where("ne_type = ? and ne_id = ? and alarm_seq > ?", neType, neId, alarmSeq) if err := query.Order("alarm_seq asc").Find(&alarms).Error; err != nil { return nil, err } - for _, v := range alarms { - var item OmcAlarm - item.AlarmSeq = int32(v.AlarmSeq) - item.AlarmTitle = v.AlarmTitle - item.AlarmStatus = int32(v.AlarmStatus) - item.AlarmType = v.AlarmType - item.OrigSeverity = emun.OrigSeverity(v.OrigSeverity) - item.EventTime = v.EventTime.Format("2006-01-02 15:04:05") - item.AlarmId = v.AlarmId - item.SpecificProblemID = v.SpecificProblemID - item.SpecificProblem = v.SpecificProblem - item.NeUID = v.NeId - item.NeName = v.NeName - item.NeType = v.NeType - item.ObjectUID = v.ObjectUID - item.ObjectName = v.NeName - item.ObjectType = v.ObjectType - item.LocationInfo = v.LocationInfo - item.AddInfo = v.AddInfo - item.PVFlag = v.PVFlag - item.Province = v.Province - result = append(result, item) - } - return result, nil + return ConvertOMCAlarm(alarms), nil } //GetAlarm @@ -86,7 +61,7 @@ func GetAlarmOfAlarmSeq(neType, neId string, alarmSeq int) ([]OmcAlarm, error) { */ -func GetAlarm(neType, neId, startTime, endTime, syncSource string, alarmSeq int) ([]OmcAlarm, error) { +func GetAlarm(neType, neId, startTime, endTime, syncSource string, alarmSeq int) ([]model.OmcAlarm, error) { if syncSource == "0" { return GetAlarmOfEventTime(neType, neId, startTime, endTime) @@ -100,9 +75,9 @@ func GetAlarm(neType, neId, startTime, endTime, syncSource string, alarmSeq int) } // GetAlarmOfEventTime 获取告警信息 -func GetAlarmOfEventTime(neType, neId, startTime, endTime string) ([]OmcAlarm, error) { +func GetAlarmOfEventTime(neType, neId, startTime, endTime string) ([]model.OmcAlarm, error) { var alarms []model.Alarm - var result []OmcAlarm + var result []model.OmcAlarm if startTime == "" && endTime == "" { return result, nil @@ -125,39 +100,16 @@ func GetAlarmOfEventTime(neType, neId, startTime, endTime string) ([]OmcAlarm, e if err := query.Order("alarm_seq asc").Find(&alarms).Error; err != nil { return nil, err } - for _, v := range alarms { - var item OmcAlarm - item.AlarmSeq = int32(v.AlarmSeq) - item.AlarmTitle = v.AlarmTitle - item.AlarmStatus = int32(v.AlarmStatus) - item.AlarmType = v.AlarmType - item.OrigSeverity = emun.OrigSeverity(v.OrigSeverity) - item.EventTime = v.EventTime.Format("2006-01-02 15:04:05") - item.AlarmId = v.AlarmId - item.SpecificProblemID = v.SpecificProblemID - item.SpecificProblem = v.SpecificProblem - item.NeUID = v.NeId - item.NeName = v.NeName - item.NeType = v.NeType - item.ObjectUID = v.ObjectUID - item.ObjectName = v.NeName - item.ObjectType = v.ObjectType - item.LocationInfo = v.LocationInfo - item.AddInfo = v.AddInfo - item.PVFlag = v.PVFlag - item.Province = v.Province - result = append(result, item) - } - return result, nil + + return ConvertOMCAlarm(alarms), nil } // GetAlarmOfLog 获取告警信息 -func GetAlarmOfLog(neType, neId, startTime, endTime string) ([]OmcAlarm, error) { +func GetAlarmOfLog(neType, neId, startTime, endTime string) ([]model.OmcAlarm, error) { var alarms []model.Alarm - var result []OmcAlarm if startTime == "" && endTime == "" { - return result, nil + return []model.OmcAlarm{}, nil } var aIDs []int64 query := db.Client.Model(&model.NbiAlarmLog{}).Select("distinct a_id").Where("ne_type = ? and ne_id = ?", neType, neId) @@ -182,28 +134,6 @@ func GetAlarmOfLog(neType, neId, startTime, endTime string) ([]OmcAlarm, error) if err := db.Client.Model(&model.Alarm{}).Where("id in (?)", aIDs).Find(&alarms).Error; err != nil { return nil, err } - for _, v := range alarms { - var item OmcAlarm - item.AlarmSeq = int32(v.AlarmSeq) - item.AlarmTitle = v.AlarmTitle - item.AlarmStatus = int32(v.AlarmStatus) - item.AlarmType = v.AlarmType - item.OrigSeverity = emun.OrigSeverity(v.OrigSeverity) - item.EventTime = v.EventTime.Format("2006-01-02 15:04:05") - item.AlarmId = v.AlarmId - item.SpecificProblemID = v.SpecificProblemID - item.SpecificProblem = v.SpecificProblem - item.NeUID = v.NeId - item.NeName = v.NeName - item.NeType = v.NeType - item.ObjectUID = v.ObjectUID - item.ObjectName = v.NeName - item.ObjectType = v.ObjectType - item.LocationInfo = v.LocationInfo - item.AddInfo = v.AddInfo - item.PVFlag = v.PVFlag - item.Province = v.Province - result = append(result, item) - } - return result, nil + + return ConvertOMCAlarm(alarms), nil }