package controllers
|
|
import (
|
"basic.com/dbapi.git"
|
"basic.com/pubsub/esutil.git"
|
"basic.com/valib/logger.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"
|
// "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 {
|
|
}
|
//
|
//用于接收多个摄像机的id,以逗号隔开
|
type MultiCamera struct {
|
CameraIds []string `json:"cameraIds"`
|
}
|
//
|
//type CameraTaskVo struct {
|
// Id string `json:"id"`
|
// CameraId string `json:"camera_id"`
|
// TaskId string `json:"task_id"` //任务id 来自于任务表
|
// TimeRule string `json:"time_rule"`
|
// ReactRule string `json:"react_rule"`
|
// ReactDevice string `json:"react_device"`
|
// DelFlag bool `json:"del_flag"`
|
// UpdateFlag bool `json:"update_flag"`
|
// Enable int `json:"enable"` //默认启用
|
// Sort int `json:"sort"` //任务排序
|
// IsFull int `json:"is_full"` //参数是否设置完整
|
// LinkTaskId string `json:"link_task_id"` //联动任务组
|
//}
|
//
|
//type CameraTaskSaveArg struct {
|
// Id string `json:"id"`
|
// SetType string `json:"set_type" example:"batchTask:批量任务,linkTask:联动任务"`//任务设置方式(批量设置还是联动任务设置)
|
// CameraIds []string `json:"camera_ids"`
|
// TaskId string `json:"task_id"`
|
// GroupId string `json:"group_id"`
|
// GroupText string `json:"group_text"`
|
// GroupRule []CameraTaskArgVo `json:"group_rule"`
|
//}
|
//
|
//type CameraTaskArgGroup struct {
|
// Id string `json:"id"`
|
// CameraTaskId string `json:"camera_task_id"`
|
// GroupId string `json:"group_id"`
|
// GroupText string `json:"group_text"`
|
// AlarmLevel int `json:"alarm_level"`
|
//}
|
//
|
//type CameraTaskArgVo struct {
|
// Id string `json:"id"`
|
// CameraId string `json:"camera_id"`//摄像机id
|
// PolygonId string `json:"polygon_id"`//多边形id
|
// SdkId string `json:"sdk_id"`//算法id
|
// SdkArgAlias string `json:"sdk_arg_alias"`//算法参数别名
|
// Operator string `json:"operator"`//计算方式=,>,>=等等
|
// OperatorType string `json:"operator_type"`//计算的值类型
|
// SdkArgValue string `json:"sdk_arg_value"` //算法参数值设置
|
// RuleWithPre string `json:"rule_with_pre"` //与下一条的逻辑运算符
|
// 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
|
// @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)
|
} else {
|
logger.Debug("alltask err:", err)
|
}
|
}
|
}
|
logger.Debug("alltask camRuleArr:", camRuleArr)
|
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)
|
if taskId != "" {
|
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 摄像机添加一个任务
|
//// @Description 摄像机添加一个任务
|
//// @Accept x-www-form-urlencoded
|
//// @Produce json
|
//// @Tags CameraTask
|
//// @Param cameraId formData string true "摄像机id"
|
//// @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
|
//// @Tags CameraTask
|
//// @Param cameraId path 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/camera/task/{cameraId} [get]
|
//func (ctc CameraTaskController) CameraTaskAll(c *gin.Context) {
|
// cameraId := c.Param("cameraId")
|
// if cameraId == "" {
|
// util.ResponseFormat(c,code.RequestParamError,"摄像机id不能为空")
|
// return
|
// }
|
// var api dbapi.CameraTaskApi
|
// flag,data := api.CameraTaskAll(cameraId)
|
// if flag {
|
// util.ResponseFormat(c,code.Success,data)
|
// } else {
|
// util.ResponseFormat(c,code.ComError,data)
|
// }
|
//}
|
//
|
//// @Security ApiKeyAuth
|
//// @Summary 摄像机保存任务
|
//// @Description 摄像机保存任务
|
//// @Accept json
|
//// @Produce json
|
//// @Tags camera
|
//// @Param args body controllers.CameraTaskSaveArg 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/saveTask [post]
|
//func (cc CameraController) CameraTaskSave(c *gin.Context) {
|
// var saveBody CameraTaskSaveArg
|
// err := c.BindJSON(&saveBody)
|
// if err != nil {
|
// util.ResponseFormat(c, code.RequestParamError, "参数有误")
|
// return
|
// }
|
// var api dbapi.CameraTaskApi
|
// paramBody := util.Struct2Map(saveBody)
|
// fmt.Println("paramBody:",paramBody)
|
// flag, data := api.CameraTaskSave(paramBody)
|
// fmt.Println("data",data)
|
// if flag {
|
// util.ResponseFormat(c,code.Success,data)
|
// } else {
|
// util.ResponseFormat(c, code.ComError, data)
|
// }
|
//}
|
//
|
//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
|
//// @Tags camera
|
//// @Param cameraId path string true "摄像机id"
|
//// @Param taskId path 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/camera/delTask/{cameraId}/{taskId} [delete]
|
//func (cc CameraController) CameraDelTask(c *gin.Context) {
|
// cameraId := c.Param("cameraId")
|
// taskId := c.Param("taskId")
|
// if cameraId == "" || taskId == "" {
|
// util.ResponseFormat(c,code.RequestParamError,"参数有误")
|
// return
|
// }
|
// var api dbapi.CameraTaskApi
|
// flag,data := api.DeleteCameraTask(cameraId,taskId)
|
//
|
// if flag {
|
// util.ResponseFormat(c, code.Success, data)
|
// } else {
|
// util.ResponseFormat(c, code.ComError, data)
|
// }
|
//}
|
//
|
//type DataTransVo struct {
|
// CameraIds []string `json:"camera_ids"`
|
// TaskId string `json:"task_id"`
|
// IsDataTrans int `json:"is_data_trans"`
|
//}
|
//type GroupAlarmLevelVo struct {
|
// GroupId string `json:"group_id"`
|
// AlarmLevel int `json:"alarm_level"`
|
//}
|
//
|
//// @Security ApiKeyAuth
|
//// @Summary 保存任务是否下传数据
|
//// @Description 保存任务是否下传数据
|
//// @Accept json
|
//// @Produce json
|
//// @Tags CameraTask
|
//// @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/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
|
// }
|
// var api dbapi.CameraTaskApi
|
// paramBody := util.Struct2Map(transVo)
|
//
|
// 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)
|
// }
|
//}
|