From 293b6d664512c30d2e6b2ce80487ba6fa16598c3 Mon Sep 17 00:00:00 2001
From: huchanghua <huchanghua@basic.com>
Date: 星期五, 22 七月 2022 17:21:16 +0800
Subject: [PATCH] add SaveNotExistOrUpdate

---
 gb28181Api.go |  166 ++++++++++++++++++++-----------------------------------
 1 files changed, 61 insertions(+), 105 deletions(-)

diff --git a/gb28181Api.go b/gb28181Api.go
index 5e5e469..35c5ab2 100644
--- a/gb28181Api.go
+++ b/gb28181Api.go
@@ -3,7 +3,6 @@
 import (
 	"basic.com/pubsub/protomsg.git"
 	"encoding/json"
-	"errors"
 	"strconv"
 )
 
@@ -14,9 +13,6 @@
 //鍥芥爣閰嶇疆鏄剧ず
 func (api Gb28181Api) Show() (flag bool,gbConfig protomsg.Gb28181Config) {
 	netNode := getNetNode(Topic_Gb28181_Service)
-	if netNode == nil {
-		return false, gbConfig
-	}
 	url := DATA_URL_PREFIX + "/gb28181/configShow"
 	client := NewClient(WithNodes(netNode))
 	respBody, err := client.DoGetRequest(url, nil, nil)
@@ -38,12 +34,9 @@
 }
 
 func (api Gb28181Api) Edit(paramBody map[string]interface{}) bool {
-	netNode := getNetNode(Topic_Gb28181_Service)
-	if netNode == nil {
-		return false
-	}
-	flag := false
 	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 {
@@ -57,11 +50,8 @@
 }
 
 func (api Gb28181Api) FindAreaByParentId(parentId string) (bool,interface{}) {
-	netNode := getNetNode(Topic_Gb28181_Service)
-	if netNode == nil {
-		return false, nil
-	}
 	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
@@ -77,11 +67,8 @@
 }
 
 func (api Gb28181Api) NewGbId(code string) (bool,interface{}) {
-	netNode := getNetNode(Topic_Gb28181_Service)
-	if netNode == nil {
-		return false, nil
-	}
 	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
@@ -100,15 +87,12 @@
 //searchType(0:鍏ㄩ儴锛�1:鍒嗘瀽鎽勫儚鏈�,2:鐩戞帶鎽勫儚鏈�)
 //cameraName锛堟憚鍍忔満鍚嶇О锛�
 func (api Gb28181Api) GetGb28181CameraTree(parentId string, searchType string, cameraName string) []TreeMenu {
-	netNode := getNetNode(Topic_Gb28181_Service)
-	if netNode == nil {
-		return nil
-	}
+	url := DATA_URL_PREFIX + "/gb28181/tree"
+	netNode := getNetNode(url2Topic(Topic_Gb28181_Service,url))
 	var result []TreeMenu
 
 	client := NewClient(WithNodes(netNode))
 
-	url := DATA_URL_PREFIX + "/gb28181/gb28181Tree"
 	params := make(map[string]string, 0)
 	params["parentId"] = parentId
 	params["searchType"] = searchType
@@ -133,12 +117,9 @@
 
 //鍥芥爣鏍戝埛鏂�
 func (api Gb28181Api) Gb28181TreeRefresh(id string) bool {
-	netNode := getNetNode(Topic_Gb28181_Service)
-	if netNode == nil {
-		return false
-	}
+	url := DATA_URL_PREFIX + "/gb28181/treeRefresh"
+	netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
 	flag := false
-	url := DATA_URL_PREFIX + "/gb28181/gb28181TreeRefresh"
 	client := NewClient(WithNodes(netNode))
 	paramBody := map[string]interface{}{
 		"id":id,
@@ -157,12 +138,9 @@
 
 //鍥芥爣鏍戝垹闄�
 func (api Gb28181Api) Gb28181TreeDelete() bool {
-	netNode := getNetNode(Topic_Gb28181_Service)
-	if netNode == nil {
-		return false
-	}
+	url := DATA_URL_PREFIX + "/gb28181/treeDelete"
+	netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
 	flag := false
-	url := DATA_URL_PREFIX + "/gb28181/gb28181TreeDelete"
 	client := NewClient(WithNodes(netNode))
 	respBody, err := client.DoPostRequest(url, CONTENT_TYPE_FORM, nil, nil, nil)
 	if err != nil {
@@ -178,11 +156,8 @@
 
 //鑾峰彇鏈妭鐐圭殑鎵�鏈夊浗鏍囨憚鍍忔満
 func (api Gb28181Api) GetAllCamerasByServer(serverId string,cameraName string) (b bool,cams []protomsg.Camera) {
-	netNode := getNetNode(Topic_Gb28181_Service)
-	if netNode == nil {
-		return false,nil
-	}
 	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
@@ -205,11 +180,8 @@
 
 //鏌ユ壘鍦板浘涓婄殑鍥芥爣鎽勫儚鏈�
 func (api Gb28181Api) FindOnMap(isOnMap bool, floor int, cameraName string) (b bool, cams []protomsg.Camera) {
-	netNode := getNetNode(Topic_Gb28181_Service)
-	if netNode == nil {
-		return false,nil
-	}
-	url := DATA_URL_PREFIX + "/camera/findOnMap"
+	url := DATA_URL_PREFIX + "/gb28181/camera/findOnMap"
+	netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
 	client := NewClient(WithNodes(netNode))
 	paramBody:= map[string]interface{}{
 		"isOnMap":    isOnMap,
@@ -238,11 +210,8 @@
 
 //鏇存柊鎽勫儚鏈虹粡绾害浠ュ強妤煎眰
 func (api Gb28181Api) UpdatePos(id string, floor int, longitude float32, latitude float32) bool {
-	netNode := getNetNode(Topic_Gb28181_Service)
-	if netNode == nil {
-		return false
-	}
-	url := DATA_URL_PREFIX + "/camera/updatePos"
+	url := DATA_URL_PREFIX + "/gb28181/camera/updatePos"
+	netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
 	client := NewClient(WithNodes(netNode))
 	paramBody:= map[string]interface{}{
 		"id":    id,
@@ -266,11 +235,8 @@
 
 //鏌ラ泦缇ゅ唴鎵�鏈夊浗鏍囨憚鍍忔満
 func (api Gb28181Api) NodeCamera() (bool, interface{}) {
-	netNode := getNetNode(Topic_Gb28181_Service)
-	if netNode == nil {
-		return false,nil
-	}
-	url := DATA_URL_PREFIX + "/camera/nodeCamera"
+	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 {
@@ -286,11 +252,8 @@
 
 //閫氳繃id鑾峰彇鍥芥爣杩涚▼涓殑鎽勫儚鏈哄潗鏍囪缃�
 func (api Gb28181Api) Coord(cameraId string) (bool, interface{}) {
-	netNode := getNetNode(Topic_Gb28181_Service)
-	if netNode == nil {
-		return false,nil
-	}
-	url := DATA_URL_PREFIX + "/camera/coord"
+	url := DATA_URL_PREFIX + "/gb28181/camera/coord"
+	netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
 	client := NewClient(WithNodes(netNode))
 	paramQuery := map[string]string {
 		"cameraId": cameraId,
@@ -309,11 +272,8 @@
 
 //鏇存柊鍥芥爣杩涚▼涓憚鍍忔満鐨勮浆鎹㈠潗鏍�
 func (api Gb28181Api) UpdateCoord(paramBody map[string]interface{}) bool {
-	netNode := getNetNode(Topic_Gb28181_Service)
-	if netNode == nil {
-		return false
-	}
-	url := DATA_URL_PREFIX + "/camera/updateCoord"
+	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 {
@@ -332,11 +292,8 @@
 
 
 func (api Gb28181Api) CameraUpdate(paramBody map[string]interface{}) bool {
-	url := DATA_URL_PREFIX + "/camera/update"
+	url := DATA_URL_PREFIX + "/gb28181/camera/update"
 	netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
-	if netNode == nil {
-		return false
-	}
 	client := NewClient(WithNodes(netNode))
 	body, err := client.DoPutRequest(url,CONTENT_TYPE_JSON,paramBody,nil)
 	if err != nil {
@@ -351,11 +308,8 @@
 }
 
 func (api Gb28181Api) UpdateSnapshotUrl(cameraId string, snapshot string) bool {
-	url := DATA_URL_PREFIX + "/camera/updateSnapshot"
+	url := DATA_URL_PREFIX + "/gb28181/camera/updateSnapshot"
 	netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
-	if netNode == nil {
-		return false
-	}
 	client := NewClient(WithNodes(netNode))
 	paramBody :=make(map[string]interface{},0)
 	paramBody["snapshot"] = snapshot
@@ -376,14 +330,13 @@
 
 //閫氳繃cameraId鑾峰彇鎽勫儚鏈轰俊鎭�
 func (api Gb28181Api) GetCameraById(cameraId string) (camera protomsg.Camera, err error) {
-	url := DATA_URL_PREFIX + "/camera/show"
+	url := DATA_URL_PREFIX + "/gb28181/camera/show"
 	netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
-	if netNode == nil {
-		return camera,errors.New("gb28181-service not found")
-	}
 	client := NewClient(WithNodes(netNode))
-
-	body, err := client.DoGetRequest(url, nil, nil)
+	paramQuery := map[string]string {
+		"cid": cameraId,
+	}
+	body, err := client.DoGetRequest(url, paramQuery, nil)
 	if err != nil {
 		return camera, err
 	}
@@ -400,11 +353,8 @@
 }
 
 func (api Gb28181Api) UpdateCameraArea(cameraId string, areaId string) bool {
-	url := DATA_URL_PREFIX + "/camera/updateCameraArea"
+	url := DATA_URL_PREFIX + "/gb28181/camera/updateCameraArea"
 	netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
-	if netNode == nil {
-		return false
-	}
 	client := NewClient(WithNodes(netNode))
 	paramBody := map[string]interface{} {
 		"cameraId": cameraId,
@@ -423,15 +373,18 @@
 	return res.Success
 }
 
-func (api Gb28181Api) FindAll() (cameras []protomsg.Camera) {
-	url := DATA_URL_PREFIX + "/camera/showAll"
+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))
-	if netNode == nil {
-		return nil
-	}
 	client := NewClient(WithNodes(netNode))
+	paramQuery := map[string]string {
+		"cameraName": cameraName,
+		"runType": runType,
+		"cameraId": cameraId,
+		"areaId": areaId,
+	}
 
-	body, err := client.DoGetRequest(url, nil, nil)
+	body, err := client.DoGetRequest(url, paramQuery, nil)
 	if err != nil {
 		return nil
 	}
@@ -451,11 +404,8 @@
 //鏍规嵁杩愯绫诲瀷鑾峰彇鎽勫儚鏈哄垪琛�
 //runType(0:鑾峰彇杞鍒楄〃锛�1锛氳幏鍙栧疄鏃跺垪琛�)
 func (api Gb28181Api) GetCamerasByRunType(runType int,cameraName string)(flag bool,cameras []protomsg.Camera){
-	url := DATA_URL_PREFIX + "/camera/getCamerasByRunType"
+	url := DATA_URL_PREFIX + "/gb28181/camera/getCamerasByRunType"
 	netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
-	if netNode == nil {
-		return false,nil
-	}
 	client := NewClient(WithNodes(netNode))
 	paramQuery := make(map[string]string,2)
 	paramQuery["runType"]=strconv.Itoa(runType)
@@ -482,11 +432,8 @@
 }
 
 func (api Gb28181Api) UpdateRunEnable(cameraId string,runEnable bool) (bool,interface{}){
-	url := DATA_URL_PREFIX + "/camera/updateRunEnable"
+	url := DATA_URL_PREFIX + "/gb28181/camera/updateRunEnable"
 	netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
-	if netNode == nil {
-		return false, nil
-	}
 	client := NewClient(WithNodes(netNode))
 	paramBody :=make(map[string]interface{},0)
 	paramBody["cameraId"] = cameraId
@@ -506,11 +453,8 @@
 }
 
 func (api Gb28181Api) UpdateIsRunningState(cameraId string,isRunning bool) (bool,interface{}){
-	url := DATA_URL_PREFIX + "/camera/updateIsRunningState"
+	url := DATA_URL_PREFIX + "/gb28181/camera/updateIsRunningState"
 	netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
-	if netNode == nil {
-		return false,nil
-	}
 	client := NewClient(WithNodes(netNode))
 	paramBody :=make(map[string]interface{},0)
 	paramBody["cameraId"] = cameraId
@@ -530,11 +474,8 @@
 }
 
 func (api Gb28181Api) UpdateIsRunningAll(cameraIds []string) (bool,interface{}){
-	url := DATA_URL_PREFIX + "/camera/updateIsRunningAll"
+	url := DATA_URL_PREFIX + "/gb28181/camera/updateIsRunningAll"
 	netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
-	if netNode == nil {
-		return false,nil
-	}
 	client := NewClient(WithNodes(netNode))
 	paramBody :=make(map[string]interface{},0)
 	paramBody["cameraIds"] = cameraIds
@@ -554,11 +495,8 @@
 
 //鎵归噺鍒囨崲鎽勫儚鏈鸿疆璇㈡垨瀹炴椂鐘舵��
 func (api Gb28181Api) ChangeRunType(paramBody map[string]interface{}) (bool,interface{}){
-	url := DATA_URL_PREFIX + "/camera/changeRunType"
+	url := DATA_URL_PREFIX + "/gb28181/camera/changeRunType"
 	netNode := getNetNode(url2Topic(Topic_Gb28181_Service, url))
-	if netNode == nil {
-		return false,nil
-	}
 	client := NewClient(WithNodes(netNode))
 	body,err := client.DoPostRequest(url,CONTENT_TYPE_JSON, paramBody,nil,nil)
 	if err != nil {
@@ -572,4 +510,22 @@
 	}
 
 	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
+	if err = json.Unmarshal(body, &res); err != nil {
+		logPrint(err)
+		return false
+	}
+
+	return res.Success
 }
\ No newline at end of file

--
Gitblit v1.8.0