重构
This commit is contained in:
69
handle/api/req_sync_alarm_msg.go
Normal file
69
handle/api/req_sync_alarm_msg.go
Normal file
@@ -0,0 +1,69 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"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 ReqSyncAlarmMsgID uint32 = 3
|
||||
var ReqSyncAlarmMsgType uint32 = 4
|
||||
var ReqSyncAlarmMsgName string = "ackSyncAlarmMsg"
|
||||
|
||||
// reqSyncAlarmMsg 消息同步
|
||||
type ReqSyncAlarmMsg struct {
|
||||
znet.BaseRouter
|
||||
}
|
||||
|
||||
// reqSyncAlarmMsg
|
||||
func (s *ReqSyncAlarmMsg) Handle(request ziface.IRequest) {
|
||||
// 消息处理
|
||||
checker := []string{"reqId", "alarmSeq"}
|
||||
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(ReqSyncAlarmMsgType, core.ResultError(ReqSyncAlarmMsgName, err.Error(), ""))
|
||||
return
|
||||
}
|
||||
|
||||
//管理模块
|
||||
m := manage.GetManager(request.GetConnection().GetName())
|
||||
if m == nil {
|
||||
zlog.Ins().ErrorF("server internal error")
|
||||
request.GetConnection().SendMsg(ReqSyncAlarmMsgType, core.ResultError(ReqSyncAlarmMsgName, "server internal error", reqId))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查用户是否登录
|
||||
u := m.GetUserByPID(body.UID)
|
||||
if !u.LoginState {
|
||||
zlog.Ins().ErrorF("no permissions ")
|
||||
request.GetConnection().SendMsg(ReqSyncAlarmMsgType, core.ResultError(ReqSyncAlarmMsgName, "no permissions", reqId))
|
||||
return
|
||||
}
|
||||
|
||||
alarmSeq, err := strconv.Atoi(body.Data["alarmSeq"])
|
||||
if err != nil || alarmSeq < 1 {
|
||||
zlog.Ins().ErrorF("invalid parameter of message body")
|
||||
request.GetConnection().SendMsg(ReqSyncAlarmMsgType, core.ResultError(ReqSyncAlarmMsgName, "invalid parameter of message body", reqId))
|
||||
return
|
||||
}
|
||||
|
||||
//check alarmSeq 是否存在
|
||||
neBind, _ := parse.ConvertBindFlag(m.BindFlag)
|
||||
alarms, _ := service.GetRealTimeAlarm(neBind.NeType, neBind.NeId, int32(alarmSeq))
|
||||
if len(alarms) == 0 {
|
||||
request.GetConnection().SendMsg(ReqSyncAlarmMsgType, core.ResultError(ReqSyncAlarmMsgName, "alarm seq does not exist", reqId))
|
||||
return
|
||||
}
|
||||
//更新实时上报的alarm seq
|
||||
m.UpdateAlarmSeq(int32(alarmSeq))
|
||||
request.GetConnection().SendMsg(ReqSyncAlarmMsgType, core.ResultSuccess(ReqSyncAlarmMsgName, "ok", reqId))
|
||||
}
|
||||
Reference in New Issue
Block a user