sqlite的api,便于内部使用
liuxiaolong
2020-03-09 e21e6f988638ada0085da2a230d2fb7a911369c2
cameraApi.go
@@ -1,37 +1,139 @@
package dbapi
import (
   "dbapi/protomsg"
   "basic.com/pubsub/protomsg.git"
   "encoding/json"
   "fmt"
   "strconv"
)
type CameraApi struct{}
type CameraApi struct{
   Ip string
   Port int
}
//通过cameraId获取摄像机信息
func (api CameraApi) GetCameraById(cameraId string) (result protomsg.Camera, err error) {
   url := BASIC_URL + DATA_URL_PREFIX + "/camera/show/" + cameraId
func (api CameraApi) getBasicUrl() string {
   if api.Ip == "" {
      return BASIC_URL
   }
   if api.Ip == "" {
      api.Ip = DEFAULT_IP
   }
   if api.Port == 0 {
      api.Port = DEFAULT_PORT
   }
   return "http://"+api.Ip+":"+strconv.Itoa(api.Port)
}
func (api CameraApi) CameraAdd(paramBody map[string]interface{}) (bool,interface{}) {
   url := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/add"
   client := NewClient()
   body, err := client.DoGetRequest(url, nil, nil)
   body, err := client.DoPostRequest(url,CONTENT_TYPE_JSON,paramBody,nil,nil)
   if err != nil {
      return result, err
      return false,nil
   }
   var res Result
   if err = json.Unmarshal(body, &res); err != nil {
      fmt.Println(err)
      return result,err
      return false,nil
   }
   return res.Success,res.Data
}
func (api CameraApi) CameraUpdate(paramBody map[string]interface{}) bool {
   url := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/update"
   client := NewClient()
   body, err := client.DoPutRequest(url,CONTENT_TYPE_JSON,paramBody,nil)
   if err != nil {
      return false
   }
   var res Result
   if err = json.Unmarshal(body, &res); err != nil {
      return false
   }
   return res.Success
}
func (api CameraApi) UpdateSnapshotUrl(cameraId string, snapshot string) bool {
   url := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/updateSnapshot"
   client := NewClient()
   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
   if err = json.Unmarshal(body, &res); err != nil {
      logPrint(err)
      return false
   }
   return res.Success
}
func (api CameraApi) CameraDelete(cid string) bool {
   url := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/del/"+cid
   client := NewClient()
   paramMap := make(map[string]string,0)
   paramMap["cid"] = cid
   body, err := client.DoDeleteRequest(url,CONTENT_TYPE_FORM,nil,paramMap)
   if err != nil {
      return false
   }
   var res Result
   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 := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/show/" + cameraId
   client := NewClient()
   body, err := client.DoGetRequest(url, nil, nil)
   if err != nil {
      return camera, err
   }
   var res Result
   if err = json.Unmarshal(body, &res); err != nil {
      return camera,err
   }
   bytes, _ := json.Marshal(res.Data)
   err = json.Unmarshal(bytes, &result)
   err = json.Unmarshal(bytes, &camera)
   return result, err
   return camera, err
}
func (api CameraApi) UpdateCameraArea(cameraId string, areaId string) bool {
    url := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/updateCameraArea"
    client := NewClient()
    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
    if err = json.Unmarshal(body, &res);err != nil {
        return false
    }
    return res.Success
}
func (api CameraApi) FindAll() (cameras []protomsg.Camera) {
   url := BASIC_URL + DATA_URL_PREFIX + "/camera/showAll"
   url := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/showAll"
   client := NewClient()
   body, err := client.DoGetRequest(url, nil, nil)
@@ -41,7 +143,7 @@
   var res Result
   if err = json.Unmarshal(body, &res); err != nil {
      fmt.Println(err)
      logPrint(err)
      return nil
   }
@@ -50,3 +152,348 @@
   return cameras
}
func (api CameraApi) GetAllCamerasByServer(serverId string,cameraName string) (bool,interface{}) {
   url := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/getAllCamerasByServer"
   client := NewClient()
   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
   if err = json.Unmarshal(body, &res); err != nil {
      return false,nil
   }
   return res.Success,res.Data
}
//获取所有摄像机的信息以及其所有任务
func (api CameraApi) FindAllCameraAndTask() (cameraTasks []protomsg.CameraAndTaskInfo){
   url := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/queryCameraAndTaskInfo"
   client := NewClient()
   body, err := client.DoGetRequest(url, nil, nil)
   if err != nil {
      return nil
   }
   var res Result
   if err = json.Unmarshal(body, &res); err != nil {
      logPrint(err)
      return nil
   }
   bytes, _ := json.Marshal(res.Data)
   err = json.Unmarshal(bytes, &cameraTasks)
   return cameraTasks
}
func (api CameraApi) SaveCameraPolygon(paramBody map[string]interface{}) (bool,interface{}) {
   url := api.getBasicUrl() + DATA_URL_PREFIX + "/polygon/save"
   client := NewClient()
   body,err := client.DoPostRequest(url,CONTENT_TYPE_JSON, paramBody,nil,nil)
   if err != nil {
      return false,nil
   }
   var res Result
   if err = json.Unmarshal(body, &res); err != nil {
      logPrint(err)
      return false,nil
   }
   return res.Success,res.Data
}
func (api CameraApi) DeleteCameraPolygon(id string) (bool,interface{}){
   url := api.getBasicUrl() + DATA_URL_PREFIX + "/polygon/delete"
   client := NewClient()
   paramQuery := make(map[string]string,0)
   paramQuery["id"]=id
   body, err := client.DoGetRequest(url, paramQuery, nil)
   if err != nil {
      return false,nil
   }
   var res Result
   if err = json.Unmarshal(body, &res); err != nil {
      return false,nil
   }
   return res.Success,res.Data
}
func (api CameraApi) FindAllPolygons() ([]protomsg.CameraPolygon) {
   polygons := make([]protomsg.CameraPolygon,0)
   url := api.getBasicUrl() + DATA_URL_PREFIX + "/polygon/findAll"
   client := NewClient()
   body, err := client.DoGetRequest(url, nil, nil)
   if err != nil {
      return nil
   }
   var res Result
   if err = json.Unmarshal(body, &res); err != nil {
      return nil
   }
   dataBytes, _ := json.Marshal(res.Data)
   if err := json.Unmarshal(dataBytes, &polygons);err !=nil {
      return nil
   }
   return polygons
}
func (api CameraApi) FindPolygonsByCameraId(cameraId string) (bool,interface{}) {
   url := api.getBasicUrl() + DATA_URL_PREFIX + "/polygon/findByCameraId"
   client := NewClient()
   paramQuery := make(map[string]string,0)
   paramQuery["cameraId"] = cameraId
   body, err := client.DoGetRequest(url, paramQuery, nil)
   if err != nil {
      return false,nil
   }
   var res Result
   if err = json.Unmarshal(body, &res); err != nil {
      return false,nil
   }
   return true,res.Data
}
//新增或更新时间规则
func (api CameraApi) SaveCameraTimerule(paramBody map[string]interface{}) (bool,interface{}) {
   url := api.getBasicUrl() + DATA_URL_PREFIX + "/cameraTimerule/save"
   client := NewClient()
   body,err := client.DoPostRequest(url,CONTENT_TYPE_JSON, paramBody,nil,nil)
   if err != nil {
      return false,nil
   }
   var res Result
   if err = json.Unmarshal(body, &res); err != nil {
      logPrint(err)
      return false,nil
   }
   return res.Success,res.Data
}
func (api CameraApi) DeleteCameraTimerule (id string) bool {
   url := api.getBasicUrl() + DATA_URL_PREFIX + "/cameraTimerule/delete"
   client := NewClient()
   paramQuery := make(map[string]string,0)
   paramQuery["id"]=id
   body, err := client.DoGetRequest(url, paramQuery, nil)
   if err != nil {
      return false
   }
   var res Result
   if err = json.Unmarshal(body, &res); err != nil {
      return false
   }
   return res.Success
}
//根据摄像机id查找所有的时间规则
func (api CameraApi) FindAllTimeRules() (flag bool,rules []protomsg.CameraTimerule) {
   url := api.getBasicUrl() + DATA_URL_PREFIX + "/cameraTimerule/findAll"
   client := NewClient()
   body, err := client.DoGetRequest(url, nil, nil)
   if err != nil {
      return false,nil
   }
   var res Result
   if err = json.Unmarshal(body, &res); err != nil {
      return false,nil
   }
   dataBytes, _ := json.Marshal(res.Data)
   if err := json.Unmarshal(dataBytes, &rules);err !=nil {
      return false,nil
   }
   return true,rules
}
func (api CameraApi) UpdateDefenceStateByPolygonId(polygonId string,state string) (bool,interface{}){
   url := api.getBasicUrl() + DATA_URL_PREFIX + "/polygon/updateDefenceStateByPolygonId"
   client := NewClient()
   paramQuery :=make(map[string]string,0)
   paramQuery["polygonId"] = polygonId
   paramQuery["defence_state"]=state
   body, err := client.DoGetRequest(url, paramQuery, nil)
   if err != nil {
      return false,nil
   }
   var res Result
   if err = json.Unmarshal(body, &res); err != nil {
      return false,nil
   }
   return true,res.Data
}
func (api CameraApi) UpdateDefenceStateByCameraId(cameraId string,state string) (bool,interface{}){
   url := api.getBasicUrl() + DATA_URL_PREFIX + "/polygon/updateDefenceStateByCameraId"
   client := NewClient()
   paramQuery :=make(map[string]string,0)
   paramQuery["cameraId"] = cameraId
   paramQuery["defence_state"]=state
   body, err := client.DoGetRequest(url, paramQuery, nil)
   if err != nil {
      return false,nil
   }
   var res Result
   if err = json.Unmarshal(body, &res); err != nil {
      return false,nil
   }
   return true,res.Data
}
//根据运行类型获取摄像机列表
//runType(0:获取轮询列表,1:获取实时列表)
func (api CameraApi) GetCamerasByRunType(runType int,cameraName string)(flag bool,cameras []protomsg.Camera){
   url := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/getCamerasByRunType"
   client := NewClient()
   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
   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 := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/updateRunEnable"
   client := NewClient()
   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
   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 := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/updateIsRunningState"
   client := NewClient()
   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
   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 := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/updateIsRunningAll"
   client := NewClient()
   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
   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 := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/changeRunType"
   client := NewClient()
   body,err := client.DoPostRequest(url,CONTENT_TYPE_JSON, paramBody,nil,nil)
   if err != nil {
      return false,nil
   }
   var res Result
   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 := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/statisticRunInfo"
   client := NewClient()
   body, err := client.DoGetRequest(url, nil, nil)
   if err != nil {
      return false,nil
   }
   var res Result
   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 := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/findAllCameraLink"
   client := NewClient()
   body, err := client.DoGetRequest(url, nil, nil)
   if err != nil {
      return false,nil
   }
   var res Result
   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
}