liuxiaolong
2020-06-30 4e6e04d8a8e3628a89ae889c43758f92223c456c
free camera alltask
3个文件已修改
175 ■■■■ 已修改文件
controllers/cameraTask.go 170 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
router/router.go 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vo/cameraRule.go 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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 "摄像机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/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 "摄像机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/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 摄像机添加一个任务
router/router.go
@@ -31,7 +31,7 @@
    deleteDataController := new(controllers.DeleteDataController)
    cameraTimeRuleController := new(controllers.CameraTimeruleController)
    polygonController := new(controllers.CameraPolygonController)
    //cameraTaskController := new(controllers.CameraTaskController)
    cameraTaskController := new(controllers.CameraTaskController)
    //cameraTaskArgsController := new(controllers.CameraTaskArgsController)
    dicController := new(controllers.DictionaryController)
    userController := new(controllers.UserController)
@@ -112,7 +112,7 @@
        camera.POST("/updateCameraArea", cameraController.UpdateCameraArea)
        camera.GET("/updateSnapshotUrl/:cid", cameraController.UpdateSnapshotUrl)
        //camera.POST("/alltask", cameraTaskController.FindTasksByCameraIds)
        camera.POST("/alltask", cameraTaskController.FindTasksByCameraIds)
        //camera.GET("/task/:cameraId", cameraTaskController.CameraTaskAll)
        //camera.DELETE("/delTask/:cameraId/:taskId", cameraController.CameraDelTask)
vo/cameraRule.go
@@ -28,6 +28,7 @@
type GroupRuleVo struct {
    CameraIds             []string                             `json:"cameraIds"` //左侧选中的摄像机,可以是多个
    CameraNames         string                                 `json:"camera_names"`
    Id                    string                              `json:"id" example:"组规则的id"`
    GroupText              string                              `json:"group_text" binding:"required"`