From 9303b69ea569bcb5e581147543a3fd58e90d0d25 Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期四, 20 八月 2020 20:05:23 +0800
Subject: [PATCH] add get buckets contrl

---
 controllers/cameraTask.go |  107 +++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 98 insertions(+), 9 deletions(-)

diff --git a/controllers/cameraTask.go b/controllers/cameraTask.go
index 7a686c5..7ae01fb 100644
--- a/controllers/cameraTask.go
+++ b/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 "鎽勫儚鏈篿d"
@@ -123,6 +176,7 @@
 	}
 }
 
+// @Security ApiKeyAuth
 // @Summary 鏌ヨ鎵�鏈変换鍔�
 // @Description "鏌ヨ鎵�鏈変换鍔�"
 // @Produce json
@@ -131,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,"鎽勫儚鏈篿d涓嶈兘涓虹┖")
@@ -146,7 +200,7 @@
 	}
 }
 
-
+// @Security ApiKeyAuth
 // @Summary 鎽勫儚鏈轰繚瀛樹换鍔�
 // @Description 鎽勫儚鏈轰繚瀛樹换鍔�
 // @Accept json
@@ -156,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 {
@@ -175,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
@@ -184,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 == "" {
@@ -211,6 +295,7 @@
 	AlarmLevel int `json:"alarm_level"`
 }
 
+// @Security ApiKeyAuth
 // @Summary 淇濆瓨浠诲姟鏄惁涓嬩紶鏁版嵁
 // @Description 淇濆瓨浠诲姟鏄惁涓嬩紶鏁版嵁
 // @Accept json
@@ -220,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,"鍙傛暟鏈夎")
@@ -237,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,"鍙傛暟鏈夎")
@@ -267,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,"鍙傛暟鏈夎")

--
Gitblit v1.8.0