sunty
2019-06-28 88d229d880079db1d31af1d4cbed3b8eb12fd47d
controllers/camera.go
@@ -3,6 +3,7 @@
import (
   "encoding/json"
   "fmt"
   "strconv"
   "github.com/gin-gonic/gin"
@@ -14,20 +15,25 @@
type CameraController struct{}
type CameraVo struct {
   Id        string       `json:"id"`
   Name      string       `json:"name"`
   Type      int          `json:"type" `
   Addr      string       `json:"addr"`
   Areaid    uint         `json:"areaid"`
   Longitude float64      `json:"longitude"`
   Latitude  float64      `json:"latitude"`
   Rtsp      string       `json:"rtsp"`
   Ip        string       `json:"ip"`
   Port      int          `json:"port"`
   Username  string       `json:"username"`
   Password  string       `json:"password"`
   Brand     string       `json:"brand"`
   Reserved  string       `json:"reserved"`
   Id        string  `json:"id"`
   Name      string  `json:"name"`
   Type      int     `json:"type" `
   Addr      string  `json:"addr"`
   Areaid    uint    `json:"areaid"`
   Longitude float64 `json:"longitude"`
   Latitude  float64 `json:"latitude"`
   Rtsp      string  `json:"rtsp"`
   Ip        string  `json:"ip"`
   Port      int     `json:"port"`
   Username  string  `json:"username"`
   Password  string  `json:"password"`
   Brand     string  `json:"brand"`
   Reserved  string  `json:"reserved"`
   IsRunning   bool   `json:"is_running"`    //是否正在解码
   RunEnable   bool   `json:"run_enable"`    //控制实时处理或轮询处理的开关
   RunType     int    `json:"run_type"`      //处理类型:0:轮询,1:实时
   RunServerId string `json:"run_server_id"` //当前正在处理的分析服务器id
}
// @Summary 添加摄像机
@@ -49,7 +55,7 @@
      return
   }
   cam.Id = util.PseudoUuid()
   paramBody :=util.Struct2Map(cam)
   paramBody := util.Struct2Map(cam)
   if api.CameraAdd(paramBody) {
      util.ResponseFormat(c, code.Success, cam)
      return
@@ -76,7 +82,7 @@
      util.ResponseFormat(c, code.RequestParamError, "参数错误")
      return
   }
   paramBody :=util.Struct2Map(cam)
   paramBody := util.Struct2Map(cam)
   if api.CameraAdd(paramBody) {
      util.ResponseFormat(c, code.Success, cam)
      return
@@ -97,11 +103,11 @@
   var api dbapi.CameraApi
   cid := c.Param("cid")
   if api.CameraDelete(cid){
   if api.CameraDelete(cid) {
      util.ResponseFormat(c, code.Success, "删除成功")
      return
   }
   util.ResponseFormat(c, code.ComError,"删除失败")
   util.ResponseFormat(c, code.ComError, "删除失败")
}
// @Summary 显示摄像机
@@ -115,9 +121,9 @@
func (ac CameraController) CameraSel(c *gin.Context) {
   var api dbapi.CameraApi
   cid := c.Param("cid")
   camera,err := api.GetCameraById(cid)
   if err !=nil {
      util.ResponseFormat(c,code.ComError,"查询失败")
   camera, err := api.GetCameraById(cid)
   if err != nil {
      util.ResponseFormat(c, code.ComError, "查询失败")
      return
   }
@@ -187,3 +193,92 @@
   fmt.Println(cameraId)
   fmt.Println(areaId)
}
// @Summary 获取运行类型获取摄像机列表
// @Description 获取运行类型获取摄像机列表
// @Produce json
// @Tags camera
// @Param runType query int true "0:查轮询,1:查实时"
// @Param cameraName query string false "查询条件"
// @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/getCamerasByRunType [get]
func (cc CameraController) GetCamerasByRunType(c *gin.Context) {
   runTypeStr := c.Query("runType")
   cameraName := c.Query("cameraName")
   fmt.Println("runType:", runTypeStr)
   fmt.Println("cameraName:", cameraName)
   runType, err := strconv.Atoi(runTypeStr)
   if err != nil || (runType != 0 && runType != 1) {
      util.ResponseFormat(c, code.RequestParamError, "参数有误")
      return
   }
   var api dbapi.CameraApi
   b, list := api.GetCamerasByRunType(runType, cameraName)
   if b {
      dataBytes, _ := json.Marshal(list)
      var cams []CameraVo
      json.Unmarshal(dataBytes, &cams)
      util.ResponseFormat(c, code.Success, cams)
   } else {
      util.ResponseFormat(c, code.ComError, err)
   }
}
// @Summary 切换摄像机运行实时或轮询的开关
// @Description 切换摄像机运行实时或轮询的开关
// @Produce json
// @Tags camera
// @Param cameraId query string true "摄像机id"
// @Param runEnable query bool true "开启:true,关闭:false"
// @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/updateRunEnable [post]
func (cc CameraController) UpdateRunEnable(c *gin.Context) {
   cameraId := c.PostForm("cameraId")
   enableStr := c.PostForm("runEnable")
   runEnable, err := strconv.ParseBool(enableStr)
   if cameraId == "" || err != nil {
      util.ResponseFormat(c, code.RequestParamError, "参数有误")
      return
   }
   var api dbapi.CameraApi
   b, data := api.UpdateRunEnable(cameraId, runEnable)
   fmt.Println("data:", data)
   if b {
      util.ResponseFormat(c, code.Success, data)
   } else {
      util.ResponseFormat(c, code.ComError, "更新失败")
   }
}
type CameraChangeRunVo struct {
   CameraIds []string `json:"camera_ids"`
   RunType   int      `json:"run_type"`
}
// @Summary 摄像机轮询和实时状态切换
// @Description 摄像机轮询和实时状态切换
// @Produce json
// @Tags camera
// @Param changeRunBody body controllers.CameraChangeRunVo true "参数结构体,0:实时切轮询,1:轮询切实时"
// @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/changeRunType [post]
func (cc CameraController) ChangeRunType(c *gin.Context) {
   var ccrVo CameraChangeRunVo
   if err := c.BindJSON(&ccrVo); err != nil {
      util.ResponseFormat(c, code.RequestParamError, "参数有误")
      return
   }
   paramBody := util.Struct2Map(ccrVo)
   var api dbapi.CameraApi
   b, data := api.ChangeRunType(paramBody)
   if b {
      util.ResponseFormat(c, code.Success, data)
   } else {
      util.ResponseFormat(c, code.ComError, "更新失败")
   }
}