Browse Source

[feat]

1、增加查询接口
master
杨威 2 months ago
parent
commit
5eea396fff
  1. 57
      dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceRedisController.java
  2. 17
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceRedisService.java
  3. 27
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceRedisServiceImpl.java

57
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<List<DeviceDTO>> getDevicesInfo(@RequestBody List<String> 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<List<OsdDockDrone>> getDevicesOsdInfo(@RequestBody List<String> snList) {
return HttpResultResponse.success(deviceRedisService.getDevicesOsdInfo(snList));
}
}

17
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceRedisService.java

@ -1,9 +1,11 @@
package org.dromara.sample.manage.service; 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.common.sdk.cloudapi.firmware.OtaProgress;
import org.dromara.sample.component.mqtt.model.EventsReceiver; import org.dromara.sample.component.mqtt.model.EventsReceiver;
import org.dromara.sample.manage.model.dto.DeviceDTO; import org.dromara.sample.manage.model.dto.DeviceDTO;
import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.Set; import java.util.Set;
@ -109,4 +111,19 @@ public interface IDeviceRedisService {
void gatewayOffline(String gatewaySn); void gatewayOffline(String gatewaySn);
void subDeviceOffline(String deviceSn); void subDeviceOffline(String deviceSn);
/**
* 获取设备的基本信息
* @param snList
* @return
*/
List<DeviceDTO> getDevicesInfo(List<String> snList);
/**
* 获取设备osd实时数据
* @param snList
* @return
*/
List<OsdDockDrone> getDevicesOsdInfo(List<String> snList);
} }

27
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.config.RedisConst;
import org.dromara.common.redis.utils.RedisOpsUtils; 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.common.sdk.cloudapi.firmware.OtaProgress;
import org.dromara.sample.component.mqtt.model.EventsReceiver; import org.dromara.sample.component.mqtt.model.EventsReceiver;
import org.dromara.sample.manage.model.dto.DeviceDTO; 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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -106,4 +109,28 @@ public class DeviceRedisServiceImpl implements IDeviceRedisService {
delHmsKeysBySn(deviceSn); delHmsKeysBySn(deviceSn);
capacityCameraService.deleteCapacityCameraByDeviceSn(deviceSn); capacityCameraService.deleteCapacityCameraByDeviceSn(deviceSn);
} }
@Override
public List<DeviceDTO> getDevicesInfo(List<String> snList) {
List<DeviceDTO> 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<OsdDockDrone> getDevicesOsdInfo(List<String> snList) {
List<OsdDockDrone> 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;
}
} }

Loading…
Cancel
Save