From 5eea396fff29c9de8c6e566643b7c2e09339a103 Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Sat, 12 Apr 2025 16:22:34 +0800 Subject: [PATCH] =?UTF-8?q?[feat]=201=E3=80=81=E5=A2=9E=E5=8A=A0=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DeviceRedisController.java | 57 +++++++++++++++++++ .../manage/service/IDeviceRedisService.java | 17 ++++++ .../service/impl/DeviceRedisServiceImpl.java | 27 +++++++++ 3 files changed, 101 insertions(+) create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceRedisController.java diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceRedisController.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceRedisController.java new file mode 100644 index 0000000..a37bc0c --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceRedisController.java @@ -0,0 +1,57 @@ +package org.dromara.sample.manage.controller; + + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.sdk.cloudapi.device.OsdDockDrone; +import org.dromara.common.sdk.common.HttpResultResponse; +import org.dromara.sample.manage.model.dto.DeviceDTO; +import org.dromara.sample.manage.service.IDeviceRedisService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 无人机redis查询服务 + */ +@RestController +@Slf4j +@RequestMapping("${url.manage.prefix}${url.manage.version}/redis") +@Tag(name = "无人机redis查询服务") +public class DeviceRedisController { + + + @Autowired + private IDeviceRedisService deviceRedisService; + + + /** + * 获取设备的基本信息 + * + * @return + */ + @PostMapping("/device/info") + @Operation(summary = "获取设备的基本信息", description = "获取设备的基本信息") + public HttpResultResponse> getDevicesInfo(@RequestBody List snList) { + return HttpResultResponse.success(deviceRedisService.getDevicesInfo(snList)); + } + + + /** + * 获取设备osd实时数据 + * sudo systemctl restart docker + * sudo systemctl daemon-reload + * @return + */ + @PostMapping("/device/osd/info") + @Operation(summary = "获取设备osd实时数据", description = "获取设备osd实时数据") + public HttpResultResponse> getDevicesOsdInfo(@RequestBody List snList) { + return HttpResultResponse.success(deviceRedisService.getDevicesOsdInfo(snList)); + } + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceRedisService.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceRedisService.java index d9c4ccd..601a862 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceRedisService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceRedisService.java @@ -1,9 +1,11 @@ package org.dromara.sample.manage.service; +import org.dromara.common.sdk.cloudapi.device.OsdDockDrone; import org.dromara.common.sdk.cloudapi.firmware.OtaProgress; import org.dromara.sample.component.mqtt.model.EventsReceiver; import org.dromara.sample.manage.model.dto.DeviceDTO; +import java.util.List; import java.util.Optional; import java.util.Set; @@ -109,4 +111,19 @@ public interface IDeviceRedisService { void gatewayOffline(String gatewaySn); void subDeviceOffline(String deviceSn); + + /** + * 获取设备的基本信息 + * @param snList + * @return + */ + List getDevicesInfo(List snList); + + /** + * 获取设备osd实时数据 + * @param snList + * @return + */ + List getDevicesOsdInfo(List snList); + } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceRedisServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceRedisServiceImpl.java index ddbb044..2892e1d 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceRedisServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceRedisServiceImpl.java @@ -2,6 +2,7 @@ package org.dromara.sample.manage.service.impl; import org.dromara.common.redis.config.RedisConst; import org.dromara.common.redis.utils.RedisOpsUtils; +import org.dromara.common.sdk.cloudapi.device.OsdDockDrone; import org.dromara.common.sdk.cloudapi.firmware.OtaProgress; import org.dromara.sample.component.mqtt.model.EventsReceiver; import org.dromara.sample.manage.model.dto.DeviceDTO; @@ -10,6 +11,8 @@ import org.dromara.sample.manage.service.IDeviceRedisService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -106,4 +109,28 @@ public class DeviceRedisServiceImpl implements IDeviceRedisService { delHmsKeysBySn(deviceSn); capacityCameraService.deleteCapacityCameraByDeviceSn(deviceSn); } + + @Override + public List getDevicesInfo(List snList) { + List resultList = new ArrayList<>(); + snList.forEach(sn->{ + if (Optional.ofNullable(RedisOpsUtils.get(RedisConst.DEVICE_ONLINE_PREFIX + sn)).isPresent()) { + resultList.add((DeviceDTO)RedisOpsUtils.get(RedisConst.DEVICE_ONLINE_PREFIX + sn)); + } + }); + + return resultList; + } + + @Override + public List getDevicesOsdInfo(List snList) { + List resultList = new ArrayList<>(); + snList.forEach(sn->{ + if (Optional.ofNullable(RedisOpsUtils.get(RedisConst.OSD_PREFIX + sn)).isPresent()) { + resultList.add((OsdDockDrone)RedisOpsUtils.get(RedisConst.OSD_PREFIX + sn)); + } + }); + + return resultList; + } }