| | |
| | | if (!newPhotos.isEmpty()) { |
| | | // 插入新的图片记录 |
| | | addPhotos(flightTask, newPhotos); |
| | | |
| | | // 更新任务的图片数量 |
| | | flightTask.setPhotoCount(flightTask.getPhotoCount() + newPhotos.size()); |
| | | ardFlightTaskMapper.updateArdFlightTask(flightTask); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | private void addPhotos1(ArdFlightTask flightTask, List<BoxPhotosReceiver> photoList) { |
| | | log.warn("开始添加图片"); |
| | | String boxSn = flightTask.getBoxSn(); |
| | | for (BoxPhotosReceiver photo : photoList) { |
| | | ArdMediaPic ardMedia = ArdMediaPic.builder() |
| | | .id(photo.getPhotoId()) |
| | | .taskId(flightTask.getTaskId()) |
| | | .fileSize(photo.getFileSize()) |
| | | .fileMd5(photo.getFileMd5()) |
| | | .sourceUrl(photo.getImgUrl()) |
| | | .longitude(photo.getLng()) |
| | | .latitude(photo.getLat()) |
| | | .height(photo.getHeight()) |
| | | .captureTime(DateUtils.parseDate(photo.getTimeStamp())) |
| | | .build(); |
| | | String url = ""; |
| | | try { |
| | | InputStream inputStream = openUrlInputStream(photo.getImgUrl(), 5000, 10000); |
| | | if (inputStream != null) { |
| | | url = ossServiceContext.upload( |
| | | "pic", |
| | | boxSn + "/" + ardMedia.getId() + ".jpg", |
| | | inputStream, |
| | | MimeTypeUtils.IMAGE_JPG |
| | | ); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | ardMedia.setMediaUrl(url); |
| | | ardMedia.setCreateTime(new Date()); |
| | | ardMediaPicMapper.insertPic(ardMedia); |
| | | } |
| | | } |
| | | private void addPhotos(ArdFlightTask flightTask, List<BoxPhotosReceiver> photoList) { |
| | | log.warn("开始添加图片"); |
| | | String boxSn = flightTask.getBoxSn(); |
| | |
| | | } |
| | | } |
| | | |
| | | private void addVideos1(ArdFlightTask flightTask, List<BoxVideosReceiver> videoList) { |
| | | log.warn("开始添加视频"); |
| | | String boxSn = flightTask.getBoxSn(); |
| | | for (BoxVideosReceiver video : videoList) { |
| | | ArdMediaVideo ardMedia = ArdMediaVideo.builder() |
| | | .id(video.getId()) |
| | | .name(video.getName()) |
| | | .taskId(flightTask.getTaskId()) |
| | | .fileSize(getFileSizeByUrl(video.getImgUrl())) |
| | | .sourceUrl(video.getImgUrl()) |
| | | .startTime(DateUtils.parseDate(video.getStartTime())) |
| | | .endTime(DateUtils.parseDate(video.getEndTime())) |
| | | .spanSeconds(Integer.parseInt(video.getSpanSeconds())) |
| | | .build(); |
| | | |
| | | // 视频上传 |
| | | String videoUrl = null; |
| | | try (InputStream videoStream = openUrlInputStream(ardMedia.getSourceUrl(), 5000, 10000)) { |
| | | if (videoStream != null) { |
| | | videoUrl = ossServiceContext.upload("record", boxSn + "/" + ardMedia.getId() + ".mp4", videoStream, MimeTypeUtils.VIDEO_MP4); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("视频上传失败 taskId={}, videoId={}", flightTask.getTaskId(), video.getId(), e); |
| | | } |
| | | |
| | | // 缩略图上传(失败不影响视频入库) |
| | | String thumbUrl = null; |
| | | try (ByteArrayInputStream thumbStream = generateThumbnail(ardMedia.getSourceUrl(), 1, 200)) { |
| | | if (thumbStream != null) { |
| | | thumbUrl = ossServiceContext.upload("record", boxSn + "/" + ardMedia.getId() + ".jpg", thumbStream, MimeTypeUtils.IMAGE_JPEG); |
| | | } |
| | | } catch (Exception e) { |
| | | log.warn("缩略图生成或上传失败 taskId={}, videoId={}", flightTask.getTaskId(), video.getId(), e); |
| | | } |
| | | |
| | | // 入库(即使缩略图为空也入库) |
| | | ardMedia.setMediaUrl(videoUrl); |
| | | ardMedia.setThumbnailUrl(thumbUrl); |
| | | ardMedia.setCreateTime(new Date()); |
| | | ardMediaVideoMapper.insertArdMediaVideo(ardMedia); |
| | | } |
| | | } |
| | | private void addVideos(ArdFlightTask flightTask, List<BoxVideosReceiver> videoList) { |
| | | String boxSn = flightTask.getBoxSn(); |
| | | |
| | |
| | | }, threadPoolTaskExecutor); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | // 获取文件大小 |
| | | private long getFileSizeByUrl(String fileUrl) { |