文件服务
This commit is contained in:
@@ -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))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user