package controllers
|
|
import (
|
"basic.com/dbapi.git"
|
"github.com/gin-gonic/gin"
|
"webserver/extend/code"
|
"webserver/extend/util"
|
)
|
|
type EventPushController struct {
|
}
|
|
type EventPushVo struct {
|
Id string `json:"id"`
|
Name string `json:"name"`
|
TimeStart string `json:"time_start"`
|
TimeEnd string `json:"time_end"`
|
IsSatisfyAll bool `json:"is_satisfy_all"`
|
RuleText string `json:"rule_text"`
|
Enable bool `json:"enable"`
|
LinkType string `json:"link_type"`
|
LinkDevice string `json:"link_device"`
|
|
IpPorts []EventPushServerPortVo `json:"ip_ports"`
|
Urls []EventUrlVo `json:"urls"`
|
Rules []EventPushRuleVo `json:"rules"`
|
}
|
|
type EventPushRuleVo struct {
|
Id string `json:"id"`
|
TopicType string `json:"topic_type"` //参数主题,目前分为五类(摄像机、底库、任务、人员、报警等级)
|
TopicArg string `json:"topic_arg"` //主题对应的具体参数
|
Operator string `json:"operator"`
|
OperatorType string `json:"operator_type"`
|
RuleValue string `json:"rule_value"`
|
EventPushId string `json:"event_push_id"`
|
}
|
|
type EventPushServerPortVo struct {
|
ServerIp string `json:"server_ip"`
|
Port int `json:"port"`
|
Enable bool `json:"enable"`
|
}
|
|
type EventUrlVo struct {
|
Url string `json:"url"`
|
Enable bool `json:"enable"`
|
}
|
|
// @Summary 事件推送保存
|
// @Description 事件推送保存
|
// @Tags 事件推送
|
// @Param SaveArgs body controllers.EventPushVo true "时间推送保存参数"
|
// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
|
// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
|
// @Router /data/api-v/eventPush/save [post]
|
func (epc EventPushController) Save(c *gin.Context) {
|
var saveBody EventPushVo
|
if err := c.BindJSON(&saveBody); err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "参数有误")
|
return
|
}
|
var api dbapi.EventPushApi
|
paramBody := util.Struct2Map(saveBody)
|
flag, data := api.Save(paramBody)
|
if flag {
|
util.ResponseFormat(c, code.Success, data)
|
} else {
|
util.ResponseFormat(c, code.ComError, data)
|
}
|
}
|
|
// @Summary 根据事件推送主题的一级和二级选项获取最后下拉菜单列表
|
// @Description 根据事件推送主题的一级和二级选项获取最后下拉菜单列表
|
// @Produce json
|
// @Tags 事件推送
|
// @Param topic query string true "一级主题选项,例如:camera(摄像机)"
|
// @Param type query string true "子选项类型,例如:name(名称)或addr(位置)"
|
// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
|
// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
|
// @Router /data/api-v/eventPush/findByEventTopic [get]
|
func (epc EventPushController) FindByEventTopic(c *gin.Context) {
|
topic := c.Query("topic")
|
childType := c.Query("type")
|
if topic == "" {
|
util.ResponseFormat(c, code.RequestParamError, "参数有误")
|
return
|
}
|
var api dbapi.EventPushApi
|
flag, data := api.FindByEventTopic(topic, childType)
|
if flag {
|
util.ResponseFormat(c, code.Success, data)
|
} else {
|
util.ResponseFormat(c, code.ComError, data)
|
}
|
}
|
|
// @Summary 查全部
|
// @Description 查全部
|
// @Produce json
|
// @Tags 事件推送
|
// @Param name query string false "事件名称"
|
// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
|
// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
|
// @Router /data/api-v/eventPush/findAll [get]
|
func (controller EventPushController) FindAll(c *gin.Context) {
|
name := c.Query("name")
|
var api dbapi.EventPushApi
|
flag, data := api.FindAll(name)
|
if flag {
|
util.ResponseFormat(c, code.Success, data)
|
} else {
|
util.ResponseFormat(c, code.ComError, "")
|
}
|
}
|
|
// @Summary 事件推送编辑
|
// @Description 事件推送编辑
|
// @Produce json
|
// @Tags 事件推送
|
// @Param id query string true "id"
|
// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
|
// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
|
// @Router /data/api-v/eventPush/getById [get]
|
func (controller EventPushController) GetById(c *gin.Context) {
|
id := c.Query("id")
|
if id == "" {
|
util.ResponseFormat(c, code.RequestParamError, "参数有误")
|
return
|
}
|
var api dbapi.EventPushApi
|
flag, data := api.GetById(id)
|
if flag {
|
util.ResponseFormat(c, code.Success, data)
|
} else {
|
util.ResponseFormat(c, code.ComError, "")
|
}
|
}
|
|
type ChangeStatusVo struct {
|
Id string `json:"id"`
|
Enable bool `json:"enable"`
|
}
|
|
// @Summary 改变enable状态
|
// @Description 改变enable状态
|
// @Produce json
|
// @Tags 事件推送
|
// @Param statusBody body controllers.ChangeStatusVo true "参数结构"
|
// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
|
// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
|
// @Router /data/api-v/eventPush/changeStatus [post]
|
func (controller EventPushController) ChangeStatus(c *gin.Context) {
|
var statusBody ChangeStatusVo
|
err := c.BindJSON(&statusBody)
|
if err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "参数有误")
|
return
|
}
|
var api dbapi.EventPushApi
|
flag, data := api.ChangeStatus(statusBody.Id, statusBody.Enable)
|
if flag {
|
util.ResponseFormat(c, code.Success, data)
|
} else {
|
util.ResponseFormat(c, code.ComError, data)
|
}
|
}
|
|
// @Summary 根据id删除
|
// @Description 根据id删除
|
// @Accept x-www-form-urlencoded
|
// @Produce json
|
// @Tags 事件推送
|
// @Param id formData string true "id"
|
// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
|
// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
|
// @Router /data/api-v/eventPush/delete [post]
|
func (controller EventPushController) Delete(c *gin.Context) {
|
id := c.PostForm("id")
|
if id == "" {
|
util.ResponseFormat(c, code.RequestParamError, "参数有误")
|
return
|
}
|
var api dbapi.EventPushApi
|
flag, data := api.Delete(id)
|
if flag {
|
util.ResponseFormat(c, code.Success, data)
|
} else {
|
util.ResponseFormat(c, code.ComError, data)
|
}
|
}
|