From f4e8f206a6760bdc31734dfcb1c65916b5b76311 Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期四, 22 八月 2019 12:05:58 +0800 Subject: [PATCH] add cluster --- controllers/camera.go | 165 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 142 insertions(+), 23 deletions(-) diff --git a/controllers/camera.go b/controllers/camera.go index 7d73101..b800bb7 100644 --- a/controllers/camera.go +++ b/controllers/camera.go @@ -3,31 +3,39 @@ import ( "encoding/json" "fmt" + "strconv" + "webserver/extend/logger" "github.com/gin-gonic/gin" "basic.com/dbapi.git" "webserver/extend/code" "webserver/extend/util" + "webserver/service" ) 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 string `json:"areaid"` + Longitude float32 `json:"longitude"` + Latitude float32 `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"` //鏄惁姝e湪瑙g爜 + RunEnable bool `json:"run_enable"` //鎺у埗瀹炴椂澶勭悊鎴栬疆璇㈠鐞嗙殑寮�鍏� + RunType int `json:"run_type"` //澶勭悊绫诲瀷锛�0锛氳疆璇紝1锛氬疄鏃� + RunServerId string `json:"run_server_id"` //褰撳墠姝e湪澶勭悊鐨勫垎鏋愭湇鍔″櫒id } // @Summary 娣诲姞鎽勫儚鏈� @@ -49,7 +57,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,8 +84,8 @@ util.ResponseFormat(c, code.RequestParamError, "鍙傛暟閿欒") return } - paramBody :=util.Struct2Map(cam) - if api.CameraAdd(paramBody) { + paramBody := util.Struct2Map(cam) + if api.CameraUpdate(paramBody) { util.ResponseFormat(c, code.Success, cam) return } @@ -96,12 +104,12 @@ func (ac CameraController) CameraDel(c *gin.Context) { var api dbapi.CameraApi cid := c.Param("cid") - - if api.CameraDelete(cid){ + logger.Debug("CameraDel.cid:",cid) + if api.CameraDelete(cid) { util.ResponseFormat(c, code.Success, "鍒犻櫎鎴愬姛") return } - util.ResponseFormat(c, code.ComError,"鍒犻櫎澶辫触") + util.ResponseFormat(c, code.ComError, "鍒犻櫎澶辫触") } // @Summary 鏄剧ず鎽勫儚鏈� @@ -115,9 +123,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 +195,114 @@ 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 "鎽勫儚鏈篿d" +// @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, "鏇存柊澶辫触") + } +} + +// @Summary 鏇存柊搴曞浘 +// @Description 鍒锋柊搴曞浘 +// @Produce json +// @Tags camera +// @Param cid path string true "鎽勫儚鏈篿d" +// @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/updateSnapshotUrl/{cid} [get] +func(cc CameraController) UpdateSnapshotUrl(c *gin.Context){ + cid := c.Param("cid") + //filename, err := service.UpdateSnapshotUrl(cid) + filename, err := service.UpdateCapture(cid) + if err != nil { + logger.Debug("UpdateSnapshotUrl.err:",err) + util.ResponseFormat(c, code.ComError, "鏇存柊澶辫触") + return + } + util.ResponseFormat(c, code.Success, filename) +} + +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, "鏇存柊澶辫触") + } +} + + -- Gitblit v1.8.0