吴远 3 months ago
parent
commit
d08909b2ee
  1. 7
      dk-modules/sample/src/main/java/org/dromara/sample/component/GlobalScheduleService.java
  2. 15
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKDeviceService.java
  3. 3
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKOrganizationService.java

7
dk-modules/sample/src/main/java/org/dromara/sample/component/GlobalScheduleService.java

@ -42,16 +42,11 @@ public class GlobalScheduleService {
@Scheduled(initialDelay = 10, fixedRate = 30, timeUnit = TimeUnit.SECONDS)
private void deviceStatusListen() {
int start = RedisConst.DEVICE_ONLINE_PREFIX.length();
redisOpsUtils.getAllKeys(RedisConst.DEVICE_ONLINE_PREFIX + "*").forEach(key -> {
long expire = redisOpsUtils.getExpire(key);
if (expire <= 30) {
DeviceDTO device = (DeviceDTO) redisOpsUtils.get(key);
if (null == device) {
return;
}
if(device.getWorkspaceId().isEmpty()){
return;
}
if (DeviceDomainEnum.DRONE == device.getDomain()) {
deviceService.subDeviceOffline(key.substring(start));
} else {

15
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKDeviceService.java

@ -68,12 +68,6 @@ public class SDKDeviceService extends AbstractDeviceService {
Optional<DeviceDTO> deviceOpt = deviceRedisService.getDeviceOnline(deviceSn);
Optional<DeviceDTO> gatewayOpt = deviceRedisService.getDeviceOnline(request.getFrom());
if(deviceOpt.isEmpty() || ObjectUtil.isNull(deviceOpt.get().getWorkspaceId())){
return null;
}
if(gatewayOpt.isEmpty() || ObjectUtil.isNull(gatewayOpt.get().getWorkspaceId())){
return null;
}
GatewayManager gatewayManager = SDKManager.registerDevice(request.getFrom(), deviceSn,
request.getData().getDomain(), request.getData().getType(),
request.getData().getSubType(), request.getData().getThingVersion(), updateTopoSubDevice.getThingVersion());
@ -121,16 +115,9 @@ public class SDKDeviceService extends AbstractDeviceService {
GatewayManager gatewayManager = SDKManager.registerDevice(request.getFrom(), null,
request.getData().getDomain(), request.getData().getType(),
request.getData().getSubType(), request.getData().getThingVersion(), null);
Optional<DeviceDTO> deviceOpt = deviceRedisService.getDeviceOnline(request.getFrom());
if(deviceOpt.isEmpty()){
return null;
}
if(ObjectUtil.isNull(deviceOpt.get().getWorkspaceId())){
return null;
}
deviceService.gatewayOnlineSubscribeTopic(gatewayManager);
// Only the remote controller is logged in and the aircraft is not connected.
Optional<DeviceDTO> deviceOpt = deviceRedisService.getDeviceOnline(request.getFrom());
if (deviceOpt.isEmpty()) {
// When connecting for the first time
DeviceDTO gatewayDevice = deviceGatewayConvertToDevice(request.getFrom(), request.getData());

3
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKOrganizationService.java

@ -61,9 +61,6 @@ public class SDKOrganizationService extends AbstractOrganizationService {
@Override
public TopicRequestsResponse<MqttReply<AirportOrganizationGetResponse>> airportOrganizationGet(TopicRequestsRequest<AirportOrganizationGetRequest> request, MessageHeaders headers) {
AirportOrganizationGetRequest organizationGet = request.getData();
if (!StringUtils.hasText(organizationGet.getDeviceBindingCode())) {
return new TopicRequestsResponse().setData(MqttReply.error(CommonErrorEnum.ILLEGAL_ARGUMENT));
}
Optional<WorkspaceDTO> workspace = workspaceService.getWorkspaceNameByBindCode(organizationGet.getDeviceBindingCode());
if (workspace.isEmpty()) {

Loading…
Cancel
Save