zhangzengfei
2024-10-22 2c77f012601b7788dc58b0c9fd99aad587983b0d
repository/captureRepo.go
@@ -3,8 +3,6 @@
import (
   "encoding/base64"
   "encoding/json"
   "strconv"
   "strings"
   "time"
   "gat1400Exchange/client"
@@ -53,7 +51,7 @@
               bgImageStr = image.Data
            }
         } else if image.StoragePath != "" {
            imgData, err := util.ImageDownload(image.StoragePath, nil)
            imgData, err := pkg.ImageDownload(image.StoragePath, nil)
            if err != nil {
               logger.Warn("Image download failure, %s", err.Error())
            } else {
@@ -89,24 +87,24 @@
      // 转发图像
      logger.Debug("Prepare forward image, deviceId:%s, bgImage len:%d, smImage len:%d server:%s", deviceId, len(bgImageBytes), len(faceImageBytes), config.ForwardConf.SyncServer)
      if deviceId != "" && bgImageStr != "" && config.ForwardConf.SyncServer != "" {
         pd := c.PackPushDataV2(deviceId, faceId, face.FaceAppearTime, bgImageBytes, faceImageBytes)
         if pd == nil {
         pushData := c.PackPushDataV2(deviceId, faceId, face.FaceAppearTime, bgImageBytes, faceImageBytes)
         if pushData == nil {
            return
         }
         // 处理梯控填写的楼层信息 暂时使用otherFeature字段
         if face.OtherFeature != "" && pd.CameraFloor == "" {
            pd.Direction, pd.CameraFloor, _ = pkg.RestoreFloor(face.OtherFeature)
         if face.OtherFeature != "" && pushData.CameraFloor == "" {
            pushData.Direction, pushData.CameraFloor, _ = pkg.RestoreFloor(face.OtherFeature)
         }
         payload, err := json.Marshal(pd)
         payload, err := json.Marshal(pushData)
         if err != nil {
            logger.Warn("Marshal error, %s", err.Error())
            return
         }
         if !util.SendData(payload, config.ForwardConf.SyncServer) {
            cacheItem, _ := json.Marshal(pd)
         if !pkg.SendData(payload, config.ForwardConf.SyncServer) {
            cacheItem, _ := json.Marshal(pushData)
            c.CacheData(cacheItem, "basic")
            logger.Warn("The data forwarding failed, adding to local cache.")
         } else {
@@ -147,7 +145,7 @@
               bgImageStr = image.Data
            }
         } else if image.StoragePath != "" {
            imgData, err := util.ImageDownload(image.StoragePath, nil)
            imgData, err := pkg.ImageDownload(image.StoragePath, nil)
            if err != nil {
               logger.Warn("Image download failure, %s", err.Error())
            } else {
@@ -190,7 +188,7 @@
            return
         }
         if !util.SendData(payload, config.ForwardConf.SyncServer) {
         if !pkg.SendData(payload, config.ForwardConf.SyncServer) {
            cacheItem, _ := json.Marshal(pd)
            c.CacheData(cacheItem, "basic")
            logger.Warn("The data forwarding failed, adding to local cache.")
@@ -221,7 +219,7 @@
      for i := 0; i < config.NVCSConf.WaitRunTime; i++ {
         if runState = nvcs.CurrentRunState(); runState.Floor != "" && runState.Floor != floor {
            runDir = compareFloor(floor, runState.Floor)
            runDir = pkg.CheckDirection(floor, runState.Floor)
            break
         }
@@ -274,7 +272,7 @@
      for i := 0; i < config.NVCSConf.WaitRunTime; i++ {
         if runState = nvcs.CurrentRunState(); runState.Floor != "" && runState.Floor != floor {
            runDir = compareFloor(floor, runState.Floor)
            runDir = pkg.CheckDirection(floor, runState.Floor)
            break
         }
@@ -282,7 +280,7 @@
      }
      for idx, _ := range msg.FaceListObject.FaceObject {
         msg.FaceListObject.FaceObject[idx].OtherFeature, _ = pkg.ParseFloor(runDir, floor)
         msg.FaceListObject.FaceObject[idx].OtherFeature, _ = pkg.BuildFloorString(runDir, floor)
         //if config.ClientConf.AddFloorToFaceId {
         //   msg.FaceListObject.FaceObject[idx].FaceID = pkg.GenerateFaceIdContainFloor(face.FaceID, devPos.Pos)
         //}
@@ -336,30 +334,8 @@
   logger.Debug("Pub record message %s, %s", deviceId, msgId)
   body, _ := json.Marshal(&msg)
   _, err := util.HttpPost(config.ForwardConf.RecordServer, nil, body)
   _, err := pkg.HttpPost(config.ForwardConf.RecordServer, nil, body)
   if err != nil {
      logger.Warn(err.Error())
   }
}
func compareFloor(str1, str2 string) string {
   // 去掉字符串最后一个字符 'F'
   numStr1 := strings.TrimSuffix(str1, "F")
   numStr2 := strings.TrimSuffix(str2, "F")
   // 转换为 int 类型
   num1, err1 := strconv.Atoi(numStr1)
   num2, err2 := strconv.Atoi(numStr2)
   // 检查转换是否成功
   if err1 != nil || err2 != nil {
      return ""
   }
   // 比较两个整数的大小
   if num1 > num2 {
      return "2"
   } else {
      return "1"
   }
}