From 4e6e04d8a8e3628a89ae889c43758f92223c456c Mon Sep 17 00:00:00 2001 From: liuxiaolong <liuxiaolong@aiotlink.com> Date: 星期二, 30 六月 2020 20:39:36 +0800 Subject: [PATCH] free camera alltask --- controllers/cameraTask.go | 170 ++++++++++++++++++++++++++++++-------------------------- 1 files changed, 92 insertions(+), 78 deletions(-) diff --git a/controllers/cameraTask.go b/controllers/cameraTask.go index 452dc60..8efe355 100644 --- a/controllers/cameraTask.go +++ b/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 "鎽勫儚鏈篿d鏁扮粍" -//// @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 "鎽勫儚鏈篿d鏁扮粍" +// @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 鎽勫儚鏈烘坊鍔犱竴涓换鍔� -- Gitblit v1.8.0