From 679ff0ed8c86f067a132a99404f86e8469d7d4dd Mon Sep 17 00:00:00 2001 From: wuyuan <15505152113@163.com> Date: Mon, 12 May 2025 16:04:12 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=92=AD=E6=94=BE=E7=9B=B4?= =?UTF-8?q?=E6=92=AD=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sample/rocketmq/RocketMqConsum.java | 53 ++++++++++++++++++- .../wayline/service/IWaylineJobService.java | 2 + .../service/impl/WaylineJobServiceImpl.java | 8 +++ 3 files changed, 61 insertions(+), 2 deletions(-) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/rocketmq/RocketMqConsum.java b/dk-modules/sample/src/main/java/org/dromara/sample/rocketmq/RocketMqConsum.java index 0341e00..326f5bf 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/rocketmq/RocketMqConsum.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/rocketmq/RocketMqConsum.java @@ -7,12 +7,26 @@ import org.dromara.common.sdk.cloudapi.device.VideoId; import org.dromara.common.sdk.cloudapi.livestream.LensChangeVideoTypeEnum; import org.dromara.common.sdk.cloudapi.livestream.UrlTypeEnum; import org.dromara.common.sdk.cloudapi.livestream.VideoQualityEnum; +import org.dromara.common.sdk.cloudapi.wayline.FlighttaskProgress; +import org.dromara.common.sdk.common.HttpResultResponse; +import org.dromara.sample.component.mqtt.model.EventsReceiver; +import org.dromara.sample.manage.model.dto.DeviceDTO; +import org.dromara.sample.manage.model.dto.LiveDTO; import org.dromara.sample.manage.model.dto.LiveTypeDTO; +import org.dromara.sample.manage.service.IDeviceService; import org.dromara.sample.manage.service.ILiveStreamService; +import org.dromara.sample.manage.service.IPlayTextService; +import org.dromara.sample.wayline.model.dto.WaylineJobDTO; +import org.dromara.sample.wayline.service.IWaylineJobService; +import org.dromara.sample.wayline.service.IWaylineRedisService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.ObjectUtils; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; + /** * @auther wuyuan * @data 2025/5/12 @@ -24,6 +38,19 @@ public class RocketMqConsum implements RocketMQListener { @Autowired private ILiveStreamService liveStreamService; + @Autowired + private IPlayTextService playTextService; + + @Autowired + private IWaylineRedisService waylineRedisService; + + @Autowired + private IDeviceService deviceService; + + @Autowired + private IWaylineJobService waylineJobService; + + @Override public void onMessage(MessageExt message) { String tags = message.getTags(); @@ -34,11 +61,33 @@ public class RocketMqConsum implements RocketMQListener { liveTypeDTO.setVideoType(LensChangeVideoTypeEnum.WIDE); liveTypeDTO.setVideoQuality(VideoQualityEnum.ULTRA_HD); liveTypeDTO.setVideoId(videoId); + Optional deviceBySn = deviceService.getDeviceBySn(videoId.getDroneSn()); + Optional> runningWaylineJob = waylineRedisService.getRunningWaylineJob(deviceBySn.get().getDeviceSn()); + if(runningWaylineJob.isEmpty()) { + return; + } + String jobId = runningWaylineJob.get().getOutput().getExt().getFlightId(); + Optional waylineJobDTO = waylineJobService.getJobByJobInternalId(jobId); if(tags.equals("videoStart")){ - liveStreamService.liveStart(liveTypeDTO); + HttpResultResponse httpResultResponse = liveStreamService.liveStart(liveTypeDTO); + if (httpResultResponse.getCode() == 0 || httpResultResponse.getCode() == 513012 || httpResultResponse.getCode() == 513003){ + Map reqMap = new HashMap<>(); + reqMap.put("deviceSn:",videoId.getDroneSn()); + reqMap.put("jobId",waylineJobDTO.get().getJobId()); + reqMap.put("jobName",waylineJobDTO.get().getJobName()); + playTextService.streamType(reqMap); + } + }else if(tags.equals("videoStopStart")){ - liveStreamService.liveStop(videoId); + HttpResultResponse httpResultResponse = liveStreamService.liveStop(videoId); liveStreamService.liveStart(liveTypeDTO); + if (httpResultResponse.getCode() == 0 || httpResultResponse.getCode() == 513012 || httpResultResponse.getCode() == 513003){ + Map reqMap = new HashMap<>(); + reqMap.put("deviceSn:",videoId.getDroneSn()); + reqMap.put("jobId",waylineJobDTO.get().getJobId()); + reqMap.put("jobName",waylineJobDTO.get().getJobName()); + playTextService.streamType(reqMap); + } } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java index a0c6492..f38ca24 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java @@ -55,6 +55,8 @@ public interface IWaylineJobService { */ Optional getJobByJobId(String workspaceId, String jobId); + Optional getJobByJobInternalId(String jobId); + /** * Update job data. * @param dto diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java index 23d1c98..7774ea1 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java @@ -146,6 +146,14 @@ public class WaylineJobServiceImpl implements IWaylineJobService { return Optional.ofNullable(entity2Dto(jobEntity)); } + @Override + public Optional getJobByJobInternalId(String jobId) { + WaylineJobEntity jobEntity = mapper.selectOne( + new LambdaQueryWrapper() + .eq(WaylineJobEntity::getJobId, jobId)); + return Optional.ofNullable(entity2Dto(jobEntity)); + } + @Override public Boolean updateJob(WaylineJobDTO dto) { return mapper.update(this.dto2Entity(dto),