From e72382b8c3093ac8cbbb3b79147c3387d37e8ffb Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期五, 17 五月 2024 22:20:20 +0800
Subject: [PATCH] 添加图片下载功能

---
 repository/captureRepo.go |   41 +++++++++++++++++++++++++++--------------
 1 files changed, 27 insertions(+), 14 deletions(-)

diff --git a/repository/captureRepo.go b/repository/captureRepo.go
index cddc2a6..505d6dc 100644
--- a/repository/captureRepo.go
+++ b/repository/captureRepo.go
@@ -3,9 +3,9 @@
 import (
 	"encoding/base64"
 	"encoding/json"
-	"gat1400Exchange/client"
 	"time"
 
+	"gat1400Exchange/client"
 	"gat1400Exchange/config"
 	"gat1400Exchange/models"
 	"gat1400Exchange/pkg/logger"
@@ -43,16 +43,31 @@
 
 		// 鑾峰彇澶у浘, 鐩墠娴峰悍鐨勫皬鍥惧垎杈ㄧ巼澶綆
 		for _, image := range face.SubImageList.SubImageInfoObject {
-			if len(image.Data) > len(bgImageStr) {
-				bgImageStr = image.Data
-				imageType = image.Type
+			if imageType != "14" {
+				continue
+			}
+
+			if len(image.Data) > 0 {
+				if len(image.Data) > len(bgImageStr) {
+					bgImageStr = image.Data
+				}
+			} else if image.StoragePath != "" {
+				imgData, err := util.ImageDownload(image.StoragePath, nil)
+				if err != nil {
+					logger.Warn("Image download failure, %s", err.Error())
+				} else {
+					bgImageBytes = imgData
+					bgImageStr = "///"
+				}
 			}
 		}
 
-		bgImageBytes, err = base64.StdEncoding.DecodeString(bgImageStr)
-		if err != nil {
-			logger.Warn("Decode Image Base64 String failure, %s", err.Error())
-			continue
+		if bgImageBytes == nil {
+			bgImageBytes, err = base64.StdEncoding.DecodeString(bgImageStr)
+			if err != nil {
+				logger.Warn("Decode Image Base64 String failure, %s", err.Error())
+				continue
+			}
 		}
 
 		// 鍒ゆ柇鍥剧墖绫诲瀷鏄惁涓哄満鏅浘, 鏍规嵁浜鸿劯鍧愭爣鍒囧皬鍥�.
@@ -71,18 +86,16 @@
 		}
 
 		// 杞彂鍥惧儚
-		logger.Debug("Prepare forward image, deviceId:%s, image len:%d, server:%s", deviceId, len(bgImageStr), config.ForwardConf.SyncServer)
+		logger.Debug("Prepare forward image, deviceId:%s, image len:%d, server:%s", deviceId, len(bgImageBytes), config.ForwardConf.SyncServer)
 		if deviceId != "" && bgImageStr != "" && config.ForwardConf.SyncServer != "" {
 			pd := c.PackPushDataV2(deviceId, faceId, face.FaceAppearTime, bgImageBytes, faceImageBytes)
 			if pd == nil {
 				return
 			}
 
-			// 閮ㄧ讲鍦ㄦ湇鍔$鐨�1400浠g悊, 浠呮帴鏀�1400淇℃伅, 妤煎眰淇℃伅鏆傚瓨鍦╫herFeature瀛楁
-			if config.ServeConf.Role == "proxy" {
-				if face.OtherFeature != "" {
-					pd.CameraFloor = face.OtherFeature
-				}
+			// 澶勭悊姊帶濉啓鐨勬ゼ灞備俊鎭� 鏆傛椂浣跨敤oherFeature瀛楁
+			if face.OtherFeature != "" {
+				pd.CameraFloor = face.OtherFeature
 			}
 
 			payload, err := json.Marshal(pd)

--
Gitblit v1.8.0