liuxiaolong
2020-06-30 4e6e04d8a8e3628a89ae889c43758f92223c456c
controllers/cameraTask.go
@@ -1,4 +1,19 @@
package controllers
import (
   "basic.com/dbapi.git"
   "basic.com/pubsub/esutil.git"
   "encoding/json"
   "github.com/gin-gonic/gin"
   "strconv"
   "webserver/cache"
   "webserver/extend/code"
   "webserver/extend/config"
   "webserver/extend/util"
   "webserver/models"
   "webserver/vo"
)
//
//import (
//   "basic.com/dbapi.git"
@@ -14,14 +29,14 @@
//   "webserver/models"
//)
//
//type CameraTaskController struct {
type CameraTaskController struct {
}
//
//}
//
////用于接收多个摄像机的id,以逗号隔开
//type MultiCamera struct {
//   CameraIds []string `json:"cameraIds"`
//}
//用于接收多个摄像机的id,以逗号隔开
type MultiCamera struct {
   CameraIds []string `json:"cameraIds"`
}
//
//type CameraTaskVo struct {
//   Id          string `json:"id"`
@@ -73,78 +88,77 @@
//
//}
//
//type CameraTaskInfoVo struct {
//   Camera models.Camera `json:"camera"`
//   Tasks []models.Task `json:"tasks"`
//   Polygon CameraPolygonVo `json:"polygon"`
//}
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 json
// @Produce json
// @Tags 摄像机规则
// @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.CameraRuleApi
   var camRuleArr []vo.CameraAndRules
   for _,camId :=range mulCamera.CameraIds {
      if b, d := api.FindByCameraId(camId); b {
         bytes, _ := json.Marshal(d)
         var camTInfo []vo.CameraAndRules
         if err := json.Unmarshal(bytes, &camTInfo); err ==nil {
            camRuleArr = append(camRuleArr, camTInfo...)
         }
      }
   }
   var result []SceneIfDelResult
   m := make(map[string]string)
   for _,cg :=range camRuleArr {
      for _,g := range cg.AllGroupRules {
         m[g.Id] = g.SceneName
         result = append(result, SceneIfDelResult{
            Id: g.Id,
            Name: g.SceneName,
            IsDelete: false,
         })
      }
   }
   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)
               taskName := tM["taskName"].(string)
               result = append(result, SceneIfDelResult{
                  Id: taskId,
                  Name: taskName,
                  IsDelete: true,
               })
            }
         }
      }
   }
   util.ResponseFormat(c,code.Success, result)
}
type SceneIfDelResult struct {
   Id          string       `json:"id"`
   Name       string       `json:"name"`
   IsDelete    bool       `json:"isDelete"`
}
//
//// @Security ApiKeyAuth
//// @Summary 摄像机添加一个任务