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 | 227 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 205 insertions(+), 22 deletions(-) diff --git a/controllers/cameraTask.go b/controllers/cameraTask.go index 4080663..7ae01fb 100644 --- a/controllers/cameraTask.go +++ b/controllers/cameraTask.go @@ -2,10 +2,16 @@ import ( "basic.com/dbapi.git" - "webserver/extend/code" - "webserver/extend/util" + "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" ) type CameraTaskController struct { @@ -19,7 +25,7 @@ type CameraTaskVo struct { Id string `json:"id"` - CameraIds string `json:"camera_ids"` + CameraId string `json:"camera_id"` TaskId string `json:"task_id"` //浠诲姟id 鏉ヨ嚜浜庝换鍔¤〃 TimeRule string `json:"time_rule"` ReactRule string `json:"react_rule"` @@ -29,7 +35,7 @@ Enable int `json:"enable"` //榛樿鍚敤 Sort int `json:"sort"` //浠诲姟鎺掑簭 IsFull int `json:"is_full"` //鍙傛暟鏄惁璁剧疆瀹屾暣 - LinkGroupId string `json:"link_group_id"` //鑱斿姩浠诲姟缁� + LinkTaskId string `json:"link_task_id"` //鑱斿姩浠诲姟缁� } type CameraTaskSaveArg struct { @@ -63,6 +69,17 @@ GroupId string `json:"group_id"` } +type LinkCameraTasksVo struct { + +} + +type CameraTaskInfoVo struct { + Camera models.Camera `json:"camera"` + Tasks []models.Task `json:"tasks"` + Polygon CameraPolygonVo `json:"polygon"` +} + +// @Security ApiKeyAuth // @Summary 鏌ヨ鎵�鏈変换鍔� // @Description "鏌ヨ鎵�鏈変换鍔�" // @Accept json @@ -72,18 +89,94 @@ // @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" +// @Param taskId formData string true "浠诲姟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/cameraTask/addTask [post] +func (ctc CameraTaskController) AddTask(c *gin.Context) { + cameraId := c.PostForm("cameraId") + taskId := c.PostForm("taskId") + if cameraId == "" || taskId == "" { + util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎") + return + } + var api dbapi.CameraTaskApi + if b,data := api.AddTask(cameraId, taskId);b { + util.ResponseFormat(c,code.AddSuccess, data) + } else { + if data.(string) == "姝ゅ浗鏍囨憚鍍忔満宸插湪鍏跺畠鏈嶅姟鍣ㄩ厤缃换鍔★紒" { + util.ResponseFormat(c,code.AddTaskErr, data) + } else { + util.ResponseFormat(c,code.ComError, data) + } + } +} + +// @Security ApiKeyAuth // @Summary 鏌ヨ鎵�鏈変换鍔� // @Description "鏌ヨ鎵�鏈変换鍔�" // @Produce json @@ -92,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涓嶈兘涓虹┖") @@ -107,7 +200,7 @@ } } - +// @Security ApiKeyAuth // @Summary 鎽勫儚鏈轰繚瀛樹换鍔� // @Description 鎽勫儚鏈轰繚瀛樹换鍔� // @Accept json @@ -117,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 { @@ -136,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 @@ -145,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 == "" { @@ -162,40 +285,100 @@ } } -type TransAndAlarmLevelVo struct { +type DataTransVo struct { CameraIds []string `json:"camera_ids"` TaskId string `json:"task_id"` IsDataTrans int `json:"is_data_trans"` - GroupLevels []GroupAlarmLevelVo `json:"group_levels"` } type GroupAlarmLevelVo struct { GroupId string `json:"group_id"` AlarmLevel int `json:"alarm_level"` } -// @Summary 淇濆瓨浠诲姟鏄惁涓嬩紶鏁版嵁浠ュ強缁勬姤璀︾瓑绾� -// @Description 淇濆瓨浠诲姟鏄惁涓嬩紶鏁版嵁浠ュ強缁勬姤璀︾瓑绾� +// @Security ApiKeyAuth +// @Summary 淇濆瓨浠诲姟鏄惁涓嬩紶鏁版嵁 +// @Description 淇濆瓨浠诲姟鏄惁涓嬩紶鏁版嵁 // @Accept json // @Produce json // @Tags CameraTask -// @Param TransAndAlarmLevel body controllers.TransAndAlarmLevelVo true "璇锋眰鍙傛暟缁撴瀯" +// @Param TransAndAlarmLevel body controllers.DataTransVo 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/saveTransAndAlarmLevel [post] -func (controller CameraTaskController) SaveTransAndAlarmLevel(c *gin.Context) { - var vo TransAndAlarmLevelVo - if err := c.BindJSON(&vo);err!=nil { +// @Router /data/api-v/cameraTask/saveIsDataTrans [post] +func (ctc CameraTaskController) SaveIsDataTrans(c *gin.Context) { + var transVo DataTransVo + if err := c.BindJSON(&transVo);err!=nil { util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎") return } - fmt.Println("SaveTransAndAlarmLevel.vo:",vo) var api dbapi.CameraTaskApi - paramBody := util.Struct2Map(vo) + paramBody := util.Struct2Map(transVo) - flag ,data := api.SaveTransAndAlarmLevel(paramBody) + flag ,data := api.SaveIsDataTrans(paramBody) if flag { util.ResponseFormat(c,code.Success,data) } else { util.ResponseFormat(c,code.ComError,data) } +} + +// @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 (ctc CameraTaskController) SaveAlarmLevelByGroup(c *gin.Context) { + var groupLevelVo GroupAlarmLevelVo + if err := c.BindJSON(&groupLevelVo);err !=nil { + util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎") + return + } + + var api dbapi.CameraTaskApi + flag,data := api.SaveAlarmLevelByGroup(groupLevelVo.GroupId,groupLevelVo.AlarmLevel) + if flag { + util.ResponseFormat(c,code.Success,data) + } else { + util.ResponseFormat(c,code.ComError,data) + } +} + +type CameraTaskStatusVo struct { + CameraId string `json:"cameraId"` + TaskId string `json:"taskId"` + 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 (ctc CameraTaskController) UpdateCameraTaskStatus(c *gin.Context) { + var paramVo CameraTaskStatusVo + if err := c.BindJSON(¶mVo);err !=nil { + util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎") + return + } + var api dbapi.CameraTaskApi + flag, data := api.UpdateCameraTaskStatus(paramVo.CameraId, paramVo.TaskId, paramVo.Status) + if flag { + if data.(string) == "姝や换鍔′负鍋滅敤鐘舵�侊紝璇峰湪浠诲姟绠$悊涓紑鍚紒"{ + util.ResponseFormat(c,code.TaskStoped,data) + } else { + util.ResponseFormat(c,code.UpdateSuccess,data) + } + } else { + util.ResponseFormat(c,code.ComError,data) + } } \ No newline at end of file -- Gitblit v1.8.0