sunty
2020-08-20 9303b69ea569bcb5e581147543a3fd58e90d0d25
controllers/cameraTask.go
@@ -2,9 +2,14 @@
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"
)
@@ -74,6 +79,7 @@
   Polygon CameraPolygonVo `json:"polygon"`
}
// @Security ApiKeyAuth
// @Summary 查询所有任务
// @Description "查询所有任务"
// @Accept json
@@ -83,20 +89,67 @@
// @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 (controller CameraTaskController) FindTasksByCameraIds(c *gin.Context){
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 {
      util.ResponseFormat(c,code.Success,data)
      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"
@@ -115,10 +168,15 @@
   if b,data := api.AddTask(cameraId, taskId);b {
      util.ResponseFormat(c,code.AddSuccess, data)
   } else {
      util.ResponseFormat(c,code.ComError, data)
      if data.(string) == "此国标摄像机已在其它服务器配置任务!" {
         util.ResponseFormat(c,code.AddTaskErr, data)
      } else {
         util.ResponseFormat(c,code.ComError, data)
      }
   }
}
// @Security ApiKeyAuth
// @Summary 查询所有任务
// @Description "查询所有任务"
// @Produce json
@@ -127,7 +185,7 @@
// @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 (controller CameraTaskController) CameraTaskAll(c *gin.Context) {
func (ctc CameraTaskController) CameraTaskAll(c *gin.Context) {
   cameraId := c.Param("cameraId")
   if cameraId == "" {
      util.ResponseFormat(c,code.RequestParamError,"摄像机id不能为空")
@@ -142,7 +200,7 @@
   }
}
// @Security ApiKeyAuth
// @Summary 摄像机保存任务
// @Description 摄像机保存任务
// @Accept json
@@ -152,7 +210,7 @@
// @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 (ac CameraController) CameraTaskSave(c *gin.Context) {
func (cc CameraController) CameraTaskSave(c *gin.Context) {
   var saveBody CameraTaskSaveArg
   err := c.BindJSON(&saveBody)
   if err != nil {
@@ -171,6 +229,36 @@
   }
}
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
@@ -180,7 +268,7 @@
// @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 (ac CameraController) CameraDelTask(c *gin.Context) {
func (cc CameraController) CameraDelTask(c *gin.Context) {
   cameraId := c.Param("cameraId")
   taskId := c.Param("taskId")
   if cameraId == "" || taskId == "" {
@@ -207,6 +295,7 @@
   AlarmLevel int `json:"alarm_level"`
}
// @Security ApiKeyAuth
// @Summary 保存任务是否下传数据
// @Description 保存任务是否下传数据
// @Accept json
@@ -216,7 +305,7 @@
// @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 (controller CameraTaskController) SaveIsDataTrans(c *gin.Context) {
func (ctc CameraTaskController) SaveIsDataTrans(c *gin.Context) {
   var transVo DataTransVo
   if err := c.BindJSON(&transVo);err!=nil {
      util.ResponseFormat(c,code.RequestParamError,"参数有误")
@@ -233,15 +322,17 @@
   }
}
// @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 (controller CameraTaskController) SaveAlarmLevelByGroup(c *gin.Context) {
func (ctc CameraTaskController) SaveAlarmLevelByGroup(c *gin.Context) {
   var groupLevelVo GroupAlarmLevelVo
   if err := c.BindJSON(&groupLevelVo);err !=nil {
      util.ResponseFormat(c,code.RequestParamError,"参数有误")
@@ -263,15 +354,17 @@
   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 (controller CameraTaskController) UpdateCameraTaskStatus(c *gin.Context) {
func (ctc CameraTaskController) UpdateCameraTaskStatus(c *gin.Context) {
   var paramVo CameraTaskStatusVo
   if err := c.BindJSON(&paramVo);err !=nil {
      util.ResponseFormat(c,code.RequestParamError,"参数有误")