| | |
| | | "io/ioutil" |
| | | "net/http" |
| | | "regexp" |
| | | "strings" |
| | | ) |
| | | |
| | | func ConnectControl() bool { |
| | |
| | | } |
| | | |
| | | func GetTotal() (total int, err error) { |
| | | url := "http://" + config.Options.EsUrl + "/ai_ocean/_search" |
| | | url := "http://" + config.Options.EsUrl + "/ai_face_ocean/_search" |
| | | queryDSL := `{ |
| | | "size": "1", |
| | | "query": { |
| | |
| | | return totals, nil |
| | | } |
| | | |
| | | func GetData() (interface{}, error) { |
| | | func GetData() (*model.PushDataInfoV2, error) { |
| | | //fmt.Println(config.Options.EsUrl) |
| | | //fmt.Println(config.Options.ServerUrl) |
| | | url := "http://" + config.Options.EsUrl + "/ai_ocean/_search" |
| | | url := "http://" + config.Options.EsUrl + "/ai_face_ocean/_search" |
| | | queryDSL := `{ |
| | | "size": "1", |
| | | "query": { |
| | |
| | | } |
| | | ] |
| | | }` |
| | | //fmt.Println(url) |
| | | //fmt.Println(queryDSL) |
| | | |
| | | buf, err := esutil.EsReq("POST", url, []byte(queryDSL)) |
| | | if err != nil { |
| | | return nil, err |
| | |
| | | if len(source) == 0 { |
| | | return nil, nil |
| | | } |
| | | picMaxImages := make([][]byte, 0) // 存储图片数据的数组 |
| | | if source[0]["picMaxUrl"].([]interface{}) != nil { |
| | | //picMaxUrls := source[0]["picMaxUrl"].([]interface{}) |
| | | if len(source[0]["picMaxUrl"].([]interface{})) > 0 { |
| | | for _, picMaxUrl := range source[0]["picMaxUrl"].([]interface{}) { |
| | | picMaxImageData, err := GetImageData("http://" + picMaxUrl.(string)) |
| | | if err != nil { |
| | | logger.Warn("获取大图数据失败:", err.Error()) |
| | | continue |
| | | } |
| | | picMaxImages = append(picMaxImages, picMaxImageData) |
| | | } |
| | | |
| | | b, _ := json.Marshal(source[0]) |
| | | |
| | | var esInfoV2 model.ESInfoV2 |
| | | err = json.Unmarshal(b, &esInfoV2) |
| | | if err != nil { |
| | | return nil, err |
| | | } |
| | | |
| | | picMaxImages := make([]byte, 0) // 存储图片数据的数组 |
| | | if esInfoV2.PicMaxUrl != "" { |
| | | picMaxImages, err = GetImageData("http://" + esInfoV2.PicMaxUrl) |
| | | if err != nil { |
| | | logger.Warn("获取大图数据失败:", err.Error()) |
| | | } |
| | | } |
| | | |
| | | if len(picMaxImages) == 0 { |
| | | return nil, errors.New("获取大图失败, id:" + source[0]["id"].(string)) |
| | | return nil, errors.New("获取大图失败, id:" + esInfoV2.TargetInfo.PicSmUrl) |
| | | } |
| | | |
| | | //fmt.Println("图片数据数组大小:", len(picMaxImages)) |
| | | |
| | | picSmImages := make([][]byte, 0) // 存储图片数据的数组 |
| | | if source[0]["targetInfo"].(interface{}) != nil { |
| | | for _, target := range source[0]["targetInfo"].([]interface{}) { |
| | | info := target.(map[string]interface{}) |
| | | picSmUrl := info["picSmUrl"].(string) |
| | | if picSmUrl == "" { |
| | | continue |
| | | } |
| | | picSmImageData, err := GetImageData("http://" + picSmUrl) |
| | | if err != nil { |
| | | fmt.Println("获取小图数据失败:", err) |
| | | continue |
| | | } |
| | | picSmImages = append(picSmImages, picSmImageData) |
| | | picSmImages := make([]byte, 0) // 存储图片数据的数组 |
| | | if esInfoV2.TargetInfo.PicSmUrl != "" { |
| | | picSmImages, err = GetImageData("http://" + esInfoV2.TargetInfo.PicSmUrl) |
| | | if err != nil { |
| | | fmt.Println("获取小图数据失败:", err) |
| | | } |
| | | } |
| | | |
| | | if len(picSmImages) == 0 { |
| | | return nil, errors.New("获取小图数据失败, id:" + source[0]["id"].(string)) |
| | | return nil, errors.New("获取小图数据失败, id:" + esInfoV2.Id) |
| | | } |
| | | |
| | | // 上报机构名称 |
| | | //source[0]["orgName"] = config.Options.OrgName |
| | | |
| | | cameraAddr := source[0]["cameraAddr"].(string) |
| | | if len(cameraAddr) > 6 { |
| | | if cameraAddr[len(cameraAddr)-3:] == "楼" { |
| | | cameraAddr = cameraAddr[:len(cameraAddr)-3] + "F" |
| | | } |
| | | if cameraAddr[len(cameraAddr)-3:] == "层" { |
| | | cameraAddr = cameraAddr[:len(cameraAddr)-3] + "F" |
| | | } |
| | | } |
| | | |
| | | if strings.HasSuffix(cameraAddr, "F") { |
| | | model.PushDataInfoV2.CameraFloor = extractFloor(cameraAddr) |
| | | } else { |
| | | model.PushDataInfoV2.CameraFloor = "" |
| | | } |
| | | |
| | | model.PushDataInfoV2.CameraId = source[0]["cameraId"].(string) |
| | | model.PushDataInfoV2.PicDate = source[0]["picDate"].(string) |
| | | model.PushDataInfoV2.PicId = source[0]["id"].(string) |
| | | model.PushDataInfoV2.PicMaxImages = picMaxImages |
| | | model.PushDataInfoV2.PicSmImages = picSmImages |
| | | var pushData = new(model.PushDataInfoV2) |
| | | pushData.CameraId = esInfoV2.CameraId |
| | | pushData.PicDate = esInfoV2.PicDate |
| | | pushData.PicId = esInfoV2.Id |
| | | pushData.CameraFloor = esInfoV2.CameraLocation.Floor |
| | | pushData.Direction = esInfoV2.CameraLocation.Direction |
| | | pushData.PicMaxImages = append(pushData.PicMaxImages, picMaxImages) |
| | | pushData.PicSmImages = append(pushData.PicSmImages, picSmImages) |
| | | //fmt.Println(model.PushDataInfo.SourceData) |
| | | return model.PushDataInfoV2, nil |
| | | |
| | | return pushData, nil |
| | | } |
| | | |
| | | func extractFloor(s string) string { |
| | |
| | | } |
| | | |
| | | func DeleteData(id string) bool { |
| | | url := "http://" + config.Options.EsUrl + "/ai_ocean/_delete_by_query?refresh=true" |
| | | url := "http://" + config.Options.EsUrl + "/ai_face_ocean/_delete_by_query?refresh=true" |
| | | deleteDSL := `{ |
| | | "query":{ |
| | | "bool":{ |
| | |
| | | } |
| | | |
| | | func MarkData(id string) bool { |
| | | url := "http://" + config.Options.EsUrl + "/ai_ocean/_update_by_query?refresh=true" |
| | | url := "http://" + config.Options.EsUrl + "/ai_face_ocean/_update_by_query?refresh=true" |
| | | markDSL := `{ |
| | | "script": { |
| | | "source": "ctx._source.isDelete=true" |