From f3a497f4e7ebe5611ccfb4c3a6e9657ad706bc15 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期一, 17 五月 2021 18:26:51 +0800
Subject: [PATCH] 修改GetAllCamerasAndGroupsByDevID,一次返回所有的摄像机和资源分组
---
gb28181Api.go | 26 ++++++++++++++++++--------
entites.go | 13 +++++++------
2 files changed, 25 insertions(+), 14 deletions(-)
diff --git a/entites.go b/entites.go
index c06bc12..c97ae32 100644
--- a/entites.go
+++ b/entites.go
@@ -80,12 +80,13 @@
//CamerasInOnePage 涓�椤电殑鎽勫儚鏈轰俊鎭�
type CamerasInOnePage struct {
GbResult
- TotalSize int `json:"totalsize"` //(鏁板瓧) 璁惧鎬绘暟 锛堜笅鍚岋級
- OnePageSize int `json:"onepagesize"` //(鏁板瓧) 姣忛〉澶у皬 锛堜笅鍚岋級
- TotalPage int `json:"totalpage"` //(鏁板瓧) 鎬诲垎椤垫暟 锛堜笅鍚岋級
- PageNO int `json:"pageno"` //(鏁板瓧) 褰撳墠绗嚑椤碉紙涓嬪悓锛�
- Count int `json:"count"` //(鏁板瓧) 褰撳墠鏈夊嚑鏉℃暟鎹紙涓嬪悓锛�
- Data []CameraInfo `json:"data"` //璁惧淇℃伅锛屽弬鐓р��1.璁惧绠$悊鈥濆畾涔�
+ TotalSize int `json:"totalsize"` //(鏁板瓧) 璁惧鎬绘暟 锛堜笅鍚岋級
+ OnePageSize int `json:"onepagesize"` //(鏁板瓧) 姣忛〉澶у皬 锛堜笅鍚岋級
+ TotalPage int `json:"totalpage"` //(鏁板瓧) 鎬诲垎椤垫暟 锛堜笅鍚岋級
+ PageNO int `json:"pageno"` //(鏁板瓧) 褰撳墠绗嚑椤碉紙涓嬪悓锛�
+ Count int `json:"count"` //(鏁板瓧) 褰撳墠鏈夊嚑鏉℃暟鎹紙涓嬪悓锛�
+ Data []CameraInfo `json:"data"` //璁惧淇℃伅锛屽弬鐓р��1.璁惧绠$悊鈥濆畾涔�
+ Groups []DomainUnit `json:"groups"` //璧勬簮缁勪俊鎭�,resType=2
}
//DomainUnit 璁惧鐨勮鏀垮尯鍩� (璁惧鏄钩鍙版墠浼氬幓鑾峰彇琛屾斂鍖哄煙-涓棿涓変綅缂栫爜涓�200)
diff --git a/gb28181Api.go b/gb28181Api.go
index 952554f..0dba4a7 100644
--- a/gb28181Api.go
+++ b/gb28181Api.go
@@ -144,7 +144,7 @@
//pageNo (鏁板瓧) 鎸囧畾鑾峰彇绗嚑椤碉紝绗竴娆′负1锛岃繑鍥炴�婚〉鏁帮紝鎬绘潯鏁扮瓑锛屽啀鏍规嵁杩欎簺淇℃伅鍘诲啀娆℃煡璇紝鐩村埌鍙栧畬鍏ㄩ儴
//srcType (瀛楃涓�) "all"-琛ㄧず鑾峰彇璁惧鐨勬墍鏈夎祫婧� "node"-鐖惰妭鐐逛笅鐨勭涓�绾ц祫婧�
//娉ㄦ剰锛氭牴鎹�"restype"瀛楁锛屽拷鐣ヨ祫婧愮粍锛屽彧淇濈暀閫氶亾璧勬簮------"restype"锛�(鏁板瓧)1-閫氶亾璧勬簮 2-璧勬簮缁�
-func (api Gb28181Api) getCamsByDevAndPage(devID string, srcType string, pageNo int) (CamerasInOnePage, bool) {
+func (api Gb28181Api) getCamsAndGroupsByDevAndPage(devID string, srcType string, pageNo int) (CamerasInOnePage, bool) {
url := BASIC_URL + DATA_URL_PREFIX + "/get_all_channel/" + devID + "/" + srcType + "/" + strconv.Itoa(pageNo)
client := NewClient()
@@ -168,6 +168,14 @@
if len(camerasPerPage.Data) > 0 {
for i := 0; i < len(camerasPerPage.Data); i++ {
if camerasPerPage.Data[i].ResType == 2 {
+ di := camerasPerPage.Data[i]
+ camerasPerPage.Groups = append(camerasPerPage.Groups, DomainUnit{
+ DevPubID: di.DevPubID,
+ ResType: 2,
+ PublicID: di.PublicID,
+ Name: di.Name,
+ ParentID: di.ParentID,
+ })
camerasPerPage.Data = append(camerasPerPage.Data[:i], camerasPerPage.Data[i+1:]...)
i--
}
@@ -179,25 +187,27 @@
//GetAllCamerasByDevID 鑾峰彇鍏ㄩ儴涓嬬骇璁惧鐨勬憚鍍忔満鍒楄〃
//devID (瀛楃涓�) 娉ㄥ唽鐨勮澶囩殑20浣峣d
-func (api Gb28181Api) GetAllCamerasByDevID(devID string) ([]CameraInfo, bool) {
+func (api Gb28181Api) GetAllCamerasAndGroupsByDevID(devID string) ([]CameraInfo, []DomainUnit, bool) {
var cameraSlice []CameraInfo
- camerasPerPage, flag := api.getCamsByDevAndPage(devID, "all", 1)
+ var groups []DomainUnit
+ camerasPerPage, flag := api.getCamsAndGroupsByDevAndPage(devID, "all", 1)
if !flag {
log.Println("GetCamsByDevAndPage Error, deviceSlice is nil")
- return cameraSlice, false
+ return cameraSlice, groups, false
}
cameraSlice = camerasPerPage.Data
-
+ groups = camerasPerPage.Groups
for i := 1; i < camerasPerPage.TotalPage; i++ {
- camerasPerPage, flag := api.getCamsByDevAndPage(devID, "all", i+1)
+ camerasPerPage, flag := api.getCamsAndGroupsByDevAndPage(devID, "all", i+1)
if !flag {
log.Println("GetCamsByDevAndPage Error! devID:" + devID + ",type:all,pageno:" + strconv.Itoa(i+1) + " ,cameraSlice is not completed")
- return cameraSlice, false
+ return cameraSlice, groups, false
}
cameraSlice = append(cameraSlice, camerasPerPage.Data...)
+ groups = append(groups, camerasPerPage.Groups...)
}
- return cameraSlice, true
+ return cameraSlice, groups, true
}
//GetAllDomainUnit get all domainunit 鑾峰彇鎵�鏈夎鏀垮尯鍩�
--
Gitblit v1.8.0