sunty
2020-08-20 9d88c7c467f8d93af4aab9ba0b6d6c01c2ffc546
controllers/cameraTaskArgs.go
@@ -1,141 +1,208 @@
package controllers
import (
   "basic.com/dbapi.git"
   "github.com/gin-gonic/gin"
   "webserver/extend/code"
   "webserver/extend/util"
)
type CameraTaskArgsController struct {
}
// @Summary 根据摄像机id和任务id查询算法配置详情
// @Description 根据摄像机id和任务id查询算法配置详情
// @Produce json
// @Tags CameraTaskArgs
// @Param cameraId query string true "摄像机id"
// @Param taskId query string true "任务id"
// @Param set_type query string 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/getRulesByCameraAndTask [get]
func (controller CameraTaskArgsController) FindByCameraAndTask(c *gin.Context) {
   cameraId := c.Query("cameraId")
   taskId := c.Query("taskId")
   setType := c.Query("set_type")
   if cameraId == "" || taskId == "" || setType == "" {
      util.ResponseFormat(c,code.RequestParamError,"摄像机id和任务id不能为空")
      return
   }
   var api dbapi.CameraTaskArgsApi
   flag,data := api.FindByCameraAndTask(cameraId,taskId,setType)
   if flag {
      util.ResponseFormat(c, code.Success, data)
   } else {
      util.ResponseFormat(c, code.ComError, data)
   }
}
// @Summary 根据多个摄像机id查询联动任务规则设置
// @Description 根据多个摄像机id查询联动任务规则设置
// @Accept json
// @Produce json
// @Tags CameraTaskArgs
// @Param cameraIds body controllers.MultiCamera true "摄像机ids"
// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
// @Router /data/api-v/cameraTaskArgs/getLinkRulesByCameraIds [post]
func (controller CameraTaskArgsController) GetLinkRulesByCameraIds(c *gin.Context) {
   var cameraIdsVo MultiCamera
   if err := c.BindJSON(&cameraIdsVo);err !=nil {
      util.ResponseFormat(c,code.RequestParamError,"参数有误")
      return
   }
   var api dbapi.CameraTaskArgsApi
   paramBody := util.Struct2Map(cameraIdsVo)
   flag,data := api.GetLinkRulesByCameraIds(paramBody)
   if flag {
      util.ResponseFormat(c,code.Success,data)
   } else {
      util.ResponseFormat(c,code.ComError,data)
   }
}
// @SUmmary 根据分组id删除摄像机算法规则
// @Description 根据分组id删除摄像机算法规则
// @Produce json
// @Tags CameraTaskArgs
// @Param groupId query 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/cameraTaskArgs/deleteByGroup [get]
func (controller CameraTaskArgsController)DeleteByGroup(c *gin.Context) {
   groupId := c.Query("groupId")
   if groupId == "" {
      util.ResponseFormat(c, code.RequestParamError, "id必填")
      return
   }
   var api dbapi.CameraTaskArgsApi
   flag,data:=api.DeleteByGroup(groupId)
   if flag {
      util.ResponseFormat(c,code.Success,data)
   } else {
      util.ResponseFormat(c,code.ComError,data)
   }
}
type SaveLinkRulesGroupVo struct {
   LinkTaskId string `json:"link_task_id"`//联动任务id
   GroupId string `json:"group_id"`//分组id
   GroupText string `json:"group_text"`//组规则文字
   Rules []LinkRuleArgVo `json:"rules"`//组内的规则
}
type LinkRuleArgVo struct {
   TaskId string `json:"task_id"`
   CameraTaskArgs
}
type CameraTaskArgs struct {
   Id string `json:"id"`
   CameraTaskId string `json:"camera_task_id"`//camera_tasks表的主键,摄像机和任务关联id或者联动任务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"` //算法参数值设置
   Sort int `json:"sort"`//排序
   RuleWithPre string `json:"rule_with_pre"`//与上一条记录的逻辑运算规则(&&,||)
   GroupId string `json:"group_id"`//分组id
}
// @Summary 保存联动任务规则参数
// @Description 保存联动任务规则参数
// @Accept json
// @Produce json
// @Param saveBody body controllers.SaveLinkRulesGroupVo 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/cameraTaskArgs/saveLinkRulesByGroup [post]
func (controller CameraTaskArgsController) SaveLinkRulesByGroup(c *gin.Context) {
   var saveBody SaveLinkRulesGroupVo
   if err := c.BindJSON(&saveBody);err !=nil {
      util.ResponseFormat(c,code.RequestParamError,"参数有误")
      return
   }
   var api dbapi.CameraTaskArgsApi
   paramBody := util.Struct2Map(saveBody)
   flag,data := api.SaveLinkRulesByGroup(paramBody)
   if flag {
      util.ResponseFormat(c,code.Success,data)
   } else {
      util.ResponseFormat(c,code.ComError,data)
   }
}
//import (
//   "basic.com/dbapi.git"
//   "basic.com/valib/logger.git"
//   "github.com/gin-gonic/gin"
//   "strconv"
//   "strings"
//   "webserver/extend/code"
//   "webserver/extend/util"
//)
//
//type CameraTaskArgsController struct {
//
//}
//
//// @Security ApiKeyAuth
//// @Summary 根据摄像机id和任务id查询算法配置详情
//// @Description 根据摄像机id和任务id查询算法配置详情
//// @Produce json
//// @Tags CameraTaskArgs
//// @Param cameraId query string true "摄像机id"
//// @Param taskId query string true "任务id"
//// @Param set_type query string 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/getRulesByCameraAndTask [get]
//func (controller CameraTaskArgsController) FindByCameraAndTask(c *gin.Context) {
//   cameraId := c.Query("cameraId")
//   taskId := c.Query("taskId")
//   setType := c.Query("set_type")
//   if cameraId == "" || taskId == "" || setType == "" {
//      util.ResponseFormat(c,code.RequestParamError,"摄像机id和任务id不能为空")
//      return
//   }
//   var api dbapi.CameraTaskArgsApi
//   flag,data := api.FindByCameraAndTask(cameraId,taskId,setType)
//
//   if flag {
//      util.ResponseFormat(c, code.Success, data)
//   } else {
//      util.ResponseFormat(c, code.ComError, data)
//   }
//}
//
//// @Security ApiKeyAuth
//// @Summary 根据多个摄像机id查询联动任务规则设置
//// @Description 根据多个摄像机id查询联动任务规则设置
//// @Accept json
//// @Produce json
//// @Tags CameraTaskArgs
//// @Param cameraIds body controllers.MultiCamera true "摄像机ids"
//// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
//// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
//// @Router /data/api-v/cameraTaskArgs/getLinkRulesByCameraIds [post]
//func (controller CameraTaskArgsController) GetLinkRulesByCameraIds(c *gin.Context) {
//   var cameraIdsVo MultiCamera
//   if err := c.BindJSON(&cameraIdsVo);err !=nil {
//      util.ResponseFormat(c,code.RequestParamError,"参数有误")
//      return
//   }
//   var api dbapi.CameraTaskArgsApi
//   paramBody := util.Struct2Map(cameraIdsVo)
//   flag,data := api.GetLinkRulesByCameraIds(paramBody)
//   if flag {
//      util.ResponseFormat(c,code.Success,data)
//   } else {
//      util.ResponseFormat(c,code.ComError,data)
//   }
//}
//
//// @Security ApiKeyAuth
//// @Summary 根据分组id切换布防或撤防
//// @Description 根据分组id切换布防或撤防
//// @Accept x-www-form-urlencoded
//// @Produce json
//// @Tags CameraTaskArgs
//// @Param groupId formData string true "任务算法参数分组id"
//// @Param defenceState formData bool true "布防状态,false:撤防,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/cameraTaskArgs/updateDefenceStateByGroup [post]
//func (controller CameraTaskArgsController) UpdateDefenceStateByGroup(c *gin.Context){
//   groupId := c.PostForm("groupId")
//   str := c.PostForm("defenceState")
//   logger.Debug("defenceState:",str)
//   defenceState, err := strconv.ParseBool(str)
//   if groupId =="" || err !=nil{
//      util.ResponseFormat(c, code.RequestParamError, "参数有误")
//      return
//   }
//   var api dbapi.CameraTaskArgsApi
//   if b,data := api.UpdateDefenceStateByGroup(groupId,defenceState);b{
//      util.ResponseFormat(c,code.UpdateSuccess,data)
//   } else {
//      util.ResponseFormat(c,code.ComError,data)
//   }
//}
//
//// @Security ApiKeyAuth
//// @SUmmary 根据分组id删除摄像机算法规则
//// @Description 根据分组id删除摄像机算法规则
//// @Produce json
//// @Tags CameraTaskArgs
//// @Param groupId query 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/cameraTaskArgs/deleteByGroup [get]
//func (controller CameraTaskArgsController)DeleteByGroup(c *gin.Context) {
//   groupId := c.Query("groupId")
//   if groupId == "" {
//      util.ResponseFormat(c, code.RequestParamError, "id必填")
//      return
//   }
//   var api dbapi.CameraTaskArgsApi
//   flag,data := api.DeleteByGroup(groupId)
//   if flag {
//      util.ResponseFormat(c,code.Success,data)
//   } else {
//      util.ResponseFormat(c,code.ComError,"删除失败")
//   }
//
//}
//
//type SaveLinkRulesGroupVo struct {
//   LinkTaskId string `json:"link_task_id"`//联动任务id
//   GroupId string `json:"group_id"`//分组id
//   GroupText string `json:"group_text"`//组规则文字
//   Rules []LinkRuleArgVo `json:"rules"`//组内的规则
//}
//
//type LinkRuleArgVo struct {
//   TaskId string `json:"task_id"`
//   CameraTaskArgs
//}
//
//type CameraTaskArgs struct {
//   Id string `json:"id"`
//   CameraTaskId string `json:"camera_task_id"`//camera_tasks表的主键,摄像机和任务关联id或者联动任务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"` //算法参数值设置
//   Sort int `json:"sort"`//排序
//   RuleWithPre string `json:"rule_with_pre"`//与上一条记录的逻辑运算规则(&&,||)
//   GroupId string `json:"group_id"`//分组id
//}
//
//// @Security ApiKeyAuth
//// @Summary 保存联动任务规则参数
//// @Description 保存联动任务规则参数
//// @Accept json
//// @Produce json
//// @Param saveBody body controllers.SaveLinkRulesGroupVo 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/cameraTaskArgs/saveLinkRulesByGroup [post]
//func (controller CameraTaskArgsController) SaveLinkRulesByGroup(c *gin.Context) {
//   var saveBody SaveLinkRulesGroupVo
//   if err := c.BindJSON(&saveBody);err !=nil {
//      util.ResponseFormat(c,code.RequestParamError,"参数有误")
//      return
//   }
//   var api dbapi.CameraTaskArgsApi
//   paramBody := util.Struct2Map(saveBody)
//   flag,data := api.SaveLinkRulesByGroup(paramBody)
//   if flag {
//      util.ResponseFormat(c,code.Success,data)
//   } else {
//      util.ResponseFormat(c,code.ComError,data)
//   }
//}
//
//type RuleApply2AllVo struct {
//   CameraId   string             `json:"camera_id" binding:"required"`//规则拥有者id
//}
//
//// @Summary 将本条规则应用到所有本地视频
//// @Description 将本条规则应用到所有本地视频
//// @Produce json
//// @Tags CameraTaskArgs
//// @Param args body controllers.RuleApply2AllVo 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/cameraTaskArgs/ruleApply2All [post]
//func (controller CameraTaskArgsController) RuleApply2All(c *gin.Context) {
//   var saveBody RuleApply2AllVo
//   err := c.BindJSON(&saveBody)
//   if err !=nil {
//      util.ResponseFormat(c, code.RequestParamError, "参数有误")
//      return
//   }
//   if !strings.HasPrefix(saveBody.CameraId, File_Video_Id_Pre) && !strings.HasPrefix(saveBody.CameraId, File_Img_Id_Pre) && !!strings.HasPrefix(saveBody.CameraId, File_Audio_Id_Pre) {
//      util.ResponseFormat(c, code.RequestParamError, "参数有误")
//      return
//   }
//   var api dbapi.CameraTaskApi
//   paramBody := util.Struct2Map(saveBody)
//   flag, data := api.RuleApply2All(paramBody)
//   if flag {
//      util.ResponseFormat(c,code.Success,data)
//   } else {
//      util.ResponseFormat(c, code.ComError, data)
//   }
//}