From ee6489d21c0aaf8ff0d340691a2833dfed34c01e Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sat, 1 Mar 2025 15:02:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E7=85=A7=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ycwl/basic/constant/StorageConstant.java | 1 + .../basic/controller/viid/ViidController.java | 22 ++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ycwl/basic/constant/StorageConstant.java b/src/main/java/com/ycwl/basic/constant/StorageConstant.java index adedef8..e14af65 100644 --- a/src/main/java/com/ycwl/basic/constant/StorageConstant.java +++ b/src/main/java/com/ycwl/basic/constant/StorageConstant.java @@ -3,4 +3,5 @@ package com.ycwl.basic.constant; public class StorageConstant { public static final String VLOG_PATH = "vlog"; public static final String VIDEO_PIECE_PATH = "source_video"; + public static final String PHOTO_PATH = "source_photo"; } diff --git a/src/main/java/com/ycwl/basic/controller/viid/ViidController.java b/src/main/java/com/ycwl/basic/controller/viid/ViidController.java index 54de905..de63154 100644 --- a/src/main/java/com/ycwl/basic/controller/viid/ViidController.java +++ b/src/main/java/com/ycwl/basic/controller/viid/ViidController.java @@ -3,6 +3,7 @@ package com.ycwl.basic.controller.viid; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.ycwl.basic.annotation.IgnoreLogReq; import com.ycwl.basic.annotation.IgnoreToken; import com.ycwl.basic.annotation.RequestToFile; @@ -12,6 +13,7 @@ import com.ycwl.basic.mapper.SourceMapper; import com.ycwl.basic.model.pc.device.entity.DeviceConfigEntity; import com.ycwl.basic.model.pc.device.entity.DeviceEntity; import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleEntity; +import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity; import com.ycwl.basic.model.pc.source.entity.SourceEntity; import com.ycwl.basic.model.viid.entity.DeviceIdObject; import com.ycwl.basic.model.viid.entity.FaceListObject; @@ -28,9 +30,12 @@ import com.ycwl.basic.model.viid.req.UnRegisterReq; import com.ycwl.basic.model.viid.resp.SystemTimeResp; import com.ycwl.basic.model.viid.resp.VIIDBaseResp; import com.ycwl.basic.repository.DeviceRepository; +import com.ycwl.basic.repository.ScenicRepository; import com.ycwl.basic.service.task.TaskFaceService; import com.ycwl.basic.storage.StorageFactory; import com.ycwl.basic.storage.adapters.IStorageAdapter; +import com.ycwl.basic.storage.enums.StorageAcl; +import com.ycwl.basic.storage.utils.StorageUtil; import com.ycwl.basic.task.DynamicTaskGenerator; import com.ycwl.basic.utils.ImageUtils; import com.ycwl.basic.utils.IpUtils; @@ -50,10 +55,13 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; +import java.util.Map; import java.util.TimeZone; import java.util.UUID; import java.util.stream.Collectors; +import static com.ycwl.basic.constant.StorageConstant.PHOTO_PATH; + @IgnoreToken @RestController @Api(tags = "摄像头对接接口") @@ -67,6 +75,8 @@ public class ViidController { private SourceMapper sourceMapper; @Autowired private DeviceRepository deviceRepository; + @Autowired + private ScenicRepository scenicRepository; // region 注册注销基础接口 /** @@ -244,6 +254,14 @@ public class ViidController { if (scenicId == null) { continue; } + IStorageAdapter scenicStorageAdapter; + ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId); + if (scenicConfig != null && scenicConfig.getStoreType() != null) { + scenicStorageAdapter = StorageFactory.get(scenicConfig.getStoreType()); + scenicStorageAdapter.loadConfig(JSONObject.parseObject(scenicConfig.getStoreConfigJson(), Map.class)); + } else { + scenicStorageAdapter = StorageFactory.use("video"); + } FacePositionObject facePosition = new FacePositionObject(); facePosition.setLtY(face.getLeftTopY()); facePosition.setLtX(face.getLeftTopX()); @@ -293,7 +311,9 @@ public class ViidController { source.setType(2); // 上传oss MultipartFile _file = ImageUtils.base64ToMultipartFile(_subImage.getData()); - String _sourceUrl = adapter.uploadFile(_file, "user-photo", UUID.randomUUID() + "." + ext); + String filename = StorageUtil.joinPath(PHOTO_PATH, UUID.randomUUID() + "." + ext); + String _sourceUrl = scenicStorageAdapter.uploadFile(_file, filename); + scenicStorageAdapter.setAcl(StorageAcl.PUBLIC_READ, filename); source.setUrl(_sourceUrl); source.setPosJson(JSON.toJSONString(facePosition)); sourceMapper.add(source);