package dbapi import ( "basic.com/pubsub/protomsg.git" "encoding/json" "strconv" ) type TaskApi struct { Ip string Port int } func (api TaskApi) 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 TaskApi) FindAll() (taskInfos []protomsg.TaskSdkInfo) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/task/findAll" client := NewClient() respBody, err := client.DoGetRequest(url, nil, nil) if err !=nil { return taskInfos } var res Result if err = json.Unmarshal(respBody, &res); err != nil { logPrint(err) return taskInfos } bytes, _ := json.Marshal(res.Data) err = json.Unmarshal(bytes, &taskInfos) return taskInfos } func (api TaskApi) FindAllTaskDefaultArgs(scope string)(taskInfos []protomsg.TaskSdkInfo) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/task/findAll" client := NewClient() queryParam := map[string]string { "scope": scope, } respBody, err := client.DoGetRequest(url, queryParam, nil) if err !=nil { return taskInfos } var res Result if err = json.Unmarshal(respBody, &res); err != nil { logPrint(err) return taskInfos } bytes, _ := json.Marshal(res.Data) err = json.Unmarshal(bytes, &taskInfos) return taskInfos } func (api TaskApi) FindAllTaskSdkRun() (taskSdks []protomsg.TaskSdkRun) { taskInfos := api.FindAll() if taskInfos !=nil { for _,ti :=range taskInfos{ if !ti.Task.Enable { continue } tsr := protomsg.TaskSdkRun{ Task:ti.Task, } m := make(map[string]string,0) for _,s := range ti.Sdks{ if _,ok :=m[s.IpcId];!ok{ m[s.IpcId] = s.IpcId tsr.Sdks = append(tsr.Sdks,&protomsg.SdkRun{ IpcId:s.IpcId, SdkType:s.SdkType, }) } } taskSdks = append(taskSdks,tsr) } } return taskSdks } func (api TaskApi) Add(paramBody map[string]interface{}) (bool,interface{}) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/task/addTask" client := NewClient() respBody, err := client.DoPostRequest(url, CONTENT_TYPE_JSON, paramBody, nil, nil) if err != nil { return false,nil } var res Result if err = json.Unmarshal(respBody, &res); err != nil { logPrint(err) return false,nil } return res.Success,res.Data } func (api TaskApi) Delete(taskId string) (bool,interface{}){ url := api.getBasicUrl() + DATA_URL_PREFIX + "/task/delete" client := NewClient() paramQuery :=make(map[string]string,0) paramQuery["taskId"] = taskId respBody, err := client.DoGetRequest(url, paramQuery, nil) if err != nil { return false,nil } var res Result if err = json.Unmarshal(respBody, &res); err != nil { return false,nil } return res.Success,res.Data } func (api TaskApi) AddTaskSdk(paramBody map[string]interface{}) (bool,interface{}) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/task/addTaskSdk" client := NewClient() respBody, err := client.DoPostRequest(url,CONTENT_TYPE_JSON, paramBody, nil,nil) if err != nil { return false,nil } var res Result if err = json.Unmarshal(respBody, &res); err != nil { return false,nil } return res.Success,res.Data } func (api TaskApi) UpdateTaskName(taskId string, taskName string) bool { url := api.getBasicUrl() + DATA_URL_PREFIX + "/task/updateTaskName" client := NewClient() paramBody := make(map[string]interface{},0) paramBody["taskId"] = taskId paramBody["taskName"] = taskName respBody, err := client.DoPostRequest(url, CONTENT_TYPE_FORM, paramBody, nil, nil) if err != nil { return false } var res Result if err = json.Unmarshal(respBody, &res); err != nil { return false } return res.Success } func (api TaskApi) UpdateTaskStatus(paramBody map[string]interface{}) (bool,interface{}) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/task/updateTaskStatus" client := NewClient() respBody, err := client.DoPostRequest(url, CONTENT_TYPE_JSON, paramBody, nil, nil) if err != nil { return false,nil } var res Result if err = json.Unmarshal(respBody, &res); err != nil { return false,nil } return res.Success,res.Data } func (api TaskApi) DeleteTaskSdk(taskId string,sdkId string) (bool,interface{}) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/task/delTaskSdk" client := NewClient() paramQuery :=make(map[string]string,0) paramQuery["taskId"] = taskId paramQuery["sdkId"] = sdkId respBody, err := client.DoGetRequest(url, paramQuery, nil) if err != nil { return false,nil } var res Result if err = json.Unmarshal(respBody, &res); err != nil { return false,nil } return res.Success,res.Data } func (api TaskApi) StatisticTaskCamera() (bool,interface{}) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/task/statisticTaskCamera" client := NewClient() respBody, err := client.DoGetRequest(url, nil, nil) if err != nil { return false,nil } var res Result if err = json.Unmarshal(respBody, &res); err != nil { return false,nil } return res.Success,res.Data }