|
|
@ -3,6 +3,7 @@ package org.dromara.sample.wayline.service.impl; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import org.dromara.common.core.constant.DeviceQrtzConstants; |
|
|
|
import org.dromara.common.sdk.cloudapi.device.OsdDockDrone; |
|
|
|
import org.dromara.common.sdk.cloudapi.wayline.*; |
|
|
|
import org.dromara.common.sdk.cloudapi.wayline.api.AbstractWaylineService; |
|
|
|
import org.dromara.common.sdk.mqtt.MqttReply; |
|
|
@ -16,8 +17,10 @@ import org.dromara.sample.common.error.CommonErrorEnum; |
|
|
|
import org.dromara.sample.component.mqtt.model.EventsReceiver; |
|
|
|
import org.dromara.sample.manage.mapper.IDeviceQrtzFileMapper; |
|
|
|
import org.dromara.sample.manage.model.dto.DeviceDTO; |
|
|
|
import org.dromara.sample.manage.model.entity.DeviceFlightRecordsEntity; |
|
|
|
import org.dromara.sample.manage.model.entity.DeviceQrtzFileEntity; |
|
|
|
import org.dromara.sample.manage.model.enums.UserTypeEnum; |
|
|
|
import org.dromara.sample.manage.service.IDeviceFlightRecordsService; |
|
|
|
import org.dromara.sample.manage.service.IDeviceRedisService; |
|
|
|
import org.dromara.sample.media.model.MediaFileCountDTO; |
|
|
|
import org.dromara.sample.media.service.IMediaRedisService; |
|
|
@ -71,6 +74,9 @@ public class SDKWaylineService extends AbstractWaylineService { |
|
|
|
@Autowired |
|
|
|
private IWebSocketMessageService webSocketMessageService; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private IDeviceFlightRecordsService deviceFlightRecordsService; |
|
|
|
|
|
|
|
@Override |
|
|
|
public TopicEventsResponse<MqttReply> deviceExitHomingNotify(TopicEventsRequest<DeviceExitHomingNotify> request, MessageHeaders headers) { |
|
|
|
return super.deviceExitHomingNotify(request, headers); |
|
|
@ -105,7 +111,14 @@ public class SDKWaylineService extends AbstractWaylineService { |
|
|
|
.completedTime(LocalDateTime.now()) |
|
|
|
.mediaCount(output.getExt().getMediaCount()) |
|
|
|
.build(); |
|
|
|
|
|
|
|
Optional<OsdDockDrone> deviceOsd = deviceRedisService.getDeviceOsd(deviceOpt.get().getChildDeviceSn(), OsdDockDrone.class); |
|
|
|
Integer totalFlightSorties = deviceOsd.get().getTotalFlightSorties(); |
|
|
|
Float totalFlightTime = deviceOsd.get().getTotalFlightTime(); |
|
|
|
DeviceFlightRecordsEntity deviceFlightRecords = new DeviceFlightRecordsEntity(); |
|
|
|
deviceFlightRecords.setDeviceSn(response.getGateway()); |
|
|
|
deviceFlightRecords.setFlyCount(totalFlightSorties); |
|
|
|
deviceFlightRecords.setFlyAccTime(totalFlightTime.intValue()); |
|
|
|
deviceFlightRecordsService.saveDeviceFlight(deviceFlightRecords); |
|
|
|
// record the update of the media count.
|
|
|
|
if (Objects.nonNull(job.getMediaCount()) && job.getMediaCount() != 0) { |
|
|
|
mediaRedisService.setMediaCount(response.getGateway(), job.getJobId(), |
|
|
|