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