package dbapi import ( "basic.com/pubsub/protomsg.git" "encoding/json" "strconv" ) type DbPersonApi struct { Ip string Port int } func (api DbPersonApi) 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 DbPersonApi) QueryDbPersonsByTbId(paramBody map[string]interface{}) (bool,interface{}) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/dbperson/queryDbPersonsByTbId" 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 { return false,nil } return res.Success,res.Data } func (api DbPersonApi) UpdateDbPerson(paramBody map[string]interface{}) (bool,interface{}) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/dbperson/updateDbPerson" 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 { return false,nil } return res.Success,res.Data } func (api DbPersonApi) UpdateFace(id string,faceFeature string, pic string) (bool,interface{}) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/dbperson/updateFace" client := NewClient() paramBody := map[string]interface{}{ "id": id, "faceFeature": faceFeature, "personPicUrl": pic, } 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 { return false,nil } return res.Success,res.Data } func (api DbPersonApi) AddDbPerson(paramBody map[string]interface{}) (bool,interface{}) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/dbperson/addDbPerson" client := NewClient() body,err := client.DoPutRequest(url,CONTENT_TYPE_JSON, paramBody,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 DbPersonApi) DeleteDbPerson(id string) (bool,interface{}) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/dbperson/deleteDbPersonById/"+id client := NewClient() body,err := client.DoPostRequest(url,CONTENT_TYPE_JSON, nil,nil,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 DbPersonApi) DeleteMoreDbPerson(paramBody map[string]interface{}) (bool,interface{}) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/dbperson/deleteMoreDbPerson" 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 { return false,nil } return res.Success,res.Data } func (api DbPersonApi) DeletePersonsByTbId(tableId string) (bool,interface{}) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/dbperson/deletePersonsByTbId/"+tableId client := NewClient() body,err := client.DoPostRequest(url,CONTENT_TYPE_JSON, nil,nil,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 } //根据底库人员id查询人员信息详情 func (api DbPersonApi) Dbpersoninfosbyid (ids []string) (persons []protomsg.Dbperson,err error) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/dbperson/dbPersonInfoByIds" client := NewClient() paramBody := map[string]interface{}{ "ids": ids, } body,err := client.DoPostRequest(url,CONTENT_TYPE_JSON, paramBody,nil,nil) if err != nil { return nil,err } var res Result if err = json.Unmarshal(body, &res); err != nil { return nil,err } dataBytes, _ := json.Marshal(res.Data) if err = json.Unmarshal(dataBytes, &persons);err !=nil { return nil,err } return persons,nil } func (api DbPersonApi) GetPersonTotal (tableId string) (total int64,err error) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/dbperson/getPersonTotal" client := NewClient() paramBody := map[string]string{ "tableId": tableId, } body,err := client.DoGetRequest(url, paramBody,nil) if err != nil { return 0,err } var res Result if err = json.Unmarshal(body, &res); err != nil { return 0,err } return int64(res.Data.(float64)),nil } func (api DbPersonApi) GetPersonsCompareCacheBase (from int,size int) (persons []*protomsg.Esinfo,err error) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/dbperson/getPersonsCompareCacheBase" client := NewClient() paramBody := map[string]string{ "from": strconv.Itoa(from), "size": strconv.Itoa(size), } body,err := client.DoGetRequest(url, paramBody,nil) if err != nil { return nil,err } var res Result if err = json.Unmarshal(body, &res); err != nil { return nil,err } dataBytes, _ := json.Marshal(res.Data) var arr []protomsg.Esinfo if err = json.Unmarshal(dataBytes, &arr);err !=nil { return nil,err } for _,ei :=range arr { persons = append(persons,&protomsg.Esinfo{ Id: ei.Id, Tableid: ei.Tableid, FaceFeature: ei.FaceFeature, Enable: ei.Enable, }) } return persons,nil } func (api DbPersonApi) FindLikePersonIds (tableIds []string,inputValue string) (interface{},error) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/dbperson/findLikePersonIds" client := NewClient() paramBody := map[string]interface{}{ "tableIds": tableIds, "inputValue": inputValue, } body,err := client.DoPostRequest(url,CONTENT_TYPE_JSON, paramBody,nil,nil) if err != nil { return nil,err } var res Result if err = json.Unmarshal(body, &res); err != nil { return nil,err } return res.Data,nil } func (api DbPersonApi) JoinDbTable (tableIds []string,faceFeature string, personPicUrl string) (bool,interface{}) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/dbperson/findLikePersonIds" client := NewClient() paramBody := map[string]interface{}{ "tableIds": tableIds, "faceFeature": faceFeature, "personPicUrl": personPicUrl, } 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 { return false,nil } return res.Success,res.Data }