qixiaoning
21 小时以前 03880bf61cf059f063e252ef17dfea50c932c9dc
camera-common/models/Record.go
@@ -220,6 +220,10 @@
      // client.WithOffset(offset),
   )
   if err != nil {
   }
   // 2. 提取ID和文件路径
   var ids []int64
   var imgPaths []string
@@ -256,38 +260,29 @@
               VideoPath := VideoPathColumn[i]
               videoPaths = append(videoPaths, VideoPath)
            }
         }
      }
   }
   // 图片删除文件
   deletedFiles := 0
   if len(ids) > 0 {
      idField := entity.NewColumnInt64("id", ids)
      err = do.client.client.DeleteByPks(ctx, collectionName, "", idField)
      if err != nil {
         return 0, fmt.Errorf("failed to delete from Milvus: %v", err)
      }
      err = do.client.client.DeleteByPks(ctx, "smartrag", "", idField)
      if err != nil {
         return 0, fmt.Errorf("failed to delete from Milvus: %v", err)
      }
      deletedFiles = len(ids)
   }
   // 图片删除文件
   deletedFiles := 0
   for _, path := range imgPaths {
      if err := do.deleteFile(path); err != nil {
         logger.Debug("failed to delete file " + path + " " + err.Error())
      } else {
         deletedFiles++
      }
   }
   //删除描述图片
   for _, path := range imgDesPaths {
      if err := do.deleteFile(path); err != nil {
         logger.Debug("failed to delete file " + path + " " + err.Error())
      } else {
         deletedFiles++
      }
   }
@@ -295,9 +290,13 @@
   for _, path := range videoPaths {
      if err := do.deleteFile(path); err != nil {
         logger.Debug("failed to delete file " + path + " " + err.Error())
      } else {
         deletedFiles++
      }
   }
   //删除rag
   err = do.client.client.Delete(ctx, "smartrag", "", filterExpr)
   if err != nil {
      logger.Debug("delete rag failed!")
   }
   return deletedFiles, err
@@ -503,15 +502,27 @@
   lists := convertResultToMap(result)
   layout := "2006-01-02 15:04:05.999999"
   var temp1 time.Time
   var temp2 time.Time
   // var temp1 time.Time
   // var temp2 time.Time
   //排序
   // //排序
   // sort.Slice(lists, func(i, j int) bool {
   //    //return lists[i].DetectTime > lists[j].:DetectTime
   //    temp1, _ = time.Parse(layout, lists[i].DetectTime)
   //    temp2, _ = time.Parse(layout, lists[j].DetectTime)
   //    return temp1.After(temp2)
   // })
   sort.Slice(lists, func(i, j int) bool {
      //return lists[i].DetectTime > lists[j].:DetectTime
      temp1, _ = time.Parse(layout, lists[i].DetectTime)
      temp2, _ = time.Parse(layout, lists[j].DetectTime)
      return temp1.After(temp2)
      t1, err1 := time.Parse(layout, lists[i].DetectTime)
      t2, err2 := time.Parse(layout, lists[j].DetectTime)
      // 错误处理:解析错误的时间排在后面
      if err1 != nil || err2 != nil {
         return err1 == nil && err2 != nil
      }
      return t1.After(t2)
   })
   items := Paginate(lists, int(pageNum), int(pageSize))