92 lines
2.6 KiB
Go
92 lines
2.6 KiB
Go
package api
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/aceld/zinx/ziface"
|
|
"github.com/aceld/zinx/zlog"
|
|
"github.com/aceld/zinx/znet"
|
|
"omc/conf"
|
|
"omc/core"
|
|
"omc/lib"
|
|
"omc/omc"
|
|
"omc/service"
|
|
"strconv"
|
|
"time"
|
|
)
|
|
|
|
// SyncAlarmFileApi 文件方式同步告警请求
|
|
type SyncAlarmFileApi 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) {
|
|
// 消息处理
|
|
checker := []string{"reqId", "syncSource"}
|
|
msg, err := core.APIDecode(request, checker)
|
|
if err != nil {
|
|
zlog.Ins().ErrorF("inlaid message body %s", err.Error())
|
|
request.GetConnection().SendMsg(omc.AckSyncAlarmFile, omc.ErrorMsg("ackSyncAlarmFile", "", err.Error()))
|
|
return
|
|
}
|
|
//管理模块
|
|
m := core.GetManager(request.GetConnection().GetName())
|
|
if m == nil {
|
|
zlog.Ins().ErrorF("server internal error")
|
|
request.GetConnection().SendMsg(omc.AckSyncAlarmFile, omc.ErrorMsg("ackSyncAlarmFile", msg.Msg["reqId"], "server internal error"))
|
|
return
|
|
}
|
|
|
|
// 检查用户是否登录
|
|
u := m.GetUserByPID(msg.UID)
|
|
if !u.LoginState || u.AlarmType != omc.FILE {
|
|
zlog.Ins().ErrorF("no permissions ")
|
|
request.GetConnection().SendMsg(omc.AckSyncAlarmFile, omc.ErrorMsg("ackSyncAlarmFile", msg.Msg["reqId"], "no permissions"))
|
|
return
|
|
}
|
|
//查询需要上报的告警信息
|
|
start := ""
|
|
end := ""
|
|
syncSource := ""
|
|
alarmSeq := 0
|
|
fmt.Println("msg.Msg:", msg.Msg)
|
|
//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 := msg.Msg["startTime"]; ok {
|
|
start = v
|
|
}
|
|
if v, ok := msg.Msg["endTime"]; ok {
|
|
end = v
|
|
}
|
|
if v, ok := msg.Msg["syncSource"]; ok {
|
|
syncSource = v
|
|
}
|
|
if v, ok := msg.Msg["alarmSeq"]; ok {
|
|
if seq, err := strconv.Atoi(v); err == nil {
|
|
alarmSeq = seq
|
|
}
|
|
}
|
|
neBind, _ := core.ConvertBindFlag(m.BindFlag)
|
|
alarms, err := service.GetAlarm(neBind.NeType, neBind.NeId, start, end, syncSource, alarmSeq)
|
|
if err != nil || len(alarms) == 0 {
|
|
|
|
request.GetConnection().SendMsg(omc.AckSyncAlarmFile, omc.ErrorMsg("ackSyncAlarmFile", msg.Msg["reqId"], "not find record"))
|
|
return
|
|
}
|
|
//ack
|
|
request.GetConnection().SendMsg(omc.AckSyncAlarmFile, omc.SuccessMsg("ackSyncAlarmFile", msg.Msg["reqId"], ""))
|
|
|
|
//打包结果文件
|
|
//打包生成文件
|
|
var meta lib.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)
|
|
|
|
}
|