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) // } //}