文件服务
This commit is contained in:
@@ -2,99 +2,70 @@ package api
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"omc/conf"
|
|
||||||
"omc/core"
|
"omc/core"
|
||||||
"omc/core/consts"
|
|
||||||
"omc/core/file"
|
|
||||||
"omc/core/manage"
|
"omc/core/manage"
|
||||||
"omc/core/parse"
|
"omc/core/parse"
|
||||||
"omc/handle/service"
|
|
||||||
"strconv"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/aceld/zinx/ziface"
|
"github.com/aceld/zinx/ziface"
|
||||||
"github.com/aceld/zinx/zlog"
|
"github.com/aceld/zinx/zlog"
|
||||||
"github.com/aceld/zinx/znet"
|
"github.com/aceld/zinx/znet"
|
||||||
)
|
)
|
||||||
|
|
||||||
var ackSyncAlarmFileMsgID uint32 = 6
|
var ReqSyncAlarmFileID uint32 = 5
|
||||||
var ackSyncAlarmFileMsgName string = "ackSyncAlarmFile"
|
var ReqSyncAlarmFileType uint32 = 6
|
||||||
|
var ReqSyncAlarmFileName string = "ackSyncAlarmFile"
|
||||||
|
var ReqSyncAlarmFileResultType uint32 = 7
|
||||||
|
var ReqSyncAlarmFileResultName string = "ackSyncAlarmFileResult"
|
||||||
|
|
||||||
// SyncAlarmFileApi 文件方式同步告警请求
|
// reqSyncAlarmFile 文件方式同步告警请求
|
||||||
type SyncAlarmFileApi struct {
|
type ReqSyncAlarmFile struct {
|
||||||
znet.BaseRouter
|
znet.BaseRouter
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle
|
func (s *ReqSyncAlarmFile) Handle(request ziface.IRequest) {
|
||||||
// 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"}
|
checker := []string{"reqId"}
|
||||||
body, err := parse.RequestBodyDecode(request, checker)
|
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())
|
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
|
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())
|
m := manage.GetManager(request.GetConnection().GetName())
|
||||||
if m == nil {
|
if m == nil {
|
||||||
zlog.Ins().ErrorF("server internal error")
|
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
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查用户是否登录
|
// 检查用户是否登录
|
||||||
u := m.GetUserByPID(body.UID)
|
u := m.GetUserByPID(body.UID)
|
||||||
if !u.LoginState || u.AlarmType != consts.FILE {
|
if !u.LoginState {
|
||||||
zlog.Ins().ErrorF("no permissions ")
|
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
|
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))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"omc/core"
|
"omc/core"
|
||||||
"omc/core/db"
|
"omc/core/db"
|
||||||
"omc/core/emun"
|
|
||||||
"omc/core/file"
|
"omc/core/file"
|
||||||
"omc/handle/model"
|
"omc/handle/model"
|
||||||
"time"
|
"time"
|
||||||
@@ -17,7 +16,7 @@ import (
|
|||||||
|
|
||||||
var AckSyncAlarmFileResultMsgID uint32 = 9
|
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{})
|
dataBuff := bytes.NewBuffer([]byte{})
|
||||||
for _, v := range data {
|
for _, v := range data {
|
||||||
@@ -43,38 +42,14 @@ func GenFile(request ziface.IRequest, meta *file.FileMeta, data []OmcAlarm) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetAlarmOfAlarmSeq 获取告警信息
|
// 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 alarms []model.Alarm
|
||||||
var result []OmcAlarm
|
|
||||||
|
|
||||||
query := db.Client.Model(&model.Alarm{}).Where("ne_type = ? and ne_id = ? and alarm_seq > ?", neType, neId, alarmSeq)
|
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 {
|
if err := query.Order("alarm_seq asc").Find(&alarms).Error; err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for _, v := range alarms {
|
return ConvertOMCAlarm(alarms), nil
|
||||||
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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//GetAlarm
|
//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" {
|
if syncSource == "0" {
|
||||||
return GetAlarmOfEventTime(neType, neId, startTime, endTime)
|
return GetAlarmOfEventTime(neType, neId, startTime, endTime)
|
||||||
|
|
||||||
@@ -100,9 +75,9 @@ func GetAlarm(neType, neId, startTime, endTime, syncSource string, alarmSeq int)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetAlarmOfEventTime 获取告警信息
|
// 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 alarms []model.Alarm
|
||||||
var result []OmcAlarm
|
var result []model.OmcAlarm
|
||||||
|
|
||||||
if startTime == "" && endTime == "" {
|
if startTime == "" && endTime == "" {
|
||||||
return result, nil
|
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 {
|
if err := query.Order("alarm_seq asc").Find(&alarms).Error; err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for _, v := range alarms {
|
|
||||||
var item OmcAlarm
|
return ConvertOMCAlarm(alarms), nil
|
||||||
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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetAlarmOfLog 获取告警信息
|
// 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 alarms []model.Alarm
|
||||||
var result []OmcAlarm
|
|
||||||
|
|
||||||
if startTime == "" && endTime == "" {
|
if startTime == "" && endTime == "" {
|
||||||
return result, nil
|
return []model.OmcAlarm{}, nil
|
||||||
}
|
}
|
||||||
var aIDs []int64
|
var aIDs []int64
|
||||||
query := db.Client.Model(&model.NbiAlarmLog{}).Select("distinct a_id").Where("ne_type = ? and ne_id = ?", neType, neId)
|
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 {
|
if err := db.Client.Model(&model.Alarm{}).Where("id in (?)", aIDs).Find(&alarms).Error; err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for _, v := range alarms {
|
|
||||||
var item OmcAlarm
|
return ConvertOMCAlarm(alarms), nil
|
||||||
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
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user