From eac671d64f4f6c24d7ac31646a95d5399734f346 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期三, 21 九月 2022 17:37:26 +0800 Subject: [PATCH] 报警接口图片数据处理 --- ycl-platform/src/main/java/com/ycl/service/videoAlarm/impl/VideoAlarmReportServiceImpl.java | 66 +++++++++++++++++++++++--------- 1 files changed, 47 insertions(+), 19 deletions(-) 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