From eac671d64f4f6c24d7ac31646a95d5399734f346 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期三, 21 九月 2022 17:37:26 +0800
Subject: [PATCH] 报警接口图片数据处理
---
ycl-common/src/main/java/com/ycl/controller/FileController.java | 7 +++
ycl-common/src/main/java/com/ycl/utils/MediaFileUtil.java | 4 ++
ycl-platform/src/main/java/com/ycl/service/videoAlarm/impl/VideoAlarmReportServiceImpl.java | 66 +++++++++++++++++++++++---------
3 files changed, 57 insertions(+), 20 deletions(-)
diff --git a/ycl-common/src/main/java/com/ycl/controller/FileController.java b/ycl-common/src/main/java/com/ycl/controller/FileController.java
index 9592f8c..a4bcc03 100644
--- a/ycl-common/src/main/java/com/ycl/controller/FileController.java
+++ b/ycl-common/src/main/java/com/ycl/controller/FileController.java
@@ -14,9 +14,14 @@
@Api(tags = "鏂囦欢涓婁紶")
@RequestMapping("/file")
public class FileController {
- @Autowired
+
private MediaFileUtil mediaFileUtil;
+ @Autowired
+ public void setMediaFileUtil(MediaFileUtil mediaFileUtil) {
+ this.mediaFileUtil = mediaFileUtil;
+ }
+
/**
* 涓婁紶鍥剧墖
*
diff --git a/ycl-common/src/main/java/com/ycl/utils/MediaFileUtil.java b/ycl-common/src/main/java/com/ycl/utils/MediaFileUtil.java
index c89c30d..2efdc41 100644
--- a/ycl-common/src/main/java/com/ycl/utils/MediaFileUtil.java
+++ b/ycl-common/src/main/java/com/ycl/utils/MediaFileUtil.java
@@ -97,6 +97,10 @@
}
}
+ public String savePicture(InputStream inputStream, String ext) throws Exception {
+ StorePath sp = storageClient.uploadFile(groupName, inputStream, inputStream.available(), ext);
+ return sp.getFullPath();
+ }
public Media savePicture(MultipartFile file, String ext, PictureZoomParameter zoomPar) throws Exception {
diff --git a/ycl-platform/src/main/java/com/ycl/service/videoAlarm/impl/VideoAlarmReportServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/videoAlarm/impl/VideoAlarmReportServiceImpl.java
index 58a069d..14414c1 100644
--- a/ycl-platform/src/main/java/com/ycl/service/videoAlarm/impl/VideoAlarmReportServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/videoAlarm/impl/VideoAlarmReportServiceImpl.java
@@ -2,14 +2,24 @@
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.dto.media.Media;
+import com.ycl.dto.media.PictureZoomParameter;
import com.ycl.dto.videoAlarm.AlarmDataParam;
import com.ycl.dto.videoAlarm.AlarmParam;
import com.ycl.dto.videoAlarm.CameraInfParam;
import com.ycl.entity.videoAlarm.VideoAlarmReport;
import com.ycl.mapper.videoAlarm.VideoAlarmReportMapper;
import com.ycl.service.videoAlarm.IVideoAlarmReportService;
+import com.ycl.utils.MediaFileUtil;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+import javax.xml.bind.DatatypeConverter;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Instant;
@@ -28,32 +38,50 @@
@Service
public class VideoAlarmReportServiceImpl extends ServiceImpl<VideoAlarmReportMapper, VideoAlarmReport> implements IVideoAlarmReportService {
+ private MediaFileUtil mediaFileUtil;
+
+ @Autowired
+ public void setMediaFileUtil(MediaFileUtil mediaFileUtil) {
+ this.mediaFileUtil = mediaFileUtil;
+ }
+
@Override
public void save(AlarmParam alarmParam) {
if (alarmParam != null && alarmParam.getAlarmData().size() > 0) {
CameraInfParam cameraInf = alarmParam.getCameraInf();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
- String picData = "{}";
- for (int i = 0; i < alarmParam.getAlarmData().size(); i++) {
- AlarmDataParam alarmData = alarmParam.getAlarmData().get(i);
- /******************** 澶勭悊鍥剧墖 **********************/
- try {
- Date date = sdf.parse(alarmData.getAlarmTime());
- Instant instant = date.toInstant();
- ZoneId zoneId = ZoneId.systemDefault();
+ String picData = "";
+ String[] strings = alarmParam.getPicData().split(",");
+ String extension = "jpg";
- VideoAlarmReport videoAlarmReport = VideoAlarmReport.builder()
- .ip(cameraInf.getIp()).port(cameraInf.getPort())
- .user(cameraInf.getUser()).password(cameraInf.getPassword())
- .channel(cameraInf.getChannel()).platResourceId(cameraInf.getPlatResourceID())
- .picData(picData).alarmTime(instant.atZone(zoneId).toLocalDateTime())
- .alarmId(alarmData.getAlarmID()).algoType(alarmData.getAlgoType())
- .algoName(alarmData.getAlgoName()).alarmObj(JSON.toJSONString(alarmData.getAlarmObject()))
- .build();
- baseMapper.insert(videoAlarmReport);
- } catch (ParseException e) {
- e.printStackTrace();
+ byte[] data = DatatypeConverter.parseBase64Binary(strings[1]);
+ InputStream inputStream = new ByteArrayInputStream(data);
+ try {
+ picData = mediaFileUtil.savePicture(inputStream, extension);
+
+ for (int i = 0; i < alarmParam.getAlarmData().size(); i++) {
+ AlarmDataParam alarmData = alarmParam.getAlarmData().get(i);
+ /******************** 澶勭悊鍥剧墖 **********************/
+ try {
+ Date date = sdf.parse(alarmData.getAlarmTime());
+ Instant instant = date.toInstant();
+ ZoneId zoneId = ZoneId.systemDefault();
+
+ VideoAlarmReport videoAlarmReport = VideoAlarmReport.builder()
+ .ip(cameraInf.getIp()).port(cameraInf.getPort())
+ .user(cameraInf.getUser()).password(cameraInf.getPassword())
+ .channel(cameraInf.getChannel()).platResourceId(cameraInf.getPlatResourceID())
+ .picData(picData).alarmTime(instant.atZone(zoneId).toLocalDateTime())
+ .alarmId(alarmData.getAlarmID()).algoType(alarmData.getAlgoType())
+ .algoName(alarmData.getAlgoName()).alarmObj(JSON.toJSONString(alarmData.getAlarmObject()))
+ .build();
+ baseMapper.insert(videoAlarmReport);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
}
+ } catch (Exception e) {
+ e.printStackTrace();
}
}
}
--
Gitblit v1.8.0