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),