package controllers import ( "encoding/json" "fmt" "github.com/gin-gonic/gin" "basic.com/dbapi.git" "webserver/extend/code" "webserver/extend/util" ) 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"` } // @Summary 添加摄像机 // @Description "传入区域的id(areaid)和摄像机名字(name) 必须, 其他参数可以在摄像机配置点击保存进行添加" // @Accept json // @Produce json // @Tags camera // @Param cameraStruct body controllers.CameraVo false "struct of camera;the areaid of area's id and name of camera;must need" // @Success 200 {string} json "{"code":200, success:true, msg:"请求处理成功", data:"添加后的摄像机信息"}" // @Failure 500 {string} json "{"code":500, success:false msg:"null ",data:"错误信息内容"}" // @Router /data/api-v/camera/add [post] func (ac CameraController) CameraAdd(c *gin.Context) { var cam CameraVo var api dbapi.CameraApi err := c.BindJSON(&cam) if err != nil { util.ResponseFormat(c, code.RequestParamError, "参数错误") return } cam.Id = util.PseudoUuid() paramBody :=util.Struct2Map(cam) if api.CameraAdd(paramBody) { util.ResponseFormat(c, code.Success, cam) return } util.ResponseFormat(c, code.ComError, err) } // @Summary 更新摄像机 // @Description "用于更新摄像机操作" // @Accept json // @Produce json // @Tags camera // @Param cam body controllers.CameraVo true "id:摄像机id default:cid0 (string), areaid:摄像机关联区域id default:1 (int), name:摄像机名字 default:Testname(string) 必填; 其他参数可配 " // @Success 200 {string} json "{"code":200, success:true, msg:"请求处理成功", data:"修改后的摄像机信息"}" // @Failure 500 {string} json "{"code":500, success:false msg:"null",data:"错误信息内容"}" // @Router /data/api-v/camera/update [put] func (ac CameraController) CameraUpdate(c *gin.Context) { var cam CameraVo var api dbapi.CameraApi err := c.BindJSON(&cam) if err != nil { util.ResponseFormat(c, code.RequestParamError, "参数错误") return } paramBody :=util.Struct2Map(cam) if api.CameraAdd(paramBody) { util.ResponseFormat(c, code.Success, cam) return } util.ResponseFormat(c, code.ComError, err) } // @Summary "删除摄像机" // @Description "根据摄像机id删除摄像机" // @Produce json // @Tags camera // @Param cid path string true "摄像机id example: cid0" // @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/del/{cid} [delete] func (ac CameraController) CameraDel(c *gin.Context) { var api dbapi.CameraApi cid := c.Param("cid") if api.CameraDelete(cid){ util.ResponseFormat(c, code.Success, "删除成功") return } util.ResponseFormat(c, code.ComError,"删除失败") } // @Summary 显示摄像机 // @Description "显示摄像机" // @Produce json // @Tags camera // @Param cid 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/show/{cid} [get] 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,"查询失败") return } util.ResponseFormat(c, code.Success, camera) } type camerSdkStruct struct { Sdkid string `json:"sdkid"` Sdkname string `json:"sdkname"` Sdkargs string `json:"sdkargs"` } type CamerTask struct { Taskid string `json:"taskid"` Taskname string `json:"taskname"` } type Sdks []camerSdkStruct type ctpstruct struct { CamerTask Sdks `json:",omitempty"` } type Ctp map[CamerTask][]camerSdkStruct func (cam Ctp) MarshalJSON() ([]byte, error) { var test []ctpstruct var temp ctpstruct for key, value := range cam { temp.CamerTask = key temp.Sdks = value test = append(test, temp) } return json.Marshal(test) } // @Summary 将摄像机挂到指定的目录树下 // @Description 将摄像机挂到指定的目录树下 // @Produce json // @Tags camera // @Param cameraId path string true "摄像机id" // @Param areaId 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/cameraAreaAdd [get] func (ac CameraController) CameraAreaAdd(c *gin.Context) { cameraId := c.Param("cameraId") areaId := c.Param("areaId") fmt.Println(cameraId) fmt.Println(areaId) } // @Summary 删除某一个目录树下的指定摄像机 // @Description 删除某一个目录树下的指定摄像机 // @Produce json // @Tags camera // @Param cameraId path string true "摄像机id" // @Param areaId 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/cameraAreaDel [get] func (ac CameraController) CameraAreaDel(c *gin.Context) { cameraId := c.Param("cameraId") areaId := c.Param("areaId") fmt.Println(cameraId) fmt.Println(areaId) }