package controllers import ( "basic.com/dbapi.git" "fmt" "github.com/gin-gonic/gin" "webserver/extend/code" "webserver/extend/util" "webserver/models" ) type CameraTaskController struct { } //用于接收多个摄像机的id,以逗号隔开 type MultiCamera struct { CameraIds []string `json:"cameraIds"` } type CameraTaskVo struct { Id string `json:"id"` CameraId string `json:"camera_id"` TaskId string `json:"task_id"` //任务id 来自于任务表 TimeRule string `json:"time_rule"` ReactRule string `json:"react_rule"` ReactDevice string `json:"react_device"` DelFlag bool `json:"del_flag"` UpdateFlag bool `json:"update_flag"` Enable int `json:"enable"` //默认启用 Sort int `json:"sort"` //任务排序 IsFull int `json:"is_full"` //参数是否设置完整 LinkTaskId string `json:"link_task_id"` //联动任务组 } type CameraTaskSaveArg struct { Id string `json:"id"` SetType string `json:"set_type" example:"batchTask:批量任务,linkTask:联动任务"`//任务设置方式(批量设置还是联动任务设置) CameraIds []string `json:"camera_ids"` TaskId string `json:"task_id"` GroupId string `json:"group_id"` GroupText string `json:"group_text"` GroupRule []CameraTaskArgVo `json:"group_rule"` } type CameraTaskArgGroup struct { Id string `json:"id"` CameraTaskId string `json:"camera_task_id"` GroupId string `json:"group_id"` GroupText string `json:"group_text"` AlarmLevel int `json:"alarm_level"` } type CameraTaskArgVo struct { Id string `json:"id"` CameraId string `json:"camera_id"`//摄像机id PolygonId string `json:"polygon_id"`//多边形id SdkId string `json:"sdk_id"`//算法id SdkArgAlias string `json:"sdk_arg_alias"`//算法参数别名 Operator string `json:"operator"`//计算方式=,>,>=等等 OperatorType string `json:"operator_type"`//计算的值类型 SdkArgValue string `json:"sdk_arg_value"` //算法参数值设置 RuleWithPre string `json:"rule_with_pre"` //与下一条的逻辑运算符 GroupId string `json:"group_id"` } type LinkCameraTasksVo struct { } type CameraTaskInfoVo struct { Camera models.Camera `json:"camera"` Tasks []models.Task `json:"tasks"` Polygon CameraPolygonVo `json:"polygon"` } func (controller CameraTaskController) FindTasksByCameraIds(c *gin.Context){ var mulCamera MultiCamera c.BindJSON(&mulCamera) var api dbapi.CameraTaskApi flag, data := api.FindTasksByCameraIds(mulCamera.CameraIds) if flag { util.ResponseFormat(c,code.Success,data) } else { util.ResponseFormat(c,code.ComError,data) } } func (ctc CameraTaskController) AddTask(c *gin.Context) { cameraId := c.PostForm("cameraId") taskId := c.PostForm("taskId") if cameraId == "" || taskId == "" { util.ResponseFormat(c,code.RequestParamError,"参数有误") return } var api dbapi.CameraTaskApi if b,data := api.AddTask(cameraId, taskId);b { util.ResponseFormat(c,code.AddSuccess, data) } else { if data.(string) == "此国标摄像机已在其它服务器配置任务!" { util.ResponseFormat(c,code.AddTaskErr, data) } else { util.ResponseFormat(c,code.ComError, data) } } } func (controller CameraTaskController) CameraTaskAll(c *gin.Context) { cameraId := c.Param("cameraId") if cameraId == "" { util.ResponseFormat(c,code.RequestParamError,"摄像机id不能为空") return } var api dbapi.CameraTaskApi flag,data := api.CameraTaskAll(cameraId) if flag { util.ResponseFormat(c,code.Success,data) } else { util.ResponseFormat(c,code.ComError,data) } } func (ac CameraController) CameraTaskSave(c *gin.Context) { var saveBody CameraTaskSaveArg err := c.BindJSON(&saveBody) if err != nil { util.ResponseFormat(c, code.RequestParamError, "参数有误") return } var api dbapi.CameraTaskApi paramBody := util.Struct2Map(saveBody) fmt.Println("paramBody:",paramBody) flag, data := api.CameraTaskSave(paramBody) fmt.Println("data",data) if flag { util.ResponseFormat(c,code.Success,data) } else { util.ResponseFormat(c, code.ComError, data) } } func (ac CameraController) CameraDelTask(c *gin.Context) { cameraId := c.Param("cameraId") taskId := c.Param("taskId") if cameraId == "" || taskId == "" { util.ResponseFormat(c,code.RequestParamError,"参数有误") return } var api dbapi.CameraTaskApi flag,data := api.DeleteCameraTask(cameraId,taskId) if flag { util.ResponseFormat(c, code.Success, data) } else { util.ResponseFormat(c, code.ComError, data) } } type DataTransVo struct { CameraIds []string `json:"camera_ids"` TaskId string `json:"task_id"` IsDataTrans int `json:"is_data_trans"` } type GroupAlarmLevelVo struct { GroupId string `json:"group_id"` AlarmLevel int `json:"alarm_level"` } func (controller CameraTaskController) SaveIsDataTrans(c *gin.Context) { var transVo DataTransVo if err := c.BindJSON(&transVo);err!=nil { util.ResponseFormat(c,code.RequestParamError,"参数有误") return } var api dbapi.CameraTaskApi paramBody := util.Struct2Map(transVo) flag ,data := api.SaveIsDataTrans(paramBody) if flag { util.ResponseFormat(c,code.Success,data) } else { util.ResponseFormat(c,code.ComError,data) } } func (controller CameraTaskController) SaveAlarmLevelByGroup(c *gin.Context) { var groupLevelVo GroupAlarmLevelVo if err := c.BindJSON(&groupLevelVo);err !=nil { util.ResponseFormat(c,code.RequestParamError,"参数有误") return } var api dbapi.CameraTaskApi flag,data := api.SaveAlarmLevelByGroup(groupLevelVo.GroupId,groupLevelVo.AlarmLevel) if flag { util.ResponseFormat(c,code.Success,data) } else { util.ResponseFormat(c,code.ComError,data) } } type CameraTaskStatusVo struct { CameraId string `json:"cameraId"` TaskId string `json:"taskId"` Status int `json:"status"` } func (controller CameraTaskController) UpdateCameraTaskStatus(c *gin.Context) { var paramVo CameraTaskStatusVo if err := c.BindJSON(¶mVo);err !=nil { util.ResponseFormat(c,code.RequestParamError,"参数有误") return } var api dbapi.CameraTaskApi flag, data := api.UpdateCameraTaskStatus(paramVo.CameraId, paramVo.TaskId, paramVo.Status) if flag { if data.(string) == "此任务为停用状态,请在任务管理中开启!"{ util.ResponseFormat(c,code.TaskStoped,data) } else { util.ResponseFormat(c,code.UpdateSuccess,data) } } else { util.ResponseFormat(c,code.ComError,data) } }