zhangzengfei
2024-10-19 1ca4879df9cc3c22181b2a200aa4b793116d3d35
service/server.go
@@ -13,7 +13,6 @@
   "io/ioutil"
   "net/http"
   "regexp"
   "strings"
)
func ConnectControl() bool {
@@ -30,7 +29,7 @@
}
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": {
@@ -66,10 +65,10 @@
   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": {
@@ -91,8 +90,7 @@
        }
    ]
}`
   //fmt.Println(url)
   //fmt.Println(queryDSL)
   buf, err := esutil.EsReq("POST", url, []byte(queryDSL))
   if err != nil {
      return nil, err
@@ -104,74 +102,52 @@
   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 {
@@ -217,7 +193,7 @@
}
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":{
@@ -244,7 +220,7 @@
}
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"