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"` } // @Security ApiKeyAuth // @Summary 事件推送保存 // @Description 事件推送保存 // @Accept json // @Produce json // @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) } } // @Security ApiKeyAuth // @Summary 根据事件推送主题的一级和二级选项获取最后下拉菜单列表 // @Description 根据事件推送主题的一级和二级选项获取最后下拉菜单列表 // @Accept x-www-form-urlencoded // @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) } } // @Security ApiKeyAuth // @Summary 查全部 // @Description 查全部 // @Accept x-www-form-urlencoded // @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, "") } } // @Security ApiKeyAuth // @Summary 事件推送编辑 // @Description 事件推送编辑 // @Accept x-www-form-urlencoded // @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"` } // @Security ApiKeyAuth // @Summary 改变enable状态 // @Description 改变enable状态 // @Accept json // @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) } } // @Security ApiKeyAuth // @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) } }