From 9d88c7c467f8d93af4aab9ba0b6d6c01c2ffc546 Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期四, 20 八月 2020 20:35:30 +0800
Subject: [PATCH] add get buckets contrl
---
controllers/camera.go | 235 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 208 insertions(+), 27 deletions(-)
diff --git a/controllers/camera.go b/controllers/camera.go
index c0272b9..fc7a82c 100644
--- a/controllers/camera.go
+++ b/controllers/camera.go
@@ -1,10 +1,13 @@
package controllers
import (
+ "basic.com/pubsub/protomsg.git"
"encoding/json"
"fmt"
"strconv"
- "webserver/extend/logger"
+ "basic.com/valib/logger.git"
+ "strings"
+ "webserver/cache"
"github.com/gin-gonic/gin"
@@ -19,11 +22,12 @@
type CameraVo struct {
Id string `json:"id"`
Name string `json:"name"`
+ Alias string `json:"alias"` //鎽勫儚鏈虹殑鍒悕
Type int `json:"type" `
Addr string `json:"addr"`
- Areaid string `json:"areaid"`
- Longitude float64 `json:"longitude"`
- Latitude float64 `json:"latitude"`
+ Areaid string `json:"areaid"`
+ Longitude float32 `json:"longitude"`
+ Latitude float32 `json:"latitude"`
Rtsp string `json:"rtsp"`
Ip string `json:"ip"`
Port int `json:"port"`
@@ -36,10 +40,35 @@
RunEnable bool `json:"run_enable"` //鎺у埗瀹炴椂澶勭悊鎴栬疆璇㈠鐞嗙殑寮�鍏�
RunType int `json:"run_type"` //澶勭悊绫诲瀷锛�0锛氳疆璇紝1锛氬疄鏃�
RunServerId string `json:"run_server_id"` //褰撳墠姝e湪澶勭悊鐨勫垎鏋愭湇鍔″櫒id
+
+ ResolutionWidth int `json:"resolution_width"`//鍒嗚鲸鐜囧
+ ResolutionHeight int `json:"resolution_height"`//鍒嗚鲸鐜囬珮
+
+ Sensors []SensorVo `json:"sensors"` //浼犳劅鍣ㄥ垪琛�
+
+ VoiceEnable bool `json:"voiceEnable"`
+ VoiceId string `json:"voiceId"`
+}
+
+type Resolution struct {
+ Width int `json:"width"`
+ Height int `json:"height"`
+}
+
+type SensorVo struct {
+ Id string `json:"id"`
+ Type string `json:"type"`
+ Ip string `json:"ip"`
+ Port int `json:"port"`
+ Username string `json:"username"`
+ Password string `json:"password"`
+ Threshold int `json:"threshold"`
+ Enable bool `json:"enable"`
}
// @Summary 娣诲姞鎽勫儚鏈�
// @Description "浼犲叆鍖哄煙鐨刬d锛坅reaid锛夊拰鎽勫儚鏈哄悕瀛�(name) 蹇呴』锛� 鍏朵粬鍙傛暟鍙互鍦ㄦ憚鍍忔満閰嶇疆鐐瑰嚮淇濆瓨杩涜娣诲姞"
+// @Security ApiKeyAuth
// @Accept json
// @Produce json
// @Tags camera
@@ -47,7 +76,7 @@
// @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) {
+func (cc CameraController) CameraAdd(c *gin.Context) {
var cam CameraVo
var api dbapi.CameraApi
@@ -56,10 +85,10 @@
util.ResponseFormat(c, code.RequestParamError, "鍙傛暟閿欒")
return
}
- cam.Id = util.PseudoUuid()
paramBody := util.Struct2Map(cam)
- if api.CameraAdd(paramBody) {
- util.ResponseFormat(c, code.Success, cam)
+ b, data := api.CameraAdd(paramBody)
+ if b {
+ util.ResponseFormat(c, code.Success, data)
return
}
util.ResponseFormat(c, code.ComError, err)
@@ -68,6 +97,7 @@
// @Summary 鏇存柊鎽勫儚鏈�
// @Description "鐢ㄤ簬鏇存柊鎽勫儚鏈烘搷浣�"
+// @Security ApiKeyAuth
// @Accept json
// @Produce json
// @Tags camera
@@ -75,15 +105,17 @@
// @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) {
+func (cc CameraController) CameraUpdate(c *gin.Context) {
var cam CameraVo
var api dbapi.CameraApi
err := c.BindJSON(&cam)
if err != nil {
+ logger.Debug("err:",err)
util.ResponseFormat(c, code.RequestParamError, "鍙傛暟閿欒")
return
}
+ logger.Debug("camera sensors:", cam.Sensors)
paramBody := util.Struct2Map(cam)
if api.CameraUpdate(paramBody) {
util.ResponseFormat(c, code.Success, cam)
@@ -95,13 +127,14 @@
// @Summary "鍒犻櫎鎽勫儚鏈�"
// @Description "鏍规嵁鎽勫儚鏈篿d鍒犻櫎鎽勫儚鏈�"
+// @Security ApiKeyAuth
// @Produce json
// @Tags camera
// @Param cid path string true "鎽勫儚鏈篿d 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) {
+func (cc CameraController) CameraDel(c *gin.Context) {
var api dbapi.CameraApi
cid := c.Param("cid")
logger.Debug("CameraDel.cid:",cid)
@@ -114,13 +147,14 @@
// @Summary 鏄剧ず鎽勫儚鏈�
// @Description "鏄剧ず鎽勫儚鏈�"
+// @Security ApiKeyAuth
// @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:"閿欒淇℃伅鍐呭"}"
+// @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) {
+func (cc CameraController) CameraSel(c *gin.Context) {
var api dbapi.CameraApi
cid := c.Param("cid")
camera, err := api.GetCameraById(cid)
@@ -128,8 +162,53 @@
util.ResponseFormat(c, code.ComError, "鏌ヨ澶辫触")
return
}
-
- util.ResponseFormat(c, code.Success, camera)
+ //2019-11-02鏂板闇�姹傦紝鏄剧ず姣忎釜鎽勫儚鏈虹殑澶勭悊鏈嶅姟鍣ㄤ俊鎭�,褰掑睘鐨勮妭鐐规湇鍔″櫒鍚嶇О
+ m := util.Struct2Map(camera)
+ m["runServerName"] = ""
+ m["voiceEnable"] = camera.VoiceEnable
+ m["voiceId"] = camera.VoiceId
+ m["resolution_width"] = camera.ResolutionWidth
+ m["resolution_height"] = camera.ResolutionHeight
+ //鎽勫儚鏈哄垎杈ㄧ巼
+ dRe0 := Resolution{
+ Width: 0,
+ Height: 0,
+ }
+ dRe1 := Resolution{
+ Width: 1920,
+ Height: 1080,
+ }
+ dRe2 := Resolution{
+ Width: 2688,
+ Height: 1520,
+ }
+ m["resolutions"] = []Resolution{ dRe0, dRe1, dRe2 }
+ if camera.RunServerId !="" {
+ localConf, e := cache.GetServerInfo()
+ if e ==nil {
+ if camera.RunServerId == localConf.ServerId {//褰掑睘鏈彴鏈嶅姟鍣�
+ m["runServerName"] = localConf.ServerName
+ } else {//灞炰簬鍏朵粬鏈嶅姟鍣�
+ var clusterApi dbapi.ClusterApi
+ b, data := clusterApi.FindCluster()
+ if b && data !=nil {
+ cb, _ := json.Marshal(data)
+ var clu ClusterDb
+ if err := json.Unmarshal(cb, &clu);err ==nil {
+ if len(clu.Nodes) >0 {
+ for _,n :=range clu.Nodes {
+ if camera.RunServerId == n.NodeId {
+ m["runServerName"] = n.NodeName
+ break
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ util.ResponseFormat(c, code.Success, m)
}
@@ -164,22 +243,33 @@
return json.Marshal(test)
}
+// @Security ApiKeyAuth
// @Summary 灏嗘憚鍍忔満鎸傚埌鎸囧畾鐨勭洰褰曟爲涓�
// @Description 灏嗘憚鍍忔満鎸傚埌鎸囧畾鐨勭洰褰曟爲涓�
+// @Accept x-www-form-urlencoded
// @Produce json
// @Tags camera
-// @Param cameraId path string true "鎽勫儚鏈篿d"
-// @Param areaId path string true "鐩綍鍖哄煙id"
+// @Param cameraId formData string true "鎽勫儚鏈篿d"
+// @Param areaId 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/camera/cameraAreaAdd [get]
-func (ac CameraController) CameraAreaAdd(c *gin.Context) {
- cameraId := c.Param("cameraId")
- areaId := c.Param("areaId")
- fmt.Println(cameraId)
- fmt.Println(areaId)
+// @Router /data/api-v/camera/updateCameraArea [post]
+func (cc CameraController) UpdateCameraArea(c *gin.Context) {
+ cameraId := c.PostForm("cameraId")
+ areaId := c.PostForm("areaId")
+ if cameraId == "" || areaId == "" {
+ util.ResponseFormat(c, code.RequestParamError, "鍙傛暟鏈夎")
+ return
+ }
+ var api dbapi.CameraApi
+ if api.UpdateCameraArea(cameraId, areaId) {
+ util.ResponseFormat(c,code.Success,"鏇存柊鎴愬姛")
+ } else {
+ util.ResponseFormat(c,code.ComError,"")
+ }
}
+// @Security ApiKeyAuth
// @Summary 鍒犻櫎鏌愪竴涓洰褰曟爲涓嬬殑鎸囧畾鎽勫儚鏈�
// @Description 鍒犻櫎鏌愪竴涓洰褰曟爲涓嬬殑鎸囧畾鎽勫儚鏈�
// @Produce json
@@ -189,13 +279,40 @@
// @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) {
+func (cc CameraController) CameraAreaDel(c *gin.Context) {
cameraId := c.Param("cameraId")
areaId := c.Param("areaId")
fmt.Println(cameraId)
fmt.Println(areaId)
}
+// @Security ApiKeyAuth
+// @Summary 鏍规嵁server鑾峰彇鎵�鏈夋憚鍍忔満鍒楄〃鍙婁俊鎭�
+// @Description 鏍规嵁server鑾峰彇鎵�鏈夋憚鍍忔満鍒楄〃鍙婁俊鎭�
+// @Produce json
+// @Tags camera
+// @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/getAllCamerasByServer [get]
+func (cc CameraController) GetAllCamerasByServer(c *gin.Context) {
+ localConf, err2 := cache.GetServerInfo()
+ if err2 !=nil || localConf.ServerId == "" {
+ logger.Debug("localConfig is wrong!!!")
+ util.ResponseFormat(c,code.ComError,"鏈嶅姟鍣ㄦ湰鏈烘湭閰嶇疆serverId")
+ return
+ }
+ var api dbapi.CameraApi
+ cameraName := c.Query("cameraName")
+ b,d := api.GetAllCamerasByServer(localConf.ServerId, cameraName)
+ if b {
+ util.ResponseFormat(c,code.Success, d)
+ } else {
+ util.ResponseFormat(c,code.ComError, "")
+ }
+}
+
+// @Security ApiKeyAuth
// @Summary 鑾峰彇杩愯绫诲瀷鑾峰彇鎽勫儚鏈哄垪琛�
// @Description 鑾峰彇杩愯绫诲瀷鑾峰彇鎽勫儚鏈哄垪琛�
// @Produce json
@@ -228,12 +345,14 @@
}
}
+// @Security ApiKeyAuth
// @Summary 鍒囨崲鎽勫儚鏈鸿繍琛屽疄鏃舵垨杞鐨勫紑鍏�
// @Description 鍒囨崲鎽勫儚鏈鸿繍琛屽疄鏃舵垨杞鐨勫紑鍏�
+// @Accept x-www-form-urlencoded
// @Produce json
// @Tags camera
-// @Param cameraId query string true "鎽勫儚鏈篿d"
-// @Param runEnable query bool true "寮�鍚細true锛屽叧闂細false"
+// @Param cameraId formData string true "鎽勫儚鏈篿d"
+// @Param runEnable formData 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]
@@ -256,6 +375,7 @@
}
}
+// @Security ApiKeyAuth
// @Summary 鏇存柊搴曞浘
// @Description 鍒锋柊搴曞浘
// @Produce json
@@ -267,12 +387,42 @@
func(cc CameraController) UpdateSnapshotUrl(c *gin.Context){
cid := c.Param("cid")
//filename, err := service.UpdateSnapshotUrl(cid)
+ if cid == "" {
+ util.ResponseFormat(c, code.RequestParamError, "鍙傛暟鏈夎")
+ return
+ }
+ if strings.HasPrefix(cid, File_Video_Id_Pre) || strings.HasPrefix(cid, File_Img_Id_Pre) || strings.HasPrefix(cid, File_Audio_Id_Pre) {
+ var fileApi dbapi.FileAnalysisApi
+ b, d := fileApi.Show(cid)
+ if b {
+ var file protomsg.FileAnalysis
+ bytes, _ := json.Marshal(d)
+ err := json.Unmarshal(bytes, &file)
+ if err == nil {
+ util.ResponseFormat(c, code.Success, map[string]string{
+ "cameraId": cid,
+ "snapshotUrl": file.SnapshotUrl,
+ })
+ return
+ } else {
+ util.ResponseFormat(c, code.ComError, "鏇存柊澶辫触")
+ return
+ }
+ } else {
+ util.ResponseFormat(c, code.ComError, "鏇存柊澶辫触")
+ return
+ }
+ }
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)
+ util.ResponseFormat(c, code.Success, map[string]string{
+ "cameraId": cid,
+ "snapshotUrl": filename,
+ })
}
type CameraChangeRunVo struct {
@@ -280,6 +430,7 @@
RunType int `json:"run_type"`
}
+// @Security ApiKeyAuth
// @Summary 鎽勫儚鏈鸿疆璇㈠拰瀹炴椂鐘舵�佸垏鎹�
// @Description 鎽勫儚鏈鸿疆璇㈠拰瀹炴椂鐘舵�佸垏鎹�
// @Produce json
@@ -304,4 +455,34 @@
}
}
+// @Security ApiKeyAuth
+// @Summary 缁熻瀹炴椂鍜岃疆璇㈢殑杩愯璺暟鎯呭喌
+// @Description 缁熻瀹炴椂鍜岃疆璇㈢殑杩愯璺暟鎯呭喌
+// @Produce json
+// @Tags camera
+// @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/statisticRunInfo [get]
+func (cc CameraController) StatisticRunInfo(c *gin.Context) {
+ var api dbapi.CameraApi
+ b, d := api.StatisticRunInfo()
+ if b {
+ util.ResponseFormat(c,code.Success,d)
+ } else {
+ util.ResponseFormat(c,code.ComError,"")
+ }
+}
+/*
+// @Security ApiKeyAuth
+// @Summary 鑾峰彇鎽勫儚鏈哄垎杈ㄧ巼
+// @Description 鑾峰彇鍒嗚鲸鐜�
+// @Produce json
+// @Tags camera
+// @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/resolution/{cid} [get]
+func (cc CameraController) Resolution(c *gin.Context) {
+
+}
+*/
--
Gitblit v1.8.0