package controllers
|
|
import (
|
"basic.com/dbapi.git"
|
"fmt"
|
"github.com/gin-gonic/gin"
|
"webserver/extend/code"
|
"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 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 {
|
util.ResponseFormat(c,code.Success,data)
|
} 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 "摄像机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 (ac 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 (ac 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)
|
}
|
}
|