package bhomedbapi import ( "basic.com/pubsub/protomsg.git" jsoniter "github.com/json-iterator/go" "strconv" ) type CameraApi struct { } func (api CameraApi) CameraAdd(paramBody map[string]interface{}) (bool, interface{}) { url := DATA_URL_PREFIX + "/camera/add" netNode := getNetNode(url2Topic(Topic_Camera_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 { return false, nil } return res.Success, res.Data } func (api CameraApi) CameraUpdate(paramBody map[string]interface{}) bool { url := DATA_URL_PREFIX + "/camera/update" netNode := getNetNode(url2Topic(Topic_Camera_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 CameraApi) UpdateSnapshotUrl(cameraId string, snapshot string) bool { url := DATA_URL_PREFIX + "/camera/updateSnapshot" netNode := getNetNode(url2Topic(Topic_Camera_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 } func (api CameraApi) CameraDelete(cid string) bool { url := DATA_URL_PREFIX + "/camera/del" netNode := getNetNode(url2Topic(Topic_Camera_Service, url)) client := NewClient(WithNodes(netNode)) paramMap := make(map[string]string, 0) paramMap["id"] = cid body, err := client.DoGetRequest(url, paramMap, 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 } //通过cameraId获取摄像机信息 func (api CameraApi) GetCameraById(cameraId string) (camera protomsg.Camera, err error) { url := DATA_URL_PREFIX + "/camera/show" netNode := getNetNode(url2Topic(Topic_Camera_Service, url)) client := NewClient(WithNodes(netNode)) paramQuery := map[string]string{ "id": 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 CameraApi) UpdateCameraArea(cameraId string, areaId string) bool { url := DATA_URL_PREFIX + "/camera/updateCameraArea" netNode := getNetNode(url2Topic(Topic_Camera_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 CameraApi) FindAll(cameraName string, runType string, cameraId string, areaId string) (cameras []protomsg.Camera) { url := DATA_URL_PREFIX + "/camera/showAll" netNode := getNetNode(url2Topic(Topic_Camera_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 } func (api CameraApi) GetAllCamerasByServer(serverId string, cameraName string) (b bool, cams []protomsg.Camera) { url := DATA_URL_PREFIX + "/camera/getAllCamerasByServer" netNode := getNetNode(url2Topic(Topic_Camera_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 CameraApi) FindAllCameraAndTask() (cameraTasks []protomsg.CameraAndTaskInfo){ // url := DATA_URL_PREFIX + "/camera/queryCameraAndTaskInfo" // client := NewClient(WithPort(api.Port)) // // body, err := client.DoGetRequest(url, nil, 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, &cameraTasks) // // return cameraTasks //} //根据运行类型获取摄像机列表 //runType(0:获取轮询列表,1:获取实时列表) func (api CameraApi) GetCamerasByRunType(runType int, cameraName string) (flag bool, cameras []protomsg.Camera) { url := DATA_URL_PREFIX + "/camera/getCamerasByRunType" netNode := getNetNode(url2Topic(Topic_Camera_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 CameraApi) UpdateRunEnable(cameraId string, runEnable bool) (bool, interface{}) { url := DATA_URL_PREFIX + "/camera/updateRunEnable" netNode := getNetNode(url2Topic(Topic_Camera_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 CameraApi) UpdateIsRunningState(cameraId string, isRunning bool) (bool, interface{}) { url := DATA_URL_PREFIX + "/camera/updateIsRunningState" netNode := getNetNode(url2Topic(Topic_Camera_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 CameraApi) UpdateIsRunningAll(cameraIds []string) (bool, interface{}) { url := DATA_URL_PREFIX + "/camera/updateIsRunningAll" netNode := getNetNode(url2Topic(Topic_Camera_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 CameraApi) ChangeRunType(paramBody map[string]interface{}) (bool, interface{}) { url := DATA_URL_PREFIX + "/camera/changeRunType" netNode := getNetNode(url2Topic(Topic_Camera_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 CameraApi) StatisticRunInfo() (bool, interface{}) { url := DATA_URL_PREFIX + "/camera/statisticRunInfo" netNode := getNetNode(url2Topic(Topic_Camera_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 true, res.Data } func (api CameraApi) FindAllCameraLink() (b bool, list []protomsg.CameraLink) { url := DATA_URL_PREFIX + "/camera/findAllCameraLink" netNode := getNetNode(url2Topic(Topic_Camera_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 } dataBytes, _ := json.Marshal(res.Data) if err := json.Unmarshal(dataBytes, &list); err != nil { return false, nil } return true, list } func (api CameraApi) FindOnMap(isOnMap bool, floor int, cameraName string) (b bool, cams []protomsg.Camera) { url := DATA_URL_PREFIX + "/camera/findOnMap" netNode := getNetNode(url2Topic(Topic_Camera_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 CameraApi) UpdatePos(id string, floor int, longitude float32, latitude float32) bool { url := DATA_URL_PREFIX + "/camera/updatePos" netNode := getNetNode(url2Topic(Topic_Camera_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 CameraApi) NodeCamera() (bool, interface{}) { url := DATA_URL_PREFIX + "/camera/nodeCamera" netNode := getNetNode(url2Topic(Topic_Camera_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 } func (api CameraApi) Coord(cameraId string) (bool, interface{}) { url := DATA_URL_PREFIX + "/camera/coord" netNode := getNetNode(url2Topic(Topic_Camera_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 CameraApi) UpdateCoord(paramBody map[string]interface{}) bool { url := DATA_URL_PREFIX + "/camera/updateCoord" netNode := getNetNode(url2Topic(Topic_Camera_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 CameraApi) SaveNotExistOrUpdate(paramBody map[string]interface{}) bool { url := DATA_URL_PREFIX + "/camera/saveNotExistOrUpdate" netNode := getNetNode(url2Topic(Topic_Camera_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 }