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"
)
@@ -90,7 +95,52 @@
   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)
   }