ruleTemplate instead of task
New file |
| | |
| | | package controllers |
| | | |
| | | import ( |
| | | "basic.com/dbapi.git" |
| | | "github.com/gin-gonic/gin" |
| | | "webserver/extend/code" |
| | | "webserver/extend/util" |
| | | "webserver/vo" |
| | | ) |
| | | |
| | | type CameraRuleController struct { |
| | | |
| | | } |
| | | |
| | | type PasteRuleArg struct { |
| | | SourceId string `json:"sourceId" binding:"required"` |
| | | TargetIds []string `json:"targetIds" binging:"required"` |
| | | } |
| | | |
| | | // @Summary 显示摄像机场景规则 |
| | | // @Description 显示摄像机场景规则 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags 摄像机规则 |
| | | // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" |
| | | // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" |
| | | // @Router /data/api-v/camera/rule/{cameraId} [get] |
| | | func (crc CameraRuleController) FindByCameraId(c *gin.Context) { |
| | | cameraId := c.Param("cameraId") |
| | | if cameraId == "" { |
| | | util.ResponseFormat(c,code.RequestParamError,"") |
| | | return |
| | | } |
| | | var api dbapi.CameraRuleApi |
| | | b,d := api.FindByCameraId(cameraId) |
| | | if b { |
| | | util.ResponseFormat(c,code.Success,d) |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError,"") |
| | | } |
| | | } |
| | | |
| | | // @Summary 保存摄像机独立规则 |
| | | // @Description 保存摄像机独立规则 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags 摄像机规则 |
| | | // @Param args body vo.GroupRuleVo 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/camera/rule/save [post] |
| | | func (crc CameraRuleController) Save(c *gin.Context) { |
| | | var reqBody vo.GroupRuleVo |
| | | err := c.BindJSON(&reqBody) |
| | | if err !=nil { |
| | | util.ResponseFormat(c,code.RequestParamError,"") |
| | | return |
| | | } |
| | | param := util.Struct2Map(reqBody) |
| | | var api dbapi.CameraRuleApi |
| | | if api.Save(param) { |
| | | util.ResponseFormat(c,code.Success,"") |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError,"") |
| | | } |
| | | } |
| | | |
| | | // @Summary 复制摄像机规则到选定的多个摄像机 |
| | | // @Description 复制摄像机规则到选定的多个摄像机 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags 摄像机规则 |
| | | // @Param args body controllers.PasteRuleArg 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/camera/pasteRules [post] |
| | | func (crc CameraRuleController) PasteRules(c *gin.Context) { |
| | | var reqBody PasteRuleArg |
| | | err := c.BindJSON(&reqBody) |
| | | if err !=nil { |
| | | util.ResponseFormat(c,code.RequestParamError,"") |
| | | return |
| | | } |
| | | param := util.Struct2Map(reqBody) |
| | | var api dbapi.CameraRuleApi |
| | | if api.PasteRules(param) { |
| | | util.ResponseFormat(c,code.Success,"") |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError,"") |
| | | } |
| | | } |
| | | |
| | | // @Summary 保存联动任务规则参数 |
| | | // @Description 保存联动任务规则参数 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags 摄像机规则 |
| | | // @Param saveBody body vo.GroupRuleVo 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/camera/rule/saveLinkRulesByGroup [post] |
| | | func (crc CameraRuleController) SaveLinkRulesByGroup(c *gin.Context) { |
| | | var saveBody vo.GroupRuleVo |
| | | if err := c.BindJSON(&saveBody);err !=nil { |
| | | util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | return |
| | | } |
| | | param := util.Struct2Map(saveBody) |
| | | var api dbapi.CameraRuleApi |
| | | if api.SaveLinkRulesByGroup(param) { |
| | | util.ResponseFormat(c,code.Success,saveBody) |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError, "") |
| | | } |
| | | } |
| | | |
| | | // @Summary 根据多个摄像机id查询联动任务规则设置 |
| | | // @Description 根据多个摄像机id查询联动任务规则设置 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags 摄像机规则 |
| | | // @Param cameraIds body vo.MultiCamera true "摄像机ids" |
| | | // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" |
| | | // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" |
| | | // @Router /data/api-v/camera/rule/getLinkRulesByCameraIds [post] |
| | | func (crc CameraRuleController) GetLinkRulesByCameraIds(c *gin.Context) { |
| | | var idArrVo vo.MultiCamera |
| | | if err := c.BindJSON(&idArrVo);err !=nil { |
| | | util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | return |
| | | } |
| | | if idArrVo.CameraIds == nil || len(idArrVo.CameraIds) == 0 { |
| | | util.ResponseFormat(c,code.RequestParamError,"摄像机id不能少于1") |
| | | return |
| | | } |
| | | param := util.Struct2Map(idArrVo) |
| | | var api dbapi.CameraRuleApi |
| | | flag, ruleList := api.GetLinkRulesByCameraIds(param) |
| | | if flag { |
| | | util.ResponseFormat(c,code.Success, ruleList) |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError,"查询失败") |
| | | } |
| | | |
| | | } |
| | | |
| | | // @Summary 修改规则组报警等级 |
| | | // @Description 修改规则组报警等级 |
| | | // @Produce json |
| | | // @Tags 摄像机规则 |
| | | // @Param reqBody body vo.GroupAlarmLevelVo 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/camera/rule/updateAlarmLevel [post] |
| | | func (crc CameraRuleController) UpdateAlarmLevel(c *gin.Context) { |
| | | var reqBody vo.GroupAlarmLevelVo |
| | | err := c.BindJSON(&reqBody) |
| | | if err != nil { |
| | | util.ResponseFormat(c,code.RequestParamError, "") |
| | | return |
| | | } |
| | | param := util.Struct2Map(reqBody) |
| | | var api dbapi.CameraRuleApi |
| | | if api.UpdateAlarmLevel(param) { |
| | | util.ResponseFormat(c, code.Success, "修改成功")//摄像机任务参数删除完了 |
| | | } else { |
| | | util.ResponseFormat(c, code.ComError, "修改失败") |
| | | } |
| | | } |
| | | |
| | | // @Summary 根据分组id删除摄像机算法规则 |
| | | // @Description 根据分组id删除摄像机算法规则 |
| | | // @Produce json |
| | | // @Tags CameraTaskArgs |
| | | // @Param groupId 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/camera/rule/deleteByGroup [get] |
| | | func (crc CameraRuleController) DeleteByGroup(c *gin.Context) { |
| | | groupId := c.Query("groupId") |
| | | if groupId == "" { |
| | | util.ResponseFormat(c, code.RequestParamError, "id必填") |
| | | return |
| | | } |
| | | var api dbapi.CameraRuleApi |
| | | if api.DeleteByGroup(groupId) { |
| | | util.ResponseFormat(c, code.Success, "删除成功")//摄像机任务参数删除完了 |
| | | } |
| | | util.ResponseFormat(c, code.ComError, "删除失败") |
| | | } |
| | |
| | | package controllers |
| | | |
| | | import ( |
| | | "basic.com/dbapi.git" |
| | | "basic.com/pubsub/esutil.git" |
| | | "encoding/json" |
| | | "fmt" |
| | | "github.com/gin-gonic/gin" |
| | | "strconv" |
| | | "webserver/cache" |
| | | "webserver/extend/code" |
| | | "webserver/extend/config" |
| | | "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"` |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 查询所有任务 |
| | | // @Description "查询所有任务" |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags CameraTask |
| | | // @Param cameraIds body controllers.MultiCamera false "摄像机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/camera/alltask [post] |
| | | func (ctc CameraTaskController) FindTasksByCameraIds(c *gin.Context){ |
| | | var mulCamera MultiCamera |
| | | c.BindJSON(&mulCamera) |
| | | var api dbapi.CameraTaskApi |
| | | flag, data := api.FindTasksByCameraIds(mulCamera.CameraIds) |
| | | if flag { |
| | | bytes, _ := json.Marshal(data) |
| | | var camTInfo []CameraTaskInfoVo |
| | | json.Unmarshal(bytes, &camTInfo) |
| | | |
| | | //处理已被删除的任务 |
| | | |
| | | var delTasks []models.Task |
| | | var taskApi dbapi.TaskApi |
| | | taskInfos := taskApi.FindAll() |
| | | m := make(map[string]string) |
| | | for _,ti :=range taskInfos{ |
| | | if ti.Task.Taskid != FaceExtract_VirtualTaskId{ |
| | | m[ti.Task.Taskid] = ti.Task.Taskid |
| | | } |
| | | } |
| | | localConf, _ := cache.GetServerInfo() |
| | | if localConf.AlarmIp != "" && localConf.ServerId != "" && localConf.AlarmPort>0 { |
| | | indexName := config.EsInfo.EsIndex.AiOcean.IndexName |
| | | esTaskM, e := esutil.AggregateTaskList(localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort)), indexName, localConf.ServerId) |
| | | if e==nil && esTaskM !=nil { |
| | | for _,tM :=range esTaskM { |
| | | if _,ok := m[tM["taskId"].(string)];!ok {//表示此任务已被删除 |
| | | taskId := tM["taskId"].(string) |
| | | m[taskId] = taskId |
| | | delTasks = append(delTasks, models.Task{ |
| | | Taskid: taskId, |
| | | Taskname: tM["taskName"].(string), |
| | | DelFlag: true, |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | var result []CameraTaskInfoVo |
| | | if camTInfo != nil { |
| | | for _, camIn := range camTInfo { |
| | | nIfn := CameraTaskInfoVo{ |
| | | Camera: camIn.Camera, |
| | | Polygon: camIn.Polygon, |
| | | Tasks: append(camIn.Tasks, delTasks...), |
| | | } |
| | | result = append(result, nIfn) |
| | | } |
| | | } |
| | | |
| | | util.ResponseFormat(c,code.Success, result) |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError,data) |
| | | } |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 摄像机添加一个任务 |
| | | // @Description 摄像机添加一个任务 |
| | | // @Accept x-www-form-urlencoded |
| | | // @Produce json |
| | | // @Tags CameraTask |
| | | // @Param cameraId formData string true "摄像机id" |
| | | // @Param taskId 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/cameraTask/addTask [post] |
| | | 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) |
| | | } |
| | | } |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 查询所有任务 |
| | | // @Description "查询所有任务" |
| | | // @Produce json |
| | | // @Tags CameraTask |
| | | // @Param cameraId path 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/camera/task/{cameraId} [get] |
| | | func (ctc 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) |
| | | } |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 摄像机保存任务 |
| | | // @Description 摄像机保存任务 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags camera |
| | | // @Param args body controllers.CameraTaskSaveArg 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/camera/saveTask [post] |
| | | func (cc 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) |
| | | } |
| | | } |
| | | |
| | | type PasteRuleArg struct { |
| | | SourceId string `json:"sourceId" binding:"required"` |
| | | TargetIds []string `json:"targetIds" binging:"required"` |
| | | } |
| | | |
| | | // @Summary 复制摄像机规则到选定的多个摄像机 |
| | | // @Description 复制摄像机规则到选定的多个摄像机 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags CameraTask |
| | | // @Param args body controllers.PasteRuleArg 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/camera/pasteRules [post] |
| | | func (ctc CameraTaskController) PasteRules(c *gin.Context) { |
| | | var reqBody PasteRuleArg |
| | | err := c.BindJSON(&reqBody) |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "") |
| | | return |
| | | } |
| | | var api dbapi.CameraTaskApi |
| | | if api.PasteRules(reqBody.SourceId, reqBody.TargetIds) { |
| | | util.ResponseFormat(c,code.Success,"") |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError,"") |
| | | } |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 删除摄像机的任务 |
| | | // @Description 删除摄像机的任务 |
| | | // @Produce json |
| | | // @Tags camera |
| | | // @Param cameraId path string true "摄像机id" |
| | | // @Param taskId path 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/camera/delTask/{cameraId}/{taskId} [delete] |
| | | func (cc 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"` |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 保存任务是否下传数据 |
| | | // @Description 保存任务是否下传数据 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags CameraTask |
| | | // @Param TransAndAlarmLevel body controllers.DataTransVo 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/cameraTask/saveIsDataTrans [post] |
| | | func (ctc 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) |
| | | } |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 保存规则组报警等级 |
| | | // @Description 保存规则组报警等级 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags CameraTask |
| | | // @Param GroupLevel body controllers.GroupAlarmLevelVo true "alarmLevel" |
| | | // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" |
| | | // @Failure 500 {string} json "{"code":500, success:false, msg:"", data:""}" |
| | | // @Router /data/api-v/cameraTask/saveAlarmLevelByGroup [post] |
| | | func (ctc 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"` |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 更新任务状态 |
| | | // @Description 更新任务状态 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags CameraTask |
| | | // @Param CameraTaskStatus body controllers.CameraTaskStatusVo 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/cameraTask/updateCameraTaskStatus [post] |
| | | func (ctc 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) |
| | | } |
| | | } |
| | | // |
| | | //import ( |
| | | // "basic.com/dbapi.git" |
| | | // "basic.com/pubsub/esutil.git" |
| | | // "encoding/json" |
| | | // "fmt" |
| | | // "github.com/gin-gonic/gin" |
| | | // "strconv" |
| | | // "webserver/cache" |
| | | // "webserver/extend/code" |
| | | // "webserver/extend/config" |
| | | // "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"` |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 查询所有任务 |
| | | //// @Description "查询所有任务" |
| | | //// @Accept json |
| | | //// @Produce json |
| | | //// @Tags CameraTask |
| | | //// @Param cameraIds body controllers.MultiCamera false "摄像机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/camera/alltask [post] |
| | | //func (ctc CameraTaskController) FindTasksByCameraIds(c *gin.Context){ |
| | | // var mulCamera MultiCamera |
| | | // c.BindJSON(&mulCamera) |
| | | // var api dbapi.CameraTaskApi |
| | | // flag, data := api.FindTasksByCameraIds(mulCamera.CameraIds) |
| | | // if flag { |
| | | // bytes, _ := json.Marshal(data) |
| | | // var camTInfo []CameraTaskInfoVo |
| | | // json.Unmarshal(bytes, &camTInfo) |
| | | // |
| | | // //处理已被删除的任务 |
| | | // |
| | | // var delTasks []models.Task |
| | | // var taskApi dbapi.TaskApi |
| | | // taskInfos := taskApi.FindAll() |
| | | // m := make(map[string]string) |
| | | // for _,ti :=range taskInfos{ |
| | | // if ti.Task.Taskid != FaceExtract_VirtualTaskId{ |
| | | // m[ti.Task.Taskid] = ti.Task.Taskid |
| | | // } |
| | | // } |
| | | // localConf, _ := cache.GetServerInfo() |
| | | // if localConf.AlarmIp != "" && localConf.ServerId != "" && localConf.AlarmPort>0 { |
| | | // indexName := config.EsInfo.EsIndex.AiOcean.IndexName |
| | | // esTaskM, e := esutil.AggregateTaskList(localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort)), indexName, localConf.ServerId) |
| | | // if e==nil && esTaskM !=nil { |
| | | // for _,tM :=range esTaskM { |
| | | // if _,ok := m[tM["taskId"].(string)];!ok {//表示此任务已被删除 |
| | | // taskId := tM["taskId"].(string) |
| | | // m[taskId] = taskId |
| | | // delTasks = append(delTasks, models.Task{ |
| | | // Taskid: taskId, |
| | | // Taskname: tM["taskName"].(string), |
| | | // DelFlag: true, |
| | | // }) |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // var result []CameraTaskInfoVo |
| | | // if camTInfo != nil { |
| | | // for _, camIn := range camTInfo { |
| | | // nIfn := CameraTaskInfoVo{ |
| | | // Camera: camIn.Camera, |
| | | // Polygon: camIn.Polygon, |
| | | // Tasks: append(camIn.Tasks, delTasks...), |
| | | // } |
| | | // result = append(result, nIfn) |
| | | // } |
| | | // } |
| | | // |
| | | // util.ResponseFormat(c,code.Success, result) |
| | | // } else { |
| | | // util.ResponseFormat(c,code.ComError,data) |
| | | // } |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 摄像机添加一个任务 |
| | | //// @Description 摄像机添加一个任务 |
| | | //// @Accept x-www-form-urlencoded |
| | | //// @Produce json |
| | | //// @Tags CameraTask |
| | | //// @Param cameraId formData string true "摄像机id" |
| | | //// @Param taskId 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/cameraTask/addTask [post] |
| | | //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) |
| | | // } |
| | | // } |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 查询所有任务 |
| | | //// @Description "查询所有任务" |
| | | //// @Produce json |
| | | //// @Tags CameraTask |
| | | //// @Param cameraId path 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/camera/task/{cameraId} [get] |
| | | //func (ctc 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) |
| | | // } |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 摄像机保存任务 |
| | | //// @Description 摄像机保存任务 |
| | | //// @Accept json |
| | | //// @Produce json |
| | | //// @Tags camera |
| | | //// @Param args body controllers.CameraTaskSaveArg 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/camera/saveTask [post] |
| | | //func (cc 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) |
| | | // } |
| | | //} |
| | | // |
| | | //type PasteRuleArg struct { |
| | | // SourceId string `json:"sourceId" binding:"required"` |
| | | // TargetIds []string `json:"targetIds" binging:"required"` |
| | | //} |
| | | // |
| | | //// @Summary 复制摄像机规则到选定的多个摄像机 |
| | | //// @Description 复制摄像机规则到选定的多个摄像机 |
| | | //// @Accept json |
| | | //// @Produce json |
| | | //// @Tags CameraTask |
| | | //// @Param args body controllers.PasteRuleArg 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/camera/pasteRules [post] |
| | | //func (ctc CameraTaskController) PasteRules(c *gin.Context) { |
| | | // var reqBody PasteRuleArg |
| | | // err := c.BindJSON(&reqBody) |
| | | // if err != nil { |
| | | // util.ResponseFormat(c, code.RequestParamError, "") |
| | | // return |
| | | // } |
| | | // var api dbapi.CameraTaskApi |
| | | // if api.PasteRules(reqBody.SourceId, reqBody.TargetIds) { |
| | | // util.ResponseFormat(c,code.Success,"") |
| | | // } else { |
| | | // util.ResponseFormat(c,code.ComError,"") |
| | | // } |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 删除摄像机的任务 |
| | | //// @Description 删除摄像机的任务 |
| | | //// @Produce json |
| | | //// @Tags camera |
| | | //// @Param cameraId path string true "摄像机id" |
| | | //// @Param taskId path 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/camera/delTask/{cameraId}/{taskId} [delete] |
| | | //func (cc 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"` |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 保存任务是否下传数据 |
| | | //// @Description 保存任务是否下传数据 |
| | | //// @Accept json |
| | | //// @Produce json |
| | | //// @Tags CameraTask |
| | | //// @Param TransAndAlarmLevel body controllers.DataTransVo 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/cameraTask/saveIsDataTrans [post] |
| | | //func (ctc 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) |
| | | // } |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 保存规则组报警等级 |
| | | //// @Description 保存规则组报警等级 |
| | | //// @Accept json |
| | | //// @Produce json |
| | | //// @Tags CameraTask |
| | | //// @Param GroupLevel body controllers.GroupAlarmLevelVo true "alarmLevel" |
| | | //// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" |
| | | //// @Failure 500 {string} json "{"code":500, success:false, msg:"", data:""}" |
| | | //// @Router /data/api-v/cameraTask/saveAlarmLevelByGroup [post] |
| | | //func (ctc 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"` |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 更新任务状态 |
| | | //// @Description 更新任务状态 |
| | | //// @Accept json |
| | | //// @Produce json |
| | | //// @Tags CameraTask |
| | | //// @Param CameraTaskStatus body controllers.CameraTaskStatusVo 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/cameraTask/updateCameraTaskStatus [post] |
| | | //func (ctc 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) |
| | | // } |
| | | //} |
| | |
| | | package controllers |
| | | |
| | | import ( |
| | | "basic.com/dbapi.git" |
| | | "basic.com/valib/logger.git" |
| | | "github.com/gin-gonic/gin" |
| | | "strconv" |
| | | "strings" |
| | | "webserver/extend/code" |
| | | "webserver/extend/util" |
| | | ) |
| | | |
| | | type CameraTaskArgsController struct { |
| | | |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 根据摄像机id和任务id查询算法配置详情 |
| | | // @Description 根据摄像机id和任务id查询算法配置详情 |
| | | // @Produce json |
| | | // @Tags CameraTaskArgs |
| | | // @Param cameraId query string true "摄像机id" |
| | | // @Param taskId query string true "任务id" |
| | | // @Param set_type query string 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/camera/getRulesByCameraAndTask [get] |
| | | func (controller CameraTaskArgsController) FindByCameraAndTask(c *gin.Context) { |
| | | cameraId := c.Query("cameraId") |
| | | taskId := c.Query("taskId") |
| | | setType := c.Query("set_type") |
| | | if cameraId == "" || taskId == "" || setType == "" { |
| | | util.ResponseFormat(c,code.RequestParamError,"摄像机id和任务id不能为空") |
| | | return |
| | | } |
| | | var api dbapi.CameraTaskArgsApi |
| | | flag,data := api.FindByCameraAndTask(cameraId,taskId,setType) |
| | | |
| | | if flag { |
| | | util.ResponseFormat(c, code.Success, data) |
| | | } else { |
| | | util.ResponseFormat(c, code.ComError, data) |
| | | } |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 根据多个摄像机id查询联动任务规则设置 |
| | | // @Description 根据多个摄像机id查询联动任务规则设置 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags CameraTaskArgs |
| | | // @Param cameraIds body controllers.MultiCamera true "摄像机ids" |
| | | // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" |
| | | // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" |
| | | // @Router /data/api-v/cameraTaskArgs/getLinkRulesByCameraIds [post] |
| | | func (controller CameraTaskArgsController) GetLinkRulesByCameraIds(c *gin.Context) { |
| | | var cameraIdsVo MultiCamera |
| | | if err := c.BindJSON(&cameraIdsVo);err !=nil { |
| | | util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | return |
| | | } |
| | | var api dbapi.CameraTaskArgsApi |
| | | paramBody := util.Struct2Map(cameraIdsVo) |
| | | flag,data := api.GetLinkRulesByCameraIds(paramBody) |
| | | 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 CameraTaskArgs |
| | | // @Param groupId formData string true "任务算法参数分组id" |
| | | // @Param defenceState formData bool true "布防状态,false:撤防,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/cameraTaskArgs/updateDefenceStateByGroup [post] |
| | | func (controller CameraTaskArgsController) UpdateDefenceStateByGroup(c *gin.Context){ |
| | | groupId := c.PostForm("groupId") |
| | | str := c.PostForm("defenceState") |
| | | logger.Debug("defenceState:",str) |
| | | defenceState, err := strconv.ParseBool(str) |
| | | if groupId =="" || err !=nil{ |
| | | util.ResponseFormat(c, code.RequestParamError, "参数有误") |
| | | return |
| | | } |
| | | var api dbapi.CameraTaskArgsApi |
| | | if b,data := api.UpdateDefenceStateByGroup(groupId,defenceState);b{ |
| | | util.ResponseFormat(c,code.UpdateSuccess,data) |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError,data) |
| | | } |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @SUmmary 根据分组id删除摄像机算法规则 |
| | | // @Description 根据分组id删除摄像机算法规则 |
| | | // @Produce json |
| | | // @Tags CameraTaskArgs |
| | | // @Param groupId 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/cameraTaskArgs/deleteByGroup [get] |
| | | func (controller CameraTaskArgsController)DeleteByGroup(c *gin.Context) { |
| | | groupId := c.Query("groupId") |
| | | if groupId == "" { |
| | | util.ResponseFormat(c, code.RequestParamError, "id必填") |
| | | return |
| | | } |
| | | var api dbapi.CameraTaskArgsApi |
| | | flag,data := api.DeleteByGroup(groupId) |
| | | if flag { |
| | | util.ResponseFormat(c,code.Success,data) |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError,"删除失败") |
| | | } |
| | | |
| | | } |
| | | |
| | | type SaveLinkRulesGroupVo struct { |
| | | LinkTaskId string `json:"link_task_id"`//联动任务id |
| | | GroupId string `json:"group_id"`//分组id |
| | | GroupText string `json:"group_text"`//组规则文字 |
| | | Rules []LinkRuleArgVo `json:"rules"`//组内的规则 |
| | | } |
| | | |
| | | type LinkRuleArgVo struct { |
| | | TaskId string `json:"task_id"` |
| | | CameraTaskArgs |
| | | } |
| | | |
| | | type CameraTaskArgs struct { |
| | | Id string `json:"id"` |
| | | CameraTaskId string `json:"camera_task_id"`//camera_tasks表的主键,摄像机和任务关联id或者联动任务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"` //算法参数值设置 |
| | | Sort int `json:"sort"`//排序 |
| | | RuleWithPre string `json:"rule_with_pre"`//与上一条记录的逻辑运算规则(&&,||) |
| | | GroupId string `json:"group_id"`//分组id |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 保存联动任务规则参数 |
| | | // @Description 保存联动任务规则参数 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Param saveBody body controllers.SaveLinkRulesGroupVo 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/cameraTaskArgs/saveLinkRulesByGroup [post] |
| | | func (controller CameraTaskArgsController) SaveLinkRulesByGroup(c *gin.Context) { |
| | | var saveBody SaveLinkRulesGroupVo |
| | | if err := c.BindJSON(&saveBody);err !=nil { |
| | | util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | return |
| | | } |
| | | var api dbapi.CameraTaskArgsApi |
| | | paramBody := util.Struct2Map(saveBody) |
| | | flag,data := api.SaveLinkRulesByGroup(paramBody) |
| | | if flag { |
| | | util.ResponseFormat(c,code.Success,data) |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError,data) |
| | | } |
| | | } |
| | | |
| | | type RuleApply2AllVo struct { |
| | | CameraId string `json:"camera_id" binding:"required"`//规则拥有者id |
| | | } |
| | | |
| | | // @Summary 将本条规则应用到所有本地视频 |
| | | // @Description 将本条规则应用到所有本地视频 |
| | | // @Produce json |
| | | // @Tags CameraTaskArgs |
| | | // @Param args body controllers.RuleApply2AllVo 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/cameraTaskArgs/ruleApply2All [post] |
| | | func (controller CameraTaskArgsController) RuleApply2All(c *gin.Context) { |
| | | var saveBody RuleApply2AllVo |
| | | err := c.BindJSON(&saveBody) |
| | | if err !=nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "参数有误") |
| | | return |
| | | } |
| | | if !strings.HasPrefix(saveBody.CameraId, File_Video_Id_Pre) && !strings.HasPrefix(saveBody.CameraId, File_Img_Id_Pre) && !!strings.HasPrefix(saveBody.CameraId, File_Audio_Id_Pre) { |
| | | util.ResponseFormat(c, code.RequestParamError, "参数有误") |
| | | return |
| | | } |
| | | var api dbapi.CameraTaskApi |
| | | paramBody := util.Struct2Map(saveBody) |
| | | flag, data := api.RuleApply2All(paramBody) |
| | | if flag { |
| | | util.ResponseFormat(c,code.Success,data) |
| | | } else { |
| | | util.ResponseFormat(c, code.ComError, data) |
| | | } |
| | | } |
| | | //import ( |
| | | // "basic.com/dbapi.git" |
| | | // "basic.com/valib/logger.git" |
| | | // "github.com/gin-gonic/gin" |
| | | // "strconv" |
| | | // "strings" |
| | | // "webserver/extend/code" |
| | | // "webserver/extend/util" |
| | | //) |
| | | // |
| | | //type CameraTaskArgsController struct { |
| | | // |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 根据摄像机id和任务id查询算法配置详情 |
| | | //// @Description 根据摄像机id和任务id查询算法配置详情 |
| | | //// @Produce json |
| | | //// @Tags CameraTaskArgs |
| | | //// @Param cameraId query string true "摄像机id" |
| | | //// @Param taskId query string true "任务id" |
| | | //// @Param set_type query string 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/camera/getRulesByCameraAndTask [get] |
| | | //func (controller CameraTaskArgsController) FindByCameraAndTask(c *gin.Context) { |
| | | // cameraId := c.Query("cameraId") |
| | | // taskId := c.Query("taskId") |
| | | // setType := c.Query("set_type") |
| | | // if cameraId == "" || taskId == "" || setType == "" { |
| | | // util.ResponseFormat(c,code.RequestParamError,"摄像机id和任务id不能为空") |
| | | // return |
| | | // } |
| | | // var api dbapi.CameraTaskArgsApi |
| | | // flag,data := api.FindByCameraAndTask(cameraId,taskId,setType) |
| | | // |
| | | // if flag { |
| | | // util.ResponseFormat(c, code.Success, data) |
| | | // } else { |
| | | // util.ResponseFormat(c, code.ComError, data) |
| | | // } |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 根据多个摄像机id查询联动任务规则设置 |
| | | //// @Description 根据多个摄像机id查询联动任务规则设置 |
| | | //// @Accept json |
| | | //// @Produce json |
| | | //// @Tags CameraTaskArgs |
| | | //// @Param cameraIds body controllers.MultiCamera true "摄像机ids" |
| | | //// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" |
| | | //// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" |
| | | //// @Router /data/api-v/cameraTaskArgs/getLinkRulesByCameraIds [post] |
| | | //func (controller CameraTaskArgsController) GetLinkRulesByCameraIds(c *gin.Context) { |
| | | // var cameraIdsVo MultiCamera |
| | | // if err := c.BindJSON(&cameraIdsVo);err !=nil { |
| | | // util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | // return |
| | | // } |
| | | // var api dbapi.CameraTaskArgsApi |
| | | // paramBody := util.Struct2Map(cameraIdsVo) |
| | | // flag,data := api.GetLinkRulesByCameraIds(paramBody) |
| | | // 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 CameraTaskArgs |
| | | //// @Param groupId formData string true "任务算法参数分组id" |
| | | //// @Param defenceState formData bool true "布防状态,false:撤防,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/cameraTaskArgs/updateDefenceStateByGroup [post] |
| | | //func (controller CameraTaskArgsController) UpdateDefenceStateByGroup(c *gin.Context){ |
| | | // groupId := c.PostForm("groupId") |
| | | // str := c.PostForm("defenceState") |
| | | // logger.Debug("defenceState:",str) |
| | | // defenceState, err := strconv.ParseBool(str) |
| | | // if groupId =="" || err !=nil{ |
| | | // util.ResponseFormat(c, code.RequestParamError, "参数有误") |
| | | // return |
| | | // } |
| | | // var api dbapi.CameraTaskArgsApi |
| | | // if b,data := api.UpdateDefenceStateByGroup(groupId,defenceState);b{ |
| | | // util.ResponseFormat(c,code.UpdateSuccess,data) |
| | | // } else { |
| | | // util.ResponseFormat(c,code.ComError,data) |
| | | // } |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @SUmmary 根据分组id删除摄像机算法规则 |
| | | //// @Description 根据分组id删除摄像机算法规则 |
| | | //// @Produce json |
| | | //// @Tags CameraTaskArgs |
| | | //// @Param groupId 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/cameraTaskArgs/deleteByGroup [get] |
| | | //func (controller CameraTaskArgsController)DeleteByGroup(c *gin.Context) { |
| | | // groupId := c.Query("groupId") |
| | | // if groupId == "" { |
| | | // util.ResponseFormat(c, code.RequestParamError, "id必填") |
| | | // return |
| | | // } |
| | | // var api dbapi.CameraTaskArgsApi |
| | | // flag,data := api.DeleteByGroup(groupId) |
| | | // if flag { |
| | | // util.ResponseFormat(c,code.Success,data) |
| | | // } else { |
| | | // util.ResponseFormat(c,code.ComError,"删除失败") |
| | | // } |
| | | // |
| | | //} |
| | | // |
| | | //type SaveLinkRulesGroupVo struct { |
| | | // LinkTaskId string `json:"link_task_id"`//联动任务id |
| | | // GroupId string `json:"group_id"`//分组id |
| | | // GroupText string `json:"group_text"`//组规则文字 |
| | | // Rules []LinkRuleArgVo `json:"rules"`//组内的规则 |
| | | //} |
| | | // |
| | | //type LinkRuleArgVo struct { |
| | | // TaskId string `json:"task_id"` |
| | | // CameraTaskArgs |
| | | //} |
| | | // |
| | | //type CameraTaskArgs struct { |
| | | // Id string `json:"id"` |
| | | // CameraTaskId string `json:"camera_task_id"`//camera_tasks表的主键,摄像机和任务关联id或者联动任务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"` //算法参数值设置 |
| | | // Sort int `json:"sort"`//排序 |
| | | // RuleWithPre string `json:"rule_with_pre"`//与上一条记录的逻辑运算规则(&&,||) |
| | | // GroupId string `json:"group_id"`//分组id |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 保存联动任务规则参数 |
| | | //// @Description 保存联动任务规则参数 |
| | | //// @Accept json |
| | | //// @Produce json |
| | | //// @Param saveBody body controllers.SaveLinkRulesGroupVo 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/cameraTaskArgs/saveLinkRulesByGroup [post] |
| | | //func (controller CameraTaskArgsController) SaveLinkRulesByGroup(c *gin.Context) { |
| | | // var saveBody SaveLinkRulesGroupVo |
| | | // if err := c.BindJSON(&saveBody);err !=nil { |
| | | // util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | // return |
| | | // } |
| | | // var api dbapi.CameraTaskArgsApi |
| | | // paramBody := util.Struct2Map(saveBody) |
| | | // flag,data := api.SaveLinkRulesByGroup(paramBody) |
| | | // if flag { |
| | | // util.ResponseFormat(c,code.Success,data) |
| | | // } else { |
| | | // util.ResponseFormat(c,code.ComError,data) |
| | | // } |
| | | //} |
| | | // |
| | | //type RuleApply2AllVo struct { |
| | | // CameraId string `json:"camera_id" binding:"required"`//规则拥有者id |
| | | //} |
| | | // |
| | | //// @Summary 将本条规则应用到所有本地视频 |
| | | //// @Description 将本条规则应用到所有本地视频 |
| | | //// @Produce json |
| | | //// @Tags CameraTaskArgs |
| | | //// @Param args body controllers.RuleApply2AllVo 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/cameraTaskArgs/ruleApply2All [post] |
| | | //func (controller CameraTaskArgsController) RuleApply2All(c *gin.Context) { |
| | | // var saveBody RuleApply2AllVo |
| | | // err := c.BindJSON(&saveBody) |
| | | // if err !=nil { |
| | | // util.ResponseFormat(c, code.RequestParamError, "参数有误") |
| | | // return |
| | | // } |
| | | // if !strings.HasPrefix(saveBody.CameraId, File_Video_Id_Pre) && !strings.HasPrefix(saveBody.CameraId, File_Img_Id_Pre) && !!strings.HasPrefix(saveBody.CameraId, File_Audio_Id_Pre) { |
| | | // util.ResponseFormat(c, code.RequestParamError, "参数有误") |
| | | // return |
| | | // } |
| | | // var api dbapi.CameraTaskApi |
| | | // paramBody := util.Struct2Map(saveBody) |
| | | // flag, data := api.RuleApply2All(paramBody) |
| | | // if flag { |
| | | // util.ResponseFormat(c,code.Success,data) |
| | | // } else { |
| | | // util.ResponseFormat(c, code.ComError, data) |
| | | // } |
| | | //} |
New file |
| | |
| | | package controllers |
| | | |
| | | import ( |
| | | "basic.com/dbapi.git" |
| | | "basic.com/pubsub/protomsg.git" |
| | | "bytes" |
| | | "encoding/json" |
| | | "github.com/gin-gonic/gin" |
| | | "github.com/gogo/protobuf/jsonpb" |
| | | "webserver/extend/code" |
| | | "webserver/extend/util" |
| | | ) |
| | | |
| | | type RuleTemplateController struct { |
| | | |
| | | } |
| | | |
| | | var jsonpbMarshaler = &jsonpb.Marshaler{ |
| | | EnumsAsInts: true, |
| | | EmitDefaults: true, |
| | | OrigName: true, |
| | | } |
| | | |
| | | // @Summary 保存场景模板 |
| | | // @Description 保存场景模板 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags 场景模板 |
| | | // @Param reqBody body models.RuleTemplate 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/template/rule/save [post] |
| | | func (rtc RuleTemplateController) Save(c *gin.Context) { |
| | | var reqBody map[string]interface{} |
| | | c.BindJSON(&reqBody) |
| | | var api dbapi.RuleTemplateApi |
| | | if api.Save(reqBody) { |
| | | util.ResponseFormat(c, code.Success, "保存成功") |
| | | } else { |
| | | util.ResponseFormat(c, code.ComError, "保存失败") |
| | | } |
| | | } |
| | | |
| | | // @Summary 编辑 |
| | | // @Description 编辑 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags 场景模板 |
| | | // @Param id path 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/template/rule/{id} [get] |
| | | func (rtc RuleTemplateController) Show(c *gin.Context) { |
| | | id := c.Param("id") |
| | | if id == "" { |
| | | util.ResponseFormat(c,code.RequestParamError, "参数有误") |
| | | return |
| | | } |
| | | var api dbapi.RuleTemplateApi |
| | | b, d := api.Show(id) |
| | | if b { |
| | | util.ResponseFormat(c,code.Success, d) |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError, "") |
| | | } |
| | | } |
| | | |
| | | // @Summary 根据id删除场景模板 |
| | | // @Description 根据id删除场景模板 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags 场景模板 |
| | | // @Param id path 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/template/rule/{id} [delete] |
| | | func (rtc RuleTemplateController) Delete(c *gin.Context) { |
| | | id := c.Param("id") |
| | | if id == "" { |
| | | util.ResponseFormat(c,code.RequestParamError, "参数有误") |
| | | return |
| | | } |
| | | var api dbapi.RuleTemplateApi |
| | | if api.Delete(id) { |
| | | util.ResponseFormat(c,code.Success, "删除成功") |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError, "") |
| | | } |
| | | } |
| | | |
| | | // @Summary 查找所有场景模板 |
| | | // @Description 查找所有场景模板 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags 场景模板 |
| | | // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" |
| | | // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" |
| | | // @Router /data/api-v/template/rule [get] |
| | | func (rtc RuleTemplateController) FindAll(c *gin.Context) { |
| | | var api dbapi.RuleTemplateApi |
| | | b, templates := api.FindAll() |
| | | if b { |
| | | var result protomsg.RuleTemplateList |
| | | for _,r := range templates { |
| | | result.List = append(result.List, &r) |
| | | } |
| | | |
| | | var _buffer bytes.Buffer |
| | | err := jsonpbMarshaler.Marshal(&_buffer, &result) |
| | | if err == nil { |
| | | jsonB := _buffer.Bytes() |
| | | var m map[string]interface{} |
| | | json.Unmarshal(jsonB, &m) |
| | | util.ResponseFormat(c,code.Success, m) |
| | | return |
| | | } |
| | | } else { |
| | | util.ResponseFormat(c, code.ComError, "") |
| | | } |
| | | } |
| | |
| | | package controllers |
| | | |
| | | import ( |
| | | "basic.com/dbapi.git" |
| | | "basic.com/pubsub/esutil.git" |
| | | "basic.com/pubsub/protomsg.git" |
| | | "encoding/json" |
| | | "strconv" |
| | | "time" |
| | | "webserver/cache" |
| | | "webserver/extend/config" |
| | | |
| | | "github.com/gin-gonic/gin" |
| | | "time" |
| | | "webserver/extend/code" |
| | | "webserver/extend/util" |
| | | ) |
| | |
| | | FaceExtract_VirtualSdkId = "virtual-faceextract-sdk-pull"//结果输出的算法id |
| | | ) |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 查找所有任务,包含任务信息和对应的算法信息 |
| | | // @Description 查找所有任务 |
| | | // @Produce json |
| | | // @Tags task |
| | | // @Success 200 {string} json "{"code":200, msg:"请求处理成功",data:"",success:true}" |
| | | // @Failure 500 {string} json "{"code":500, msg:"请求失败",data:"",success:false}" |
| | | // @Router /data/api-v/task/findAll [GET] |
| | | func (tc TaskController) FindAll(c *gin.Context) { |
| | | // 显示所有任务: 获取信息 |
| | | var taskApi dbapi.TaskApi |
| | | |
| | | taskInfos := taskApi.FindAll() |
| | | var arr []protomsg.TaskSdkInfo |
| | | for _,ti :=range taskInfos{ |
| | | if ti.Task.Taskid != FaceExtract_VirtualTaskId{ |
| | | arr = append(arr,ti) |
| | | } |
| | | } |
| | | var tasks []TaskSdkVo |
| | | dataBytes, err := json.Marshal(arr) |
| | | if err !=nil { |
| | | util.ResponseFormat(c,code.ComError,[]TaskSdkVo{}) |
| | | } else { |
| | | if err := json.Unmarshal(dataBytes, &tasks);err !=nil { |
| | | util.ResponseFormat(c,code.ComError,[]TaskSdkVo{}) |
| | | } else { |
| | | util.ResponseFormat(c,code.Success,tasks) |
| | | } |
| | | } |
| | | } |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 查找所有任务,包含任务信息和对应的算法信息 |
| | | //// @Description 查找所有任务 |
| | | //// @Produce json |
| | | //// @Tags task |
| | | //// @Success 200 {string} json "{"code":200, msg:"请求处理成功",data:"",success:true}" |
| | | //// @Failure 500 {string} json "{"code":500, msg:"请求失败",data:"",success:false}" |
| | | //// @Router /data/api-v/task/findAll [GET] |
| | | //func (tc TaskController) FindAll(c *gin.Context) { |
| | | // // 显示所有任务: 获取信息 |
| | | // var taskApi dbapi.TaskApi |
| | | // |
| | | // taskInfos := taskApi.FindAll() |
| | | // var arr []protomsg.TaskSdkInfo |
| | | // for _,ti :=range taskInfos{ |
| | | // if ti.Task.Taskid != FaceExtract_VirtualTaskId{ |
| | | // arr = append(arr,ti) |
| | | // } |
| | | // } |
| | | // var tasks []TaskSdkVo |
| | | // dataBytes, err := json.Marshal(arr) |
| | | // if err !=nil { |
| | | // util.ResponseFormat(c,code.ComError,[]TaskSdkVo{}) |
| | | // } else { |
| | | // if err := json.Unmarshal(dataBytes, &tasks);err !=nil { |
| | | // util.ResponseFormat(c,code.ComError,[]TaskSdkVo{}) |
| | | // } else { |
| | | // util.ResponseFormat(c,code.Success,tasks) |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 检索页面获取所有任务列表(包含已删除的任务) |
| | |
| | | // @Router /data/api-v/task/aggregateTaskList [GET] |
| | | func (tc TaskController) AggregateTaskList(c *gin.Context) { |
| | | // 显示所有任务: 获取信息 |
| | | var taskApi dbapi.TaskApi |
| | | |
| | | taskInfos := taskApi.FindAll() |
| | | m := make(map[string]string) |
| | | var arr []protomsg.TaskSdkInfo |
| | | for _,ti :=range taskInfos{ |
| | | if ti.Task.Taskid != FaceExtract_VirtualTaskId{ |
| | | arr = append(arr,ti) |
| | | m[ti.Task.Taskid] = ti.Task.Taskid |
| | | } |
| | | } |
| | | var tasks []TaskSdkVo |
| | | dataBytes, err := json.Marshal(arr) |
| | | if err !=nil { |
| | | util.ResponseFormat(c,code.ComError,[]TaskSdkVo{}) |
| | | } else { |
| | | if err := json.Unmarshal(dataBytes, &tasks);err !=nil { |
| | | util.ResponseFormat(c,code.ComError,[]TaskSdkVo{}) |
| | | } else { |
| | | //处理已被删除的任务 |
| | | localConf, _ := cache.GetServerInfo() |
| | | if localConf.AlarmIp != "" && localConf.ServerId != "" && localConf.AlarmPort>0 { |
| | | indexName := config.EsInfo.EsIndex.AiOcean.IndexName |
| | | esTaskM, e := esutil.AggregateTaskList(localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort)), indexName, localConf.ServerId) |
| | | if e==nil && esTaskM !=nil { |
| | | for _,tM :=range esTaskM { |
| | | if _,ok := m[tM["taskId"].(string)];!ok {//表示此任务已被删除 |
| | | taskId := tM["taskId"].(string) |
| | | m[taskId] = taskId |
| | | tasks = append(tasks, TaskSdkVo{ |
| | | Task:TaskVo{ |
| | | Taskid: taskId, |
| | | Taskname: tM["taskName"].(string), |
| | | DelFlag: true, |
| | | }, |
| | | Sdks:[]SdkVo{}, |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | //var taskApi dbapi.TaskApi |
| | | // |
| | | //taskInfos := taskApi.FindAll() |
| | | //m := make(map[string]string) |
| | | //var arr []protomsg.TaskSdkInfo |
| | | //for _,ti :=range taskInfos{ |
| | | // if ti.Task.Taskid != FaceExtract_VirtualTaskId{ |
| | | // arr = append(arr,ti) |
| | | // m[ti.Task.Taskid] = ti.Task.Taskid |
| | | // } |
| | | //} |
| | | //var tasks []TaskSdkVo |
| | | //dataBytes, err := json.Marshal(arr) |
| | | //if err !=nil { |
| | | // util.ResponseFormat(c,code.ComError,[]TaskSdkVo{}) |
| | | //} else { |
| | | // if err := json.Unmarshal(dataBytes, &tasks);err !=nil { |
| | | // util.ResponseFormat(c,code.ComError,[]TaskSdkVo{}) |
| | | // } else { |
| | | // //处理已被删除的任务 |
| | | // localConf, _ := cache.GetServerInfo() |
| | | // if localConf.AlarmIp != "" && localConf.ServerId != "" && localConf.AlarmPort>0 { |
| | | // indexName := config.EsInfo.EsIndex.AiOcean.IndexName |
| | | // esTaskM, e := esutil.AggregateTaskList(localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort)), indexName, localConf.ServerId) |
| | | // if e==nil && esTaskM !=nil { |
| | | // for _,tM :=range esTaskM { |
| | | // if _,ok := m[tM["taskId"].(string)];!ok {//表示此任务已被删除 |
| | | // taskId := tM["taskId"].(string) |
| | | // m[taskId] = taskId |
| | | // tasks = append(tasks, TaskSdkVo{ |
| | | // Task:TaskVo{ |
| | | // Taskid: taskId, |
| | | // Taskname: tM["taskName"].(string), |
| | | // DelFlag: true, |
| | | // }, |
| | | // Sdks:[]SdkVo{}, |
| | | // }) |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // |
| | | // util.ResponseFormat(c,code.Success,tasks) |
| | | // } |
| | | //} |
| | | util.ResponseFormat(c,code.Success,[]interface{}{}) |
| | | } |
| | | |
| | | util.ResponseFormat(c,code.Success,tasks) |
| | | } |
| | | } |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 添加任务 |
| | | // @Description 查找所有任务 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags task |
| | | // @Param reqMap body controllers.TaskVo false "任务AAA" |
| | | // @Success 200 {string} json "{"code":200, msg:"请求处理成功",data:"",success:true}" |
| | | // @Failure 500 {string} json "{"code":500, msg:"请求失败",data:"",success:false}" |
| | | // @Router /data/api-v/task/addTask [POST] |
| | | func (tc TaskController) AddTask(c *gin.Context) { |
| | | var task TaskVo |
| | | var taskApi dbapi.TaskApi |
| | | err := c.BindJSON(&task) |
| | | if err !=nil { |
| | | util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | return |
| | | } |
| | | paramBody := util.Struct2Map(task) |
| | | flag, data := taskApi.Add(paramBody) |
| | | if !flag { |
| | | util.ResponseFormat(c, code.ComError, data) |
| | | return |
| | | } |
| | | |
| | | util.ResponseFormat(c, code.Success, data) |
| | | } |
| | | |
| | | type TaskSdkAdd struct { |
| | | TaskId string `json:"taskId"` |
| | | Sdks []SdkSort `json:"sdks"` |
| | | } |
| | | type SdkSort struct { |
| | | SdkId string `json:"sdkId"` |
| | | Sort int `json:"sort"` |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 给任务添加算法 |
| | | // @Description 任务添加算法 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags task |
| | | // @Param taskSdkAdd body controllers.TaskSdkAdd true "任务id" |
| | | // @Success 200 {string} json "{"code":200, msg:"请求处理成功",data:"",success:true}" |
| | | // @Failure 500 {string} json "{"code":500, msg:"请求失败",data:"",success:false}" |
| | | // @Router /data/api-v/task/addTaskSdk [post] |
| | | func (tc TaskController) AddTaskSdk(c *gin.Context) { |
| | | var addVo TaskSdkAdd |
| | | err := c.BindJSON(&addVo) |
| | | if err !=nil || addVo.TaskId == "" || len(addVo.Sdks)==0 { |
| | | util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | return |
| | | } |
| | | paramBody := util.Struct2Map(addVo) |
| | | var taskApi dbapi.TaskApi |
| | | flag,data := taskApi.AddTaskSdk(paramBody) |
| | | if flag { |
| | | util.ResponseFormat(c, code.Success, data) |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError,data) |
| | | } |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 任务删除算法 |
| | | // @Description 根据taskid和sdkid删除 |
| | | // @Produce json |
| | | // @Tags task |
| | | // @Param taskId query string true "任务id" |
| | | // @Param sdkId query string true "算法id" |
| | | // @Success 200 {string} json "{"code":200, msg:"请求处理成功",data:"",success:true}" |
| | | // @Failure 500 {string} json "{"code":500, msg:"请求失败",data:"",success:false}" |
| | | // @Router /data/api-v/task/delTaskSdk [GET] |
| | | func (tc TaskController) DeleteTaskSdk(c *gin.Context) { |
| | | var taskApi dbapi.TaskApi |
| | | taskId := c.Query("taskId") |
| | | sdkId := c.Query("sdkId") |
| | | if taskId == "" || sdkId == "" { |
| | | util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | return |
| | | } |
| | | flag,data := taskApi.DeleteTaskSdk(taskId,sdkId) |
| | | 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 task |
| | | // @Param taskId formData string true "taskId" |
| | | // @Param taskName formData string true "taskName" |
| | | // @Success 200 {string} json "{"code":200, msg:"",data:"",success:true}" |
| | | // @Failure 500 {string} json "{"code":500, msg:"",data:"",success:false}" |
| | | // @Router /data/api-v/task/updateTaskName [POST] |
| | | func (tc TaskController) UpdateTaskName(c *gin.Context) { |
| | | taskId := c.PostForm("taskId") |
| | | taskName := c.PostForm("taskName") |
| | | if taskId == "" || taskName == "" { |
| | | util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | return |
| | | } |
| | | var api dbapi.TaskApi |
| | | if api.UpdateTaskName(taskId, taskName) { |
| | | util.ResponseFormat(c,code.UpdateSuccess,"更新成功") |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError,"更新失败") |
| | | } |
| | | |
| | | } |
| | | |
| | | type TaskStatusVo struct { |
| | | TaskId string `json:"taskId"` |
| | | Enable bool `json:"enable"` |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 更新任务状态 |
| | | // @Description (算法不变,只更新任务状态) |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags task |
| | | // @Param taskStatus body controllers.TaskStatusVo true "参数" |
| | | // @Success 200 {string} json "{"code":200, msg:"请求处理成功",data:"",success:true}" |
| | | // @Failure 500 {string} json "{"code":500, msg:"请求失败",data:"",success:false}" |
| | | // @Router /data/api-v/task/updateTaskStatus [POST] |
| | | func (tc TaskController) UpdateTaskStatus(c *gin.Context) { |
| | | var tsvo TaskStatusVo |
| | | err := c.BindJSON(&tsvo) |
| | | if err !=nil { |
| | | util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | return |
| | | } |
| | | var taskApi dbapi.TaskApi |
| | | paramBody := util.Struct2Map(tsvo) |
| | | flag, data := taskApi.UpdateTaskStatus(paramBody) |
| | | if flag { |
| | | util.ResponseFormat(c,code.Success,data) |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError,data) |
| | | } |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 删除任务 |
| | | // @Description 根据任务id删除任务 |
| | | // @Produce json |
| | | // @Tags task |
| | | // @Param taskId query string true "任务id" |
| | | // @Success 200 {string} json "{"code":200, msg:"请求处理成功",data:"",success:true}" |
| | | // @Failure 500 {string} json "{"code":500, msg:"请求失败",data:"",success:false}" |
| | | // @Router /data/api-v/task/delete [GET] |
| | | func (tc TaskController) DeleteTask(c *gin.Context) { |
| | | var taskApi dbapi.TaskApi |
| | | taskId := c.Query("taskId") |
| | | if taskId == "" { |
| | | util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | return |
| | | } |
| | | flag, data := taskApi.Delete(taskId) |
| | | if flag { |
| | | util.ResponseFormat(c,code.Success,data) |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError,data) |
| | | } |
| | | |
| | | } |
| | | |
| | | type TaskSdkRules struct { |
| | | TaskId string `json:"taskId"` |
| | | SdkId string `json:"sdkId"` |
| | | Rules []TaskSdkRuleVo `json:"rules"` |
| | | } |
| | | |
| | | type TaskSdkRuleVo struct { |
| | | Id string `json:"id"` |
| | | SdkArgAlias string `json:"sdk_arg_alias"` |
| | | Operator string `json:"operator"` |
| | | SdkArgValue string `json:"sdk_arg_value"` |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 保存算法规则 |
| | | // @Description 保存算法规则 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags 算法规则 |
| | | // @Param sdkrules body controllers.TaskSdkRules 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/task/saveTaskSdkRule [post] |
| | | func (tc TaskController) SaveTaskSdkRule(c *gin.Context) { |
| | | var rules TaskSdkRules |
| | | err := c.BindJSON(&rules) |
| | | if err !=nil || rules.TaskId == "" || rules.SdkId == "" || len(rules.Rules) == 0 { |
| | | util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | return |
| | | } |
| | | paramBody := util.Struct2Map(rules) |
| | | var api dbapi.TaskSdkRuleApi |
| | | b,d := api.SaveTaskSdkRule(paramBody) |
| | | if b { |
| | | util.ResponseFormat(c,code.Success,d) |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError,"保存失败") |
| | | } |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 删除算法规则 |
| | | // @Description 删除算法规则 |
| | | // @Accept x-www-form-urlencoded |
| | | // @Produce json |
| | | // @Tags 算法规则 |
| | | // @Param taskId formData string true "taskId" |
| | | // @Param sdkId formData string true "sdkId" |
| | | // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" |
| | | // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" |
| | | // @Router /data/api-v/task/deleteTaskSdkRule [post] |
| | | func (tc TaskController) DeleteTaskSdkRule(c *gin.Context) { |
| | | taskId := c.PostForm("taskId") |
| | | sdkId := c.PostForm("sdkId") |
| | | if taskId == "" || sdkId == "" { |
| | | util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | return |
| | | } |
| | | var api dbapi.TaskSdkRuleApi |
| | | if api.DeleteTaskSdkRule(taskId, sdkId) { |
| | | util.ResponseFormat(c,code.Success,"删除成功") |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError, "删除失败") |
| | | } |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 查询算法规则 |
| | | // @Description 查询算法规则 |
| | | // @Produce json |
| | | // @Tags 算法规则 |
| | | // @Param taskId query string true "任务id" |
| | | // @Param sdkId 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/task/getRulesByTaskSdk [get] |
| | | func (tc TaskController) GetRulesByTaskSdk(c *gin.Context) { |
| | | taskId := c.Query("taskId") |
| | | sdkId := c.Query("sdkId") |
| | | if taskId == "" || sdkId == ""{ |
| | | util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | return |
| | | } |
| | | var taskSdkApi dbapi.TaskSdkRuleApi |
| | | b, d := taskSdkApi.GetRulesByTaskSdk(taskId, sdkId) |
| | | if b { |
| | | util.ResponseFormat(c,code.Success,d) |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError,"查询失败") |
| | | } |
| | | } |
| | | |
| | | // @Security ApiKeyAuth |
| | | // @Summary 统计每个任务的摄像机数量 |
| | | // @Description 统计每个任务的摄像机数量 |
| | | // @Produce json |
| | | // @Tags task |
| | | // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" |
| | | // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" |
| | | // @Router /data/api-v/task/statisticTaskCamera [get] |
| | | func (tc TaskController) StatisticTaskCamera(c *gin.Context) { |
| | | var taskApi dbapi.TaskApi |
| | | b,d := taskApi.StatisticTaskCamera() |
| | | if b { |
| | | util.ResponseFormat(c,code.Success, d) |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError, "") |
| | | } |
| | | } |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 添加任务 |
| | | //// @Description 查找所有任务 |
| | | //// @Accept json |
| | | //// @Produce json |
| | | //// @Tags task |
| | | //// @Param reqMap body controllers.TaskVo false "任务AAA" |
| | | //// @Success 200 {string} json "{"code":200, msg:"请求处理成功",data:"",success:true}" |
| | | //// @Failure 500 {string} json "{"code":500, msg:"请求失败",data:"",success:false}" |
| | | //// @Router /data/api-v/task/addTask [POST] |
| | | //func (tc TaskController) AddTask(c *gin.Context) { |
| | | // var task TaskVo |
| | | // var taskApi dbapi.TaskApi |
| | | // err := c.BindJSON(&task) |
| | | // if err !=nil { |
| | | // util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | // return |
| | | // } |
| | | // paramBody := util.Struct2Map(task) |
| | | // flag, data := taskApi.Add(paramBody) |
| | | // if !flag { |
| | | // util.ResponseFormat(c, code.ComError, data) |
| | | // return |
| | | // } |
| | | // |
| | | // util.ResponseFormat(c, code.Success, data) |
| | | //} |
| | | // |
| | | //type TaskSdkAdd struct { |
| | | // TaskId string `json:"taskId"` |
| | | // Sdks []SdkSort `json:"sdks"` |
| | | //} |
| | | //type SdkSort struct { |
| | | // SdkId string `json:"sdkId"` |
| | | // Sort int `json:"sort"` |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 给任务添加算法 |
| | | //// @Description 任务添加算法 |
| | | //// @Accept json |
| | | //// @Produce json |
| | | //// @Tags task |
| | | //// @Param taskSdkAdd body controllers.TaskSdkAdd true "任务id" |
| | | //// @Success 200 {string} json "{"code":200, msg:"请求处理成功",data:"",success:true}" |
| | | //// @Failure 500 {string} json "{"code":500, msg:"请求失败",data:"",success:false}" |
| | | //// @Router /data/api-v/task/addTaskSdk [post] |
| | | //func (tc TaskController) AddTaskSdk(c *gin.Context) { |
| | | // var addVo TaskSdkAdd |
| | | // err := c.BindJSON(&addVo) |
| | | // if err !=nil || addVo.TaskId == "" || len(addVo.Sdks)==0 { |
| | | // util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | // return |
| | | // } |
| | | // paramBody := util.Struct2Map(addVo) |
| | | // var taskApi dbapi.TaskApi |
| | | // flag,data := taskApi.AddTaskSdk(paramBody) |
| | | // if flag { |
| | | // util.ResponseFormat(c, code.Success, data) |
| | | // } else { |
| | | // util.ResponseFormat(c,code.ComError,data) |
| | | // } |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 任务删除算法 |
| | | //// @Description 根据taskid和sdkid删除 |
| | | //// @Produce json |
| | | //// @Tags task |
| | | //// @Param taskId query string true "任务id" |
| | | //// @Param sdkId query string true "算法id" |
| | | //// @Success 200 {string} json "{"code":200, msg:"请求处理成功",data:"",success:true}" |
| | | //// @Failure 500 {string} json "{"code":500, msg:"请求失败",data:"",success:false}" |
| | | //// @Router /data/api-v/task/delTaskSdk [GET] |
| | | //func (tc TaskController) DeleteTaskSdk(c *gin.Context) { |
| | | // var taskApi dbapi.TaskApi |
| | | // taskId := c.Query("taskId") |
| | | // sdkId := c.Query("sdkId") |
| | | // if taskId == "" || sdkId == "" { |
| | | // util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | // return |
| | | // } |
| | | // flag,data := taskApi.DeleteTaskSdk(taskId,sdkId) |
| | | // 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 task |
| | | //// @Param taskId formData string true "taskId" |
| | | //// @Param taskName formData string true "taskName" |
| | | //// @Success 200 {string} json "{"code":200, msg:"",data:"",success:true}" |
| | | //// @Failure 500 {string} json "{"code":500, msg:"",data:"",success:false}" |
| | | //// @Router /data/api-v/task/updateTaskName [POST] |
| | | //func (tc TaskController) UpdateTaskName(c *gin.Context) { |
| | | // taskId := c.PostForm("taskId") |
| | | // taskName := c.PostForm("taskName") |
| | | // if taskId == "" || taskName == "" { |
| | | // util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | // return |
| | | // } |
| | | // var api dbapi.TaskApi |
| | | // if api.UpdateTaskName(taskId, taskName) { |
| | | // util.ResponseFormat(c,code.UpdateSuccess,"更新成功") |
| | | // } else { |
| | | // util.ResponseFormat(c,code.ComError,"更新失败") |
| | | // } |
| | | // |
| | | //} |
| | | // |
| | | //type TaskStatusVo struct { |
| | | // TaskId string `json:"taskId"` |
| | | // Enable bool `json:"enable"` |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 更新任务状态 |
| | | //// @Description (算法不变,只更新任务状态) |
| | | //// @Accept json |
| | | //// @Produce json |
| | | //// @Tags task |
| | | //// @Param taskStatus body controllers.TaskStatusVo true "参数" |
| | | //// @Success 200 {string} json "{"code":200, msg:"请求处理成功",data:"",success:true}" |
| | | //// @Failure 500 {string} json "{"code":500, msg:"请求失败",data:"",success:false}" |
| | | //// @Router /data/api-v/task/updateTaskStatus [POST] |
| | | //func (tc TaskController) UpdateTaskStatus(c *gin.Context) { |
| | | // var tsvo TaskStatusVo |
| | | // err := c.BindJSON(&tsvo) |
| | | // if err !=nil { |
| | | // util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | // return |
| | | // } |
| | | // var taskApi dbapi.TaskApi |
| | | // paramBody := util.Struct2Map(tsvo) |
| | | // flag, data := taskApi.UpdateTaskStatus(paramBody) |
| | | // if flag { |
| | | // util.ResponseFormat(c,code.Success,data) |
| | | // } else { |
| | | // util.ResponseFormat(c,code.ComError,data) |
| | | // } |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 删除任务 |
| | | //// @Description 根据任务id删除任务 |
| | | //// @Produce json |
| | | //// @Tags task |
| | | //// @Param taskId query string true "任务id" |
| | | //// @Success 200 {string} json "{"code":200, msg:"请求处理成功",data:"",success:true}" |
| | | //// @Failure 500 {string} json "{"code":500, msg:"请求失败",data:"",success:false}" |
| | | //// @Router /data/api-v/task/delete [GET] |
| | | //func (tc TaskController) DeleteTask(c *gin.Context) { |
| | | // var taskApi dbapi.TaskApi |
| | | // taskId := c.Query("taskId") |
| | | // if taskId == "" { |
| | | // util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | // return |
| | | // } |
| | | // flag, data := taskApi.Delete(taskId) |
| | | // if flag { |
| | | // util.ResponseFormat(c,code.Success,data) |
| | | // } else { |
| | | // util.ResponseFormat(c,code.ComError,data) |
| | | // } |
| | | // |
| | | //} |
| | | // |
| | | //type TaskSdkRules struct { |
| | | // TaskId string `json:"taskId"` |
| | | // SdkId string `json:"sdkId"` |
| | | // Rules []TaskSdkRuleVo `json:"rules"` |
| | | //} |
| | | // |
| | | //type TaskSdkRuleVo struct { |
| | | // Id string `json:"id"` |
| | | // SdkArgAlias string `json:"sdk_arg_alias"` |
| | | // Operator string `json:"operator"` |
| | | // SdkArgValue string `json:"sdk_arg_value"` |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 保存算法规则 |
| | | //// @Description 保存算法规则 |
| | | //// @Accept json |
| | | //// @Produce json |
| | | //// @Tags 算法规则 |
| | | //// @Param sdkrules body controllers.TaskSdkRules 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/task/saveTaskSdkRule [post] |
| | | //func (tc TaskController) SaveTaskSdkRule(c *gin.Context) { |
| | | // var rules TaskSdkRules |
| | | // err := c.BindJSON(&rules) |
| | | // if err !=nil || rules.TaskId == "" || rules.SdkId == "" || len(rules.Rules) == 0 { |
| | | // util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | // return |
| | | // } |
| | | // paramBody := util.Struct2Map(rules) |
| | | // var api dbapi.TaskSdkRuleApi |
| | | // b,d := api.SaveTaskSdkRule(paramBody) |
| | | // if b { |
| | | // util.ResponseFormat(c,code.Success,d) |
| | | // } else { |
| | | // util.ResponseFormat(c,code.ComError,"保存失败") |
| | | // } |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 删除算法规则 |
| | | //// @Description 删除算法规则 |
| | | //// @Accept x-www-form-urlencoded |
| | | //// @Produce json |
| | | //// @Tags 算法规则 |
| | | //// @Param taskId formData string true "taskId" |
| | | //// @Param sdkId formData string true "sdkId" |
| | | //// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" |
| | | //// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" |
| | | //// @Router /data/api-v/task/deleteTaskSdkRule [post] |
| | | //func (tc TaskController) DeleteTaskSdkRule(c *gin.Context) { |
| | | // taskId := c.PostForm("taskId") |
| | | // sdkId := c.PostForm("sdkId") |
| | | // if taskId == "" || sdkId == "" { |
| | | // util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | // return |
| | | // } |
| | | // var api dbapi.TaskSdkRuleApi |
| | | // if api.DeleteTaskSdkRule(taskId, sdkId) { |
| | | // util.ResponseFormat(c,code.Success,"删除成功") |
| | | // } else { |
| | | // util.ResponseFormat(c,code.ComError, "删除失败") |
| | | // } |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 查询算法规则 |
| | | //// @Description 查询算法规则 |
| | | //// @Produce json |
| | | //// @Tags 算法规则 |
| | | //// @Param taskId query string true "任务id" |
| | | //// @Param sdkId 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/task/getRulesByTaskSdk [get] |
| | | //func (tc TaskController) GetRulesByTaskSdk(c *gin.Context) { |
| | | // taskId := c.Query("taskId") |
| | | // sdkId := c.Query("sdkId") |
| | | // if taskId == "" || sdkId == ""{ |
| | | // util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | // return |
| | | // } |
| | | // var taskSdkApi dbapi.TaskSdkRuleApi |
| | | // b, d := taskSdkApi.GetRulesByTaskSdk(taskId, sdkId) |
| | | // if b { |
| | | // util.ResponseFormat(c,code.Success,d) |
| | | // } else { |
| | | // util.ResponseFormat(c,code.ComError,"查询失败") |
| | | // } |
| | | //} |
| | | // |
| | | //// @Security ApiKeyAuth |
| | | //// @Summary 统计每个任务的摄像机数量 |
| | | //// @Description 统计每个任务的摄像机数量 |
| | | //// @Produce json |
| | | //// @Tags task |
| | | //// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" |
| | | //// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" |
| | | //// @Router /data/api-v/task/statisticTaskCamera [get] |
| | | //func (tc TaskController) StatisticTaskCamera(c *gin.Context) { |
| | | // var taskApi dbapi.TaskApi |
| | | // b,d := taskApi.StatisticTaskCamera() |
| | | // if b { |
| | | // util.ResponseFormat(c,code.Success, d) |
| | | // } else { |
| | | // util.ResponseFormat(c,code.ComError, "") |
| | | // } |
| | | //} |
| | |
| | | go 1.12 |
| | | |
| | | require ( |
| | | basic.com/dbapi.git v0.0.0-20200312083548-4b84d53ed3bf |
| | | basic.com/dbapi.git v0.0.0-20200624110237-a6e8debca64b // indirect |
| | | basic.com/fileServer/WeedFSClient.git v0.0.0-20190919054037-0182b6c3f5cb |
| | | basic.com/gb28181api.git v0.0.0-20191028082253-472438a8407b |
| | | basic.com/pubsub/cache.git v0.0.0-20190718093725-6a413e1d7d48 |
| | | basic.com/pubsub/esutil.git v0.0.0-20200114073900-ad9de8362777 |
| | | basic.com/pubsub/protomsg.git v0.0.0-20200605082339-fe3f28d45337 |
| | | basic.com/pubsub/protomsg.git v0.0.0-20200624085547-386ecad53ae3 // indirect |
| | | basic.com/valib/capture.git v0.0.0-20191204103802-89c923cf2abe |
| | | basic.com/valib/deliver.git v0.0.0-20190531095353-25d8c3b20051 |
| | | basic.com/valib/godraw.git v0.0.0-20191122082247-26e9987cd183 |
| | |
| | | basic.com/dbapi.git v0.0.0-20200312083548-4b84d53ed3bf h1:d0h3A4bJ6oB2+rHRDA0UJ6FG1zX6HKvIhFfEZyJ7s5Y= |
| | | basic.com/dbapi.git v0.0.0-20200312083548-4b84d53ed3bf/go.mod h1:eDXPnxaz6jZPDvBSk7ya7oSASWPCuUEgRTJCjsfKt/Q= |
| | | basic.com/dbapi.git v0.0.0-20200624110237-a6e8debca64b h1:JspPr7IsNBBq9TrlfWZjFMWKobkhkvHC8d+MUJp8VaU= |
| | | basic.com/dbapi.git v0.0.0-20200624110237-a6e8debca64b/go.mod h1:eDXPnxaz6jZPDvBSk7ya7oSASWPCuUEgRTJCjsfKt/Q= |
| | | basic.com/fileServer/WeedFSClient.git v0.0.0-20190919054037-0182b6c3f5cb h1:fM6DojeInFSCFO+wkba1jtyPiSDqw0jYKi4Tk+e+ka4= |
| | | basic.com/fileServer/WeedFSClient.git v0.0.0-20190919054037-0182b6c3f5cb/go.mod h1:FTryK8BsVLfUplx8a3+l8hJWub6VbAWZCUH7sPRZaso= |
| | | basic.com/gb28181api.git v0.0.0-20191028082253-472438a8407b h1:Qh7x2PY3HA9B404Llq+olY5/YlGYrM58bpOHa2CGcro= |
| | |
| | | basic.com/pubsub/esutil.git v0.0.0-20191120125514-865efa73a9ae/go.mod h1:yIvppFPFGC61DOdm71ujnsxZBMFUu2yKjr5O43bMWCw= |
| | | basic.com/pubsub/esutil.git v0.0.0-20200114073900-ad9de8362777 h1:gTeuhepfLgOchD6bqydsGGV6KCj/UaseQQgo4DFyhGQ= |
| | | basic.com/pubsub/esutil.git v0.0.0-20200114073900-ad9de8362777/go.mod h1:yIvppFPFGC61DOdm71ujnsxZBMFUu2yKjr5O43bMWCw= |
| | | basic.com/pubsub/protomsg.git v0.0.0-20200605082339-fe3f28d45337 h1:6LTdIfHUZkfemhkuQnXXaeXRdnm4459PyxMd36AXV20= |
| | | basic.com/pubsub/protomsg.git v0.0.0-20200605082339-fe3f28d45337/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU= |
| | | basic.com/pubsub/protomsg.git v0.0.0-20200624085547-386ecad53ae3 h1:j9UtxEMVKvul6hS1hbb4BtPjpb4HwV/IZ76A5QVQU94= |
| | | basic.com/pubsub/protomsg.git v0.0.0-20200624085547-386ecad53ae3/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU= |
| | | basic.com/valib/capture.git v0.0.0-20191204103802-89c923cf2abe h1:uh3u7DuSOw6AwzvPC1EM19sw1Skks1EUJddcbHDKI9M= |
| | | basic.com/valib/capture.git v0.0.0-20191204103802-89c923cf2abe/go.mod h1:y+h7VUnoSQ3jOtf2K3twXNA8fYDfyUsifSswcyKLgNw= |
| | | basic.com/valib/deliver.git v0.0.0-20190531095353-25d8c3b20051/go.mod h1:bkYiTUGzckyNOjAgn9rB/DOjFzwoSHJlruuWQ6hu6IY= |
| | |
| | | deleteDataController := new(controllers.DeleteDataController) |
| | | cameraTimeRuleController := new(controllers.CameraTimeruleController) |
| | | polygonController := new(controllers.CameraPolygonController) |
| | | cameraTaskController := new(controllers.CameraTaskController) |
| | | cameraTaskArgsController := new(controllers.CameraTaskArgsController) |
| | | //cameraTaskController := new(controllers.CameraTaskController) |
| | | //cameraTaskArgsController := new(controllers.CameraTaskArgsController) |
| | | dicController := new(controllers.DictionaryController) |
| | | userController := new(controllers.UserController) |
| | | eventPushController := new(controllers.EventPushController) |
| | |
| | | icController := new(controllers.InfoController) |
| | | gb28181C := new(controllers.Gb28181Controller) |
| | | fStackC := new(controllers.FileStackController) |
| | | cameraRuleController := new (controllers.CameraRuleController) |
| | | rtc := new(controllers.RuleTemplateController) |
| | | |
| | | urlPrefix := "/data/api-v" // wp 添加 路径 前缀 |
| | | |
| | |
| | | camera.POST("/updateCameraArea", cameraController.UpdateCameraArea) |
| | | camera.GET("/updateSnapshotUrl/:cid", cameraController.UpdateSnapshotUrl) |
| | | |
| | | camera.POST("/alltask", cameraTaskController.FindTasksByCameraIds) |
| | | camera.GET("/task/:cameraId", cameraTaskController.CameraTaskAll) |
| | | //camera.POST("/alltask", cameraTaskController.FindTasksByCameraIds) |
| | | //camera.GET("/task/:cameraId", cameraTaskController.CameraTaskAll) |
| | | |
| | | camera.DELETE("/delTask/:cameraId/:taskId", cameraController.CameraDelTask) |
| | | camera.POST("/saveTask", cameraController.CameraTaskSave) |
| | | camera.GET("/getRulesByCameraAndTask", cameraTaskArgsController.FindByCameraAndTask) |
| | | //camera.DELETE("/delTask/:cameraId/:taskId", cameraController.CameraDelTask) |
| | | //camera.POST("/saveTask", cameraController.CameraTaskSave) |
| | | //camera.GET("/getRulesByCameraAndTask", cameraTaskArgsController.FindByCameraAndTask) |
| | | camera.GET("/getCamerasByRunType", cameraController.GetCamerasByRunType) |
| | | camera.POST("/updateRunEnable", cameraController.UpdateRunEnable) |
| | | camera.POST("/changeRunType", cameraController.ChangeRunType) |
| | |
| | | |
| | | camera.POST("/ptzControl", ptzController.Move) |
| | | camera.GET("/statisticRunInfo", cameraController.StatisticRunInfo) |
| | | camera.POST("/pasteRules", cameraTaskController.PasteRules) |
| | | //camera.POST("/pasteRules", cameraTaskController.PasteRules) |
| | | } |
| | | |
| | | cameraTaskArgsApi := r.Group(urlPrefix + "/cameraTaskArgs") |
| | | rtcApi := r.Group(urlPrefix + "/template") |
| | | { |
| | | cameraTaskArgsApi.GET("/deleteByGroup", cameraTaskArgsController.DeleteByGroup) |
| | | cameraTaskArgsApi.POST("/getLinkRulesByCameraIds", cameraTaskArgsController.GetLinkRulesByCameraIds) |
| | | cameraTaskArgsApi.POST("/saveLinkRulesByGroup", cameraTaskArgsController.SaveLinkRulesByGroup) |
| | | cameraTaskArgsApi.POST("/updateDefenceStateByGroup", cameraTaskArgsController.UpdateDefenceStateByGroup) |
| | | |
| | | cameraTaskArgsApi.POST("/ruleApply2All", cameraTaskArgsController.RuleApply2All) |
| | | rtcApi.POST("/rule/save", rtc.Save) |
| | | rtcApi.GET("/rule/:id", rtc.Show) |
| | | rtcApi.DELETE("/rule/:id", rtc.Delete) |
| | | rtcApi.GET("/rule", rtc.FindAll) |
| | | } |
| | | |
| | | cameraTaskApi := r.Group(urlPrefix + "/cameraTask") |
| | | cameraRuleApi :=r.Group(urlPrefix+"/camera/rule") |
| | | { |
| | | cameraTaskApi.POST("/saveIsDataTrans", cameraTaskController.SaveIsDataTrans) |
| | | cameraTaskApi.POST("/saveAlarmLevelByGroup", cameraTaskController.SaveAlarmLevelByGroup) |
| | | cameraTaskApi.POST("/updateCameraTaskStatus", cameraTaskController.UpdateCameraTaskStatus) |
| | | cameraTaskApi.POST("/addTask", cameraTaskController.AddTask) |
| | | cameraRuleApi.GET("/:cameraId", cameraRuleController.FindByCameraId) |
| | | cameraRuleApi.GET("/deleteByGroup",cameraRuleController.DeleteByGroup) |
| | | cameraRuleApi.POST("/getLinkRulesByCameraIds",cameraRuleController.GetLinkRulesByCameraIds) |
| | | cameraRuleApi.POST("/save", cameraRuleController.Save) |
| | | cameraRuleApi.POST("/saveLinkRulesByGroup",cameraRuleController.SaveLinkRulesByGroup) |
| | | } |
| | | |
| | | //cameraTaskArgsApi := r.Group(urlPrefix + "/cameraTaskArgs") |
| | | //{ |
| | | // cameraTaskArgsApi.GET("/deleteByGroup", cameraTaskArgsController.DeleteByGroup) |
| | | // cameraTaskArgsApi.POST("/getLinkRulesByCameraIds", cameraTaskArgsController.GetLinkRulesByCameraIds) |
| | | // cameraTaskArgsApi.POST("/saveLinkRulesByGroup", cameraTaskArgsController.SaveLinkRulesByGroup) |
| | | // cameraTaskArgsApi.POST("/updateDefenceStateByGroup", cameraTaskArgsController.UpdateDefenceStateByGroup) |
| | | // |
| | | // cameraTaskArgsApi.POST("/ruleApply2All", cameraTaskArgsController.RuleApply2All) |
| | | //} |
| | | |
| | | //cameraTaskApi := r.Group(urlPrefix + "/cameraTask") |
| | | //{ |
| | | // cameraTaskApi.POST("/saveIsDataTrans", cameraTaskController.SaveIsDataTrans) |
| | | // cameraTaskApi.POST("/saveAlarmLevelByGroup", cameraTaskController.SaveAlarmLevelByGroup) |
| | | // cameraTaskApi.POST("/updateCameraTaskStatus", cameraTaskController.UpdateCameraTaskStatus) |
| | | // cameraTaskApi.POST("/addTask", cameraTaskController.AddTask) |
| | | //} |
| | | |
| | | polygon := r.Group(urlPrefix + "/polygon") |
| | | { |
| | |
| | | // 任务管理 |
| | | task := r.Group(urlPrefix + "/task") |
| | | { |
| | | task.GET("/findAll", taskController.FindAll) |
| | | //task.GET("/findAll", taskController.FindAll) |
| | | task.GET("/aggregateTaskList", taskController.AggregateTaskList) |
| | | task.POST("/addTask", taskController.AddTask) |
| | | task.POST("/updateTaskStatus", taskController.UpdateTaskStatus) |
| | | task.GET("/delete", taskController.DeleteTask) |
| | | task.POST("/addTaskSdk", taskController.AddTaskSdk) |
| | | task.GET("/delTaskSdk", taskController.DeleteTaskSdk) |
| | | task.POST("/updateTaskName", taskController.UpdateTaskName) |
| | | task.GET("/getRulesByTaskSdk", taskController.GetRulesByTaskSdk) |
| | | task.POST("/deleteTaskSdkRule", taskController.DeleteTaskSdkRule) |
| | | task.POST("/saveTaskSdkRule", taskController.SaveTaskSdkRule) |
| | | |
| | | task.GET("/statisticTaskCamera", taskController.StatisticTaskCamera) |
| | | //task.POST("/addTask", taskController.AddTask) |
| | | //task.POST("/updateTaskStatus", taskController.UpdateTaskStatus) |
| | | //task.GET("/delete", taskController.DeleteTask) |
| | | //task.POST("/addTaskSdk", taskController.AddTaskSdk) |
| | | //task.GET("/delTaskSdk", taskController.DeleteTaskSdk) |
| | | //task.POST("/updateTaskName", taskController.UpdateTaskName) |
| | | //task.GET("/getRulesByTaskSdk", taskController.GetRulesByTaskSdk) |
| | | //task.POST("/deleteTaskSdkRule", taskController.DeleteTaskSdkRule) |
| | | //task.POST("/saveTaskSdkRule", taskController.SaveTaskSdkRule) |
| | | // |
| | | //task.GET("/statisticTaskCamera", taskController.StatisticTaskCamera) |
| | | } |
| | | |
| | | // 检索 查询 节点操作 |
New file |
| | |
| | | package vo |
| | | |
| | | //用于接收多个摄像机的id,以逗号隔开 |
| | | type MultiCamera struct { |
| | | CameraIds []string `json:"cameraIds"` |
| | | } |
| | | |
| | | type GroupAlarmLevelVo struct { |
| | | GroupId string `json:"group_id" binding:"required"` |
| | | AlarmLevel int `json:"alarm_level"` |
| | | } |
| | | |
| | | type CFInfo struct { |
| | | Id string `json:"id"` |
| | | Name string `json:"name"` |
| | | RunType int `json:"run_type"` |
| | | } |
| | | |
| | | type CameraSInfo struct { |
| | | CFInfo |
| | | RunServerName string `json:"runServerName"` |
| | | } |
| | | |
| | | type CameraAndRules struct { |
| | | CameraInfo CameraSInfo `json:"cameraInfo"` |
| | | AllGroupRules []GroupRuleVo `json:"rules"` |
| | | } |
| | | |
| | | type GroupRuleVo struct { |
| | | CameraIds []string `json:"cameraIds"` //左侧选中的摄像机,可以是多个 |
| | | Id string `json:"id" example:"组规则的id"` |
| | | |
| | | GroupText string `json:"group_text" binding:"required"` |
| | | AlarmLevel int `json:"alarm_level"` |
| | | Rules []CameraRuleBase `json:"rules" binding:"required"` |
| | | SetType string `json:"set_type"` |
| | | |
| | | TemplateId string `json:"template_id"` |
| | | TimeRuleId string `json:"time_rule_id"` //时间段 |
| | | SceneName string `json:"scene_name" binding:"required"` //场景名称,从模板来,修改即自定义 |
| | | Desc string `json:"desc"` //场景描述 |
| | | Enable bool `json:"enable"` |
| | | } |
| | | |
| | | type CameraRuleBase struct { |
| | | 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"` //算法参数值设置 |
| | | Sort int `json:"sort"` //排序 |
| | | RuleWithPre string `json:"rule_with_pre"` //与上一条记录的逻辑运算规则(&&,||) |
| | | GroupId string `json:"group_id"` //分组id |
| | | } |