From a3360878835e4606c968441e432b0c3d4bd921ae Mon Sep 17 00:00:00 2001
From: sean.zhou <sean.zhou@dji.com>
Date: Fri, 23 Sep 2022 18:04:07 +0800
Subject: [PATCH] V1.2.0
---
src/main/java/com/dji/sample/manage/service/impl/TopologyServiceImpl.java | 31 +++++++++++++++++++------------
1 files changed, 19 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/dji/sample/manage/service/impl/TopologyServiceImpl.java b/src/main/java/com/dji/sample/manage/service/impl/TopologyServiceImpl.java
index 64d7d07..a255068 100644
--- a/src/main/java/com/dji/sample/manage/service/impl/TopologyServiceImpl.java
+++ b/src/main/java/com/dji/sample/manage/service/impl/TopologyServiceImpl.java
@@ -36,20 +36,27 @@
List<TopologyDTO> topologyList = new ArrayList<>();
- gatewayList.forEach(device -> {
- List<TopologyDeviceDTO> parents = new ArrayList<>();
- TopologyDeviceDTO gateway = deviceService.deviceConvertToTopologyDTO(device);
- parents.add(gateway);
-
- // Query the topology data of the drone based on the drone sn.
- Optional<TopologyDeviceDTO> deviceTopo = deviceService.getDeviceTopoForPilot(device.getChildDeviceSn());
- List<TopologyDeviceDTO> deviceTopoList = new ArrayList<>();
- deviceTopo.ifPresent(deviceTopoList::add);
-
- topologyList.add(TopologyDTO.builder().parents(parents).hosts(deviceTopoList).build());
- });
+ gatewayList.forEach(device -> this.getDeviceTopologyByGatewaySn(device.getDeviceSn())
+ .ifPresent(topologyList::add));
return topologyList;
}
+ public Optional<TopologyDTO> getDeviceTopologyByGatewaySn(String gatewaySn) {
+ Optional<DeviceDTO> dtoOptional = deviceService.getDeviceBySn(gatewaySn);
+ if (dtoOptional.isEmpty()) {
+ return Optional.empty();
+ }
+ List<TopologyDeviceDTO> parents = new ArrayList<>();
+ DeviceDTO device = dtoOptional.get();
+ TopologyDeviceDTO gateway = deviceService.deviceConvertToTopologyDTO(device);
+ parents.add(gateway);
+
+ // Query the topology data of the drone based on the drone sn.
+ Optional<TopologyDeviceDTO> deviceTopo = deviceService.getDeviceTopoForPilot(device.getChildDeviceSn());
+ List<TopologyDeviceDTO> deviceTopoList = new ArrayList<>();
+ deviceTopo.ifPresent(deviceTopoList::add);
+
+ return Optional.ofNullable(TopologyDTO.builder().parents(parents).hosts(deviceTopoList).build());
+ }
}
--
Gitblit v1.9.3