zhangmeng
2024-01-19 01dfd9dc8de7b19f9dfa4284722e01bbd5837801
gb28181Api.go
@@ -2,30 +2,31 @@
import (
   "basic.com/pubsub/protomsg.git"
   json "github.com/json-iterator/go"
   jsoniter "github.com/json-iterator/go"
   "strconv"
)
type Gb28181Api struct{
type Gb28181Api struct {
}
//国标配置显示
func (api Gb28181Api) Show() (flag bool,gbConfig protomsg.Gb28181Config) {
func (api Gb28181Api) Show() (flag bool, gbConfig protomsg.Gb28181Config) {
   netNode := getNetNode(Topic_Gb28181_Service)
   url := DATA_URL_PREFIX + "/gb28181/configShow"
   client := NewClient(WithNodes(netNode))
   respBody, err := client.DoGetRequest(url, nil, nil)
   if err !=nil {
      return false,gbConfig
   if err != nil {
      return false, gbConfig
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(respBody, &res); err != nil {
      return false,gbConfig
      return false, gbConfig
   }
   if res.Success {
      if bts,err := json.Marshal(res.Data);err ==nil {
         if err = json.Unmarshal(bts, &gbConfig);err ==nil {
      if bts, err := json.Marshal(res.Data); err == nil {
         var json = jsoniter.ConfigCompatibleWithStandardLibrary
         if err = json.Unmarshal(bts, &gbConfig); err == nil {
            return true, gbConfig
         }
      }
@@ -43,42 +44,45 @@
      return flag
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(respBody, &res); err != nil {
      return flag
   }
   return res.Success
}
func (api Gb28181Api) FindAreaByParentId(parentId string) (bool,interface{}) {
func (api Gb28181Api) FindAreaByParentId(parentId string) (bool, interface{}) {
   url := DATA_URL_PREFIX + "/gb28181/findAreaByParentId"
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service,url))
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
   client := NewClient(WithNodes(netNode))
   paramMap := make(map[string]string, 0)
   paramMap["parentId"] = parentId
   respBody, err := client.DoGetRequest(url, paramMap, nil)
   if err !=nil {
      return false,nil
   if err != nil {
      return false, nil
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(respBody, &res); err != nil {
      return false,nil
      return false, nil
   }
   return res.Success, res.Data
}
func (api Gb28181Api) NewGbId(code string) (bool,interface{}) {
func (api Gb28181Api) NewGbId(code string) (bool, interface{}) {
   url := DATA_URL_PREFIX + "/gb28181/newGbId"
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service,url))
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
   client := NewClient(WithNodes(netNode))
   paramMap := make(map[string]string, 0)
   paramMap["code"] = code
   respBody, err := client.DoGetRequest(url, paramMap, nil)
   if err !=nil {
      return false,nil
   if err != nil {
      return false, nil
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(respBody, &res); err != nil {
      return false,nil
      return false, nil
   }
   return res.Success, res.Data
}
@@ -88,7 +92,7 @@
//cameraName(摄像机名称)
func (api Gb28181Api) GetGb28181CameraTree(parentId string, searchType string, cameraName string) []TreeMenu {
   url := DATA_URL_PREFIX + "/gb28181/tree"
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service,url))
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
   var result []TreeMenu
   client := NewClient(WithNodes(netNode))
@@ -104,12 +108,13 @@
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(respBody, &res); err != nil {
      return nil
   }
   bytes, _ := json.Marshal(res.Data)
   if err = json.Unmarshal(bytes, &result);err !=nil{
   if err = json.Unmarshal(bytes, &result); err != nil {
      return nil
   }
   return result
@@ -122,13 +127,14 @@
   flag := false
   client := NewClient(WithNodes(netNode))
   paramBody := map[string]interface{}{
      "id":id,
      "id": id,
   }
   respBody, err := client.DoPostRequest(url, CONTENT_TYPE_FORM, paramBody, nil, nil)
   if err != nil {
      return flag
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(respBody, &res); err != nil {
      return flag
   }
@@ -147,6 +153,7 @@
      return flag
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(respBody, &res); err != nil {
      return flag
   }
@@ -155,27 +162,28 @@
}
//获取本节点的所有国标摄像机
func (api Gb28181Api) GetAllCamerasByServer(serverId string,cameraName string) (b bool,cams []protomsg.Camera) {
func (api Gb28181Api) GetAllCamerasByServer(serverId string, cameraName string) (b bool, cams []protomsg.Camera) {
   url := DATA_URL_PREFIX + "/gb28181/getAllCamerasByServer"
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service,url))
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
   client := NewClient(WithNodes(netNode))
   paramQuery := make(map[string]string,0)
   paramQuery := make(map[string]string, 0)
   paramQuery["serverId"] = serverId
   paramQuery["cameraName"] = cameraName
   body, err := client.DoGetRequest(url, paramQuery, nil)
   if err != nil {
      return false,nil
      return false, nil
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(body, &res); err != nil {
      return false,nil
      return false, nil
   }
   dataBytes, _ := json.Marshal(res.Data)
   if err := json.Unmarshal(dataBytes, &cams);err !=nil {
      return false,nil
   if err := json.Unmarshal(dataBytes, &cams); err != nil {
      return false, nil
   }
   return res.Success,cams
   return res.Success, cams
}
//查找地图上的国标摄像机
@@ -183,29 +191,30 @@
   url := DATA_URL_PREFIX + "/gb28181/camera/findOnMap"
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
   client := NewClient(WithNodes(netNode))
   paramBody:= map[string]interface{}{
   paramBody := map[string]interface{}{
      "isOnMap":    isOnMap,
      "floor":      floor,
      "cameraName": cameraName,
   }
   body,err := client.DoPostRequest(url,CONTENT_TYPE_JSON, paramBody,nil,nil)
   body, err := client.DoPostRequest(url, CONTENT_TYPE_JSON, paramBody, nil, nil)
   if err != nil {
      return false,nil
      return false, nil
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(body, &res); err != nil {
      logPrint(err)
      return false,nil
      return false, nil
   }
   if res.Success {
      if bts, e := json.Marshal(res.Data);e == nil {
         if e = json.Unmarshal(bts, &cams);e ==nil {
      if bts, e := json.Marshal(res.Data); e == nil {
         if e = json.Unmarshal(bts, &cams); e == nil {
            return true, cams
         }
      }
   }
   return false,nil
   return false, nil
}
//更新摄像机经纬度以及楼层
@@ -213,18 +222,19 @@
   url := DATA_URL_PREFIX + "/gb28181/camera/updatePos"
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
   client := NewClient(WithNodes(netNode))
   paramBody:= map[string]interface{}{
      "id":    id,
      "floor":      floor,
   paramBody := map[string]interface{}{
      "id":        id,
      "floor":     floor,
      "longitude": longitude,
      "latitude": latitude,
      "latitude":  latitude,
   }
   body,err := client.DoPostRequest(url,CONTENT_TYPE_JSON, paramBody,nil,nil)
   body, err := client.DoPostRequest(url, CONTENT_TYPE_JSON, paramBody, nil, nil)
   if err != nil {
      return false
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(body, &res); err != nil {
      logPrint(err)
      return false
@@ -240,12 +250,13 @@
   client := NewClient(WithNodes(netNode))
   body, err := client.DoGetRequest(url, nil, nil)
   if err != nil {
      return false,nil
      return false, nil
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(body, &res); err != nil {
      return false,nil
      return false, nil
   }
   return res.Success, res.Data
}
@@ -255,17 +266,18 @@
   url := DATA_URL_PREFIX + "/gb28181/camera/coord"
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
   client := NewClient(WithNodes(netNode))
   paramQuery := map[string]string {
   paramQuery := map[string]string{
      "cameraId": cameraId,
   }
   body, err := client.DoGetRequest(url, paramQuery, nil)
   if err != nil {
      return false,nil
      return false, nil
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(body, &res); err != nil {
      return false,nil
      return false, nil
   }
   return res.Success, res.Data
}
@@ -275,12 +287,13 @@
   url := DATA_URL_PREFIX + "/gb28181/camera/updateCoord"
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
   client := NewClient(WithNodes(netNode))
   body,err := client.DoPostRequest(url,CONTENT_TYPE_JSON, paramBody,nil,nil)
   body, err := client.DoPostRequest(url, CONTENT_TYPE_JSON, paramBody, nil, nil)
   if err != nil {
      return false
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(body, &res); err != nil {
      logPrint(err)
      return false
@@ -289,18 +302,17 @@
   return res.Success
}
func (api Gb28181Api) CameraUpdate(paramBody map[string]interface{}) bool {
   url := DATA_URL_PREFIX + "/gb28181/camera/update"
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
   client := NewClient(WithNodes(netNode))
   body, err := client.DoPutRequest(url,CONTENT_TYPE_JSON,paramBody,nil)
   body, err := client.DoPutRequest(url, CONTENT_TYPE_JSON, paramBody, nil)
   if err != nil {
      return false
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(body, &res); err != nil {
      return false
   }
@@ -311,15 +323,16 @@
   url := DATA_URL_PREFIX + "/gb28181/camera/updateSnapshot"
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
   client := NewClient(WithNodes(netNode))
   paramBody :=make(map[string]interface{},0)
   paramBody := make(map[string]interface{}, 0)
   paramBody["snapshot"] = snapshot
   paramBody["cameraId"] = cameraId
   body,err := client.DoPostRequest(url,CONTENT_TYPE_FORM, paramBody,nil,nil)
   body, err := client.DoPostRequest(url, CONTENT_TYPE_FORM, paramBody, nil, nil)
   if err != nil {
      return false
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(body, &res); err != nil {
      logPrint(err)
      return false
@@ -333,7 +346,7 @@
   url := DATA_URL_PREFIX + "/gb28181/camera/show"
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
   client := NewClient(WithNodes(netNode))
   paramQuery := map[string]string {
   paramQuery := map[string]string{
      "cid": cameraId,
   }
   body, err := client.DoGetRequest(url, paramQuery, nil)
@@ -342,8 +355,9 @@
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(body, &res); err != nil {
      return camera,err
      return camera, err
   }
   bytes, _ := json.Marshal(res.Data)
@@ -356,17 +370,18 @@
   url := DATA_URL_PREFIX + "/gb28181/camera/updateCameraArea"
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
   client := NewClient(WithNodes(netNode))
   paramBody := map[string]interface{} {
   paramBody := map[string]interface{}{
      "cameraId": cameraId,
      "areaId": areaId,
      "areaId":   areaId,
   }
   body, err := client.DoPostRequest(url, CONTENT_TYPE_FORM, paramBody, nil,nil)
   if err !=nil {
   body, err := client.DoPostRequest(url, CONTENT_TYPE_FORM, paramBody, nil, nil)
   if err != nil {
      return false
   }
   var res Result
   if err = json.Unmarshal(body, &res);err != nil {
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(body, &res); err != nil {
      return false
   }
@@ -377,11 +392,11 @@
   url := DATA_URL_PREFIX + "/gb28181/camera/showAll"
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
   client := NewClient(WithNodes(netNode))
   paramQuery := map[string]string {
   paramQuery := map[string]string{
      "cameraName": cameraName,
      "runType": runType,
      "cameraId": cameraId,
      "areaId": areaId,
      "runType":    runType,
      "cameraId":   cameraId,
      "areaId":     areaId,
   }
   body, err := client.DoGetRequest(url, paramQuery, nil)
@@ -390,6 +405,7 @@
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(body, &res); err != nil {
      logPrint(err)
      return nil
@@ -403,129 +419,135 @@
//根据运行类型获取摄像机列表
//runType(0:获取轮询列表,1:获取实时列表)
func (api Gb28181Api) GetCamerasByRunType(runType int,cameraName string)(flag bool,cameras []protomsg.Camera){
func (api Gb28181Api) GetCamerasByRunType(runType int, cameraName string) (flag bool, cameras []protomsg.Camera) {
   url := DATA_URL_PREFIX + "/gb28181/camera/getCamerasByRunType"
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
   client := NewClient(WithNodes(netNode))
   paramQuery := make(map[string]string,2)
   paramQuery["runType"]=strconv.Itoa(runType)
   paramQuery := make(map[string]string, 2)
   paramQuery["runType"] = strconv.Itoa(runType)
   paramQuery["cameraName"] = cameraName
   body, err := client.DoGetRequest(url, paramQuery, nil)
   if err != nil {
      return false,nil
      return false, nil
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(body, &res); err != nil {
      return false,nil
      return false, nil
   }
   b, err := json.Marshal(res.Data)
   if err !=nil {
   if err != nil {
      logPrint("unmarshal GetCamerasByRunType.result err")
      return false,nil
      return false, nil
   }
   if err = json.Unmarshal(b, &cameras);err !=nil {
      return false,nil
   if err = json.Unmarshal(b, &cameras); err != nil {
      return false, nil
   } else {
      return true,cameras
      return true, cameras
   }
}
func (api Gb28181Api) UpdateRunEnable(cameraId string,runEnable bool) (bool,interface{}){
func (api Gb28181Api) UpdateRunEnable(cameraId string, runEnable bool) (bool, interface{}) {
   url := DATA_URL_PREFIX + "/gb28181/camera/updateRunEnable"
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
   client := NewClient(WithNodes(netNode))
   paramBody :=make(map[string]interface{},0)
   paramBody := make(map[string]interface{}, 0)
   paramBody["cameraId"] = cameraId
   paramBody["runEnable"] = runEnable
   body,err := client.DoPostRequest(url,CONTENT_TYPE_FORM, paramBody,nil,nil)
   body, err := client.DoPostRequest(url, CONTENT_TYPE_FORM, paramBody, nil, nil)
   if err != nil {
      return false,nil
      return false, nil
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(body, &res); err != nil {
      logPrint(err)
      return false,nil
      return false, nil
   }
   return res.Success,res.Data
   return res.Success, res.Data
}
func (api Gb28181Api) UpdateIsRunningState(cameraId string,isRunning bool) (bool,interface{}){
func (api Gb28181Api) UpdateIsRunningState(cameraId string, isRunning bool) (bool, interface{}) {
   url := DATA_URL_PREFIX + "/gb28181/camera/updateIsRunningState"
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
   client := NewClient(WithNodes(netNode))
   paramBody :=make(map[string]interface{},0)
   paramBody := make(map[string]interface{}, 0)
   paramBody["cameraId"] = cameraId
   paramBody["isRunning"] = isRunning
   body,err := client.DoPostRequest(url,CONTENT_TYPE_FORM, paramBody,nil,nil)
   body, err := client.DoPostRequest(url, CONTENT_TYPE_FORM, paramBody, nil, nil)
   if err != nil {
      return false,nil
      return false, nil
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(body, &res); err != nil {
      logPrint(err)
      return false,nil
      return false, nil
   }
   return res.Success,res.Data
   return res.Success, res.Data
}
func (api Gb28181Api) UpdateIsRunningAll(cameraIds []string) (bool,interface{}){
func (api Gb28181Api) UpdateIsRunningAll(cameraIds []string) (bool, interface{}) {
   url := DATA_URL_PREFIX + "/gb28181/camera/updateIsRunningAll"
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
   client := NewClient(WithNodes(netNode))
   paramBody :=make(map[string]interface{},0)
   paramBody := make(map[string]interface{}, 0)
   paramBody["cameraIds"] = cameraIds
   body,err := client.DoPostRequest(url,CONTENT_TYPE_JSON, paramBody,nil,nil)
   body, err := client.DoPostRequest(url, CONTENT_TYPE_JSON, paramBody, nil, nil)
   if err != nil {
      return false,nil
      return false, nil
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(body, &res); err != nil {
      logPrint(err)
      return false,nil
      return false, nil
   }
   return res.Success,res.Data
   return res.Success, res.Data
}
//批量切换摄像机轮询或实时状态
func (api Gb28181Api) ChangeRunType(paramBody map[string]interface{}) (bool,interface{}){
func (api Gb28181Api) ChangeRunType(paramBody map[string]interface{}) (bool, interface{}) {
   url := DATA_URL_PREFIX + "/gb28181/camera/changeRunType"
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
   client := NewClient(WithNodes(netNode))
   body,err := client.DoPostRequest(url,CONTENT_TYPE_JSON, paramBody,nil,nil)
   body, err := client.DoPostRequest(url, CONTENT_TYPE_JSON, paramBody, nil, nil)
   if err != nil {
      return false,nil
      return false, nil
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(body, &res); err != nil {
      logPrint(err)
      return false,nil
      return false, nil
   }
   return res.Success,res.Data
   return res.Success, res.Data
}
func (api Gb28181Api) SaveNotExistOrUpdate(paramBody map[string]interface{}) bool {
   url := DATA_URL_PREFIX + "/gb28181/saveNotExistOrUpdate"
   netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
   client := NewClient(WithNodes(netNode))
   body,err := client.DoPostRequest(url,CONTENT_TYPE_JSON, paramBody,nil,nil)
   body, err := client.DoPostRequest(url, CONTENT_TYPE_JSON, paramBody, nil, nil)
   if err != nil {
      return false
   }
   var res Result
   var json = jsoniter.ConfigCompatibleWithStandardLibrary
   if err = json.Unmarshal(body, &res); err != nil {
      logPrint(err)
      return false
   }
   return res.Success
}
}