package bhomedbapi
|
|
import (
|
"basic.com/pubsub/protomsg.git"
|
jsoniter "github.com/json-iterator/go"
|
"strconv"
|
)
|
|
type Gb28181Api struct {
|
}
|
|
//国标配置显示
|
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
|
}
|
var res Result
|
var json = jsoniter.ConfigCompatibleWithStandardLibrary
|
if err = json.Unmarshal(respBody, &res); err != nil {
|
return false, gbConfig
|
}
|
if res.Success {
|
if bts, err := json.Marshal(res.Data); err == nil {
|
var json = jsoniter.ConfigCompatibleWithStandardLibrary
|
if err = json.Unmarshal(bts, &gbConfig); err == nil {
|
return true, gbConfig
|
}
|
}
|
}
|
return false, gbConfig
|
}
|
|
func (api Gb28181Api) Edit(paramBody map[string]interface{}) bool {
|
url := DATA_URL_PREFIX + "/gb28181/configEdit"
|
netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
|
flag := false
|
client := NewClient(WithNodes(netNode))
|
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
|
}
|
return res.Success
|
}
|
|
func (api Gb28181Api) FindAreaByParentId(parentId string) (bool, interface{}) {
|
url := DATA_URL_PREFIX + "/gb28181/findAreaByParentId"
|
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
|
}
|
var res Result
|
var json = jsoniter.ConfigCompatibleWithStandardLibrary
|
if err = json.Unmarshal(respBody, &res); err != nil {
|
return false, nil
|
}
|
return res.Success, res.Data
|
}
|
|
func (api Gb28181Api) NewGbId(code string) (bool, interface{}) {
|
url := DATA_URL_PREFIX + "/gb28181/newGbId"
|
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
|
}
|
var res Result
|
var json = jsoniter.ConfigCompatibleWithStandardLibrary
|
if err = json.Unmarshal(respBody, &res); err != nil {
|
return false, nil
|
}
|
return res.Success, res.Data
|
}
|
|
//parentId 要查寻的目录树的根节点id
|
//searchType(0:全部,1:分析摄像机,2:监控摄像机)
|
//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))
|
var result []TreeMenu
|
|
client := NewClient(WithNodes(netNode))
|
|
params := make(map[string]string, 0)
|
params["parentId"] = parentId
|
params["searchType"] = searchType
|
params["cameraName"] = cameraName
|
|
respBody, err := client.DoGetRequest(url, params, nil)
|
if err != nil {
|
return nil
|
}
|
|
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 {
|
return nil
|
}
|
return result
|
}
|
|
//国标树刷新
|
func (api Gb28181Api) Gb28181TreeRefresh(id string) bool {
|
url := DATA_URL_PREFIX + "/gb28181/treeRefresh"
|
netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
|
flag := false
|
client := NewClient(WithNodes(netNode))
|
paramBody := map[string]interface{}{
|
"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
|
}
|
flag = res.Success
|
return flag
|
}
|
|
//国标树删除
|
func (api Gb28181Api) Gb28181TreeDelete() bool {
|
url := DATA_URL_PREFIX + "/gb28181/treeDelete"
|
netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
|
flag := false
|
client := NewClient(WithNodes(netNode))
|
respBody, err := client.DoPostRequest(url, CONTENT_TYPE_FORM, nil, nil, nil)
|
if err != nil {
|
return flag
|
}
|
var res Result
|
var json = jsoniter.ConfigCompatibleWithStandardLibrary
|
if err = json.Unmarshal(respBody, &res); err != nil {
|
return flag
|
}
|
flag = res.Success
|
return flag
|
}
|
|
//获取本节点的所有国标摄像机
|
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))
|
client := NewClient(WithNodes(netNode))
|
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
|
}
|
|
var res Result
|
var json = jsoniter.ConfigCompatibleWithStandardLibrary
|
if err = json.Unmarshal(body, &res); err != nil {
|
return false, nil
|
}
|
dataBytes, _ := json.Marshal(res.Data)
|
if err := json.Unmarshal(dataBytes, &cams); err != nil {
|
return false, nil
|
}
|
return res.Success, cams
|
}
|
|
//查找地图上的国标摄像机
|
func (api Gb28181Api) FindOnMap(isOnMap bool, floor int, cameraName string) (b bool, cams []protomsg.Camera) {
|
url := DATA_URL_PREFIX + "/gb28181/camera/findOnMap"
|
netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
|
client := NewClient(WithNodes(netNode))
|
paramBody := map[string]interface{}{
|
"isOnMap": isOnMap,
|
"floor": floor,
|
"cameraName": cameraName,
|
}
|
body, err := client.DoPostRequest(url, CONTENT_TYPE_JSON, paramBody, nil, nil)
|
if err != nil {
|
return false, nil
|
}
|
|
var res Result
|
var json = jsoniter.ConfigCompatibleWithStandardLibrary
|
if err = json.Unmarshal(body, &res); err != nil {
|
logPrint(err)
|
return false, nil
|
}
|
if res.Success {
|
if bts, e := json.Marshal(res.Data); e == nil {
|
if e = json.Unmarshal(bts, &cams); e == nil {
|
return true, cams
|
}
|
}
|
}
|
return false, nil
|
}
|
|
//更新摄像机经纬度以及楼层
|
func (api Gb28181Api) UpdatePos(id string, floor int, longitude float32, latitude float32) bool {
|
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,
|
"longitude": longitude,
|
"latitude": latitude,
|
}
|
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
|
}
|
|
//查集群内所有国标摄像机
|
func (api Gb28181Api) NodeCamera() (bool, interface{}) {
|
url := DATA_URL_PREFIX + "/gb28181/camera/nodeCamera"
|
netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
|
client := NewClient(WithNodes(netNode))
|
body, err := client.DoGetRequest(url, nil, nil)
|
if err != nil {
|
return false, nil
|
}
|
|
var res Result
|
var json = jsoniter.ConfigCompatibleWithStandardLibrary
|
if err = json.Unmarshal(body, &res); err != nil {
|
return false, nil
|
}
|
return res.Success, res.Data
|
}
|
|
//通过id获取国标进程中的摄像机坐标设置
|
func (api Gb28181Api) Coord(cameraId string) (bool, interface{}) {
|
url := DATA_URL_PREFIX + "/gb28181/camera/coord"
|
netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
|
client := NewClient(WithNodes(netNode))
|
paramQuery := map[string]string{
|
"cameraId": cameraId,
|
}
|
body, err := client.DoGetRequest(url, paramQuery, nil)
|
if err != nil {
|
return false, nil
|
}
|
|
var res Result
|
var json = jsoniter.ConfigCompatibleWithStandardLibrary
|
if err = json.Unmarshal(body, &res); err != nil {
|
return false, nil
|
}
|
return res.Success, res.Data
|
}
|
|
//更新国标进程中摄像机的转换坐标
|
func (api Gb28181Api) UpdateCoord(paramBody map[string]interface{}) bool {
|
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)
|
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
|
}
|
|
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)
|
if err != nil {
|
return false
|
}
|
|
var res Result
|
var json = jsoniter.ConfigCompatibleWithStandardLibrary
|
if err = json.Unmarshal(body, &res); err != nil {
|
return false
|
}
|
return res.Success
|
}
|
|
func (api Gb28181Api) UpdateSnapshotUrl(cameraId string, snapshot string) bool {
|
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["snapshot"] = snapshot
|
paramBody["cameraId"] = cameraId
|
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
|
}
|
|
return res.Success
|
}
|
|
//通过cameraId获取摄像机信息
|
func (api Gb28181Api) GetCameraById(cameraId string) (camera protomsg.Camera, err error) {
|
url := DATA_URL_PREFIX + "/gb28181/camera/show"
|
netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
|
client := NewClient(WithNodes(netNode))
|
paramQuery := map[string]string{
|
"cid": cameraId,
|
}
|
body, err := client.DoGetRequest(url, paramQuery, nil)
|
if err != nil {
|
return camera, err
|
}
|
|
var res Result
|
var json = jsoniter.ConfigCompatibleWithStandardLibrary
|
if err = json.Unmarshal(body, &res); err != nil {
|
return camera, err
|
}
|
|
bytes, _ := json.Marshal(res.Data)
|
err = json.Unmarshal(bytes, &camera)
|
|
return camera, err
|
}
|
|
func (api Gb28181Api) UpdateCameraArea(cameraId string, areaId string) bool {
|
url := DATA_URL_PREFIX + "/gb28181/camera/updateCameraArea"
|
netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
|
client := NewClient(WithNodes(netNode))
|
paramBody := map[string]interface{}{
|
"cameraId": cameraId,
|
"areaId": areaId,
|
}
|
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 {
|
return false
|
}
|
|
return res.Success
|
}
|
|
func (api Gb28181Api) FindAll(cameraName string, runType string, cameraId string, areaId string) (cameras []protomsg.Camera) {
|
url := DATA_URL_PREFIX + "/gb28181/camera/showAll"
|
netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
|
client := NewClient(WithNodes(netNode))
|
paramQuery := map[string]string{
|
"cameraName": cameraName,
|
"runType": runType,
|
"cameraId": cameraId,
|
"areaId": areaId,
|
}
|
|
body, err := client.DoGetRequest(url, paramQuery, nil)
|
if err != nil {
|
return nil
|
}
|
|
var res Result
|
var json = jsoniter.ConfigCompatibleWithStandardLibrary
|
if err = json.Unmarshal(body, &res); err != nil {
|
logPrint(err)
|
return nil
|
}
|
|
bytes, _ := json.Marshal(res.Data)
|
err = json.Unmarshal(bytes, &cameras)
|
|
return cameras
|
}
|
|
//根据运行类型获取摄像机列表
|
//runType(0:获取轮询列表,1:获取实时列表)
|
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["cameraName"] = cameraName
|
body, err := client.DoGetRequest(url, paramQuery, nil)
|
if err != nil {
|
return false, nil
|
}
|
|
var res Result
|
var json = jsoniter.ConfigCompatibleWithStandardLibrary
|
if err = json.Unmarshal(body, &res); err != nil {
|
return false, nil
|
}
|
b, err := json.Marshal(res.Data)
|
if err != nil {
|
logPrint("unmarshal GetCamerasByRunType.result err")
|
return false, nil
|
}
|
if err = json.Unmarshal(b, &cameras); err != nil {
|
return false, nil
|
} else {
|
return true, cameras
|
}
|
}
|
|
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["cameraId"] = cameraId
|
paramBody["runEnable"] = runEnable
|
body, err := client.DoPostRequest(url, CONTENT_TYPE_FORM, paramBody, nil, nil)
|
if err != 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 res.Success, res.Data
|
}
|
|
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["cameraId"] = cameraId
|
paramBody["isRunning"] = isRunning
|
body, err := client.DoPostRequest(url, CONTENT_TYPE_FORM, paramBody, nil, nil)
|
if err != 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 res.Success, res.Data
|
}
|
|
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["cameraIds"] = cameraIds
|
body, err := client.DoPostRequest(url, CONTENT_TYPE_JSON, paramBody, nil, nil)
|
if err != 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 res.Success, res.Data
|
}
|
|
//批量切换摄像机轮询或实时状态
|
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)
|
if err != 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 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)
|
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
|
}
|