Files
nbi_alarm/handle/api/req_sync_alarm_file.go
2023-08-24 20:37:19 +08:00

99 lines
2.8 KiB
Go

package api
import (
"fmt"
"omc/core"
"omc/core/manage"
"omc/core/parse"
"omc/handle/service"
"strconv"
"github.com/aceld/zinx/ziface"
"github.com/aceld/zinx/zlog"
"github.com/aceld/zinx/znet"
)
var ReqSyncAlarmFileID uint32 = 5
var ReqSyncAlarmFileType uint32 = 6
var ReqSyncAlarmFileName string = "ackSyncAlarmFile"
var ReqSyncAlarmFileResultType uint32 = 7
var ReqSyncAlarmFileResultName string = "ackSyncAlarmFileResult"
// reqSyncAlarmFile 文件方式同步告警请求
type ReqSyncAlarmFile struct {
znet.BaseRouter
}
func (s *ReqSyncAlarmFile) Handle(request ziface.IRequest) {
// 消息处理
checker := []string{"reqId"}
body, err := parse.RequestBodyDecode(request, checker)
reqId := body.Data["reqId"]
if err != nil || reqId == "" {
zlog.Ins().ErrorF("inlaid message body %s", err.Error())
request.GetConnection().SendMsg(ReqSyncAlarmFileType, core.ResultError(ReqSyncAlarmFileName, err.Error(), ""))
return
}
// 额外参数预设初始值
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 || alarmSeq == "" {
fmt.Println(alarmSeq)
alarmSeq = "0"
}
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(ReqSyncAlarmFileType, core.ResultError(ReqSyncAlarmFileName, "server internal error", reqId))
return
}
// 检查用户是否登录
u := m.GetUserByPID(body.UID)
if !u.LoginState {
zlog.Ins().ErrorF("no permissions ")
request.GetConnection().SendMsg(ReqSyncAlarmFileType, core.ResultError(ReqSyncAlarmFileName, "no permissions", reqId))
return
}
// 同步的消息序号
seq, err := strconv.Atoi(alarmSeq)
if err != nil {
seq = 0
}
// check alarmSeq 是否存在
neBind, _ := parse.ConvertBindFlag(m.BindFlag)
alarm, err := service.ListForSaveFile(neBind.NeType, neBind.NeId, int64(seq), startTime, endTime, syncSource)
if err != nil {
zlog.Ins().ErrorF("no permissions ")
request.GetConnection().SendMsg(ReqSyncAlarmFileType, core.ResultError(ReqSyncAlarmFileName, "no permissions", reqId))
return
}
if len(alarm) > 0 {
request.GetConnection().SendMsg(ReqSyncAlarmFileResultType, core.Result(ReqSyncAlarmFileResultName, map[string]string{
"reqId": reqId,
"result": "succ",
"resDesc": "ok",
"fileName": "/ftproot/GD/WX/HW/JS_OMC2/FM/20150611/ FM-OMC-1A-V1.1.0-20150611011603-001.txt",
}))
return
}
request.GetConnection().SendMsg(ReqSyncAlarmFileType, core.ResultSuccess(ReqSyncAlarmFileName, "ok", reqId))
}