Browse Source

Merge remote-tracking branch 'origin/master'

master
杨威 3 months ago
parent
commit
fa1dc4fe3f
  1. 7
      dk-modules/sample/src/main/java/org/dromara/sample/component/GlobalScheduleService.java
  2. 12
      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
  4. 10
      dk-modules/sample/src/main/resources/logback-plus.xml

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

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

@ -1,5 +1,6 @@
package org.dromara.sample.manage.service.impl; package org.dromara.sample.manage.service.impl;
import cn.hutool.core.util.ObjectUtil;
import org.dromara.common.sdk.cloudapi.device.*; import org.dromara.common.sdk.cloudapi.device.*;
import org.dromara.common.sdk.cloudapi.device.api.AbstractDeviceService; import org.dromara.common.sdk.cloudapi.device.api.AbstractDeviceService;
import org.dromara.common.sdk.cloudapi.psdk.PsdkUiResource; import org.dromara.common.sdk.cloudapi.psdk.PsdkUiResource;
@ -109,6 +110,8 @@ public class SDKDeviceService extends AbstractDeviceService {
@Override @Override
public TopicStatusResponse<MqttReply> updateTopoOffline(TopicStatusRequest<UpdateTopo> request, MessageHeaders headers) { public TopicStatusResponse<MqttReply> updateTopoOffline(TopicStatusRequest<UpdateTopo> request, MessageHeaders headers) {
GatewayManager gatewayManager = SDKManager.registerDevice(request.getFrom(), null, GatewayManager gatewayManager = SDKManager.registerDevice(request.getFrom(), null,
request.getData().getDomain(), request.getData().getType(), request.getData().getDomain(), request.getData().getType(),
request.getData().getSubType(), request.getData().getThingVersion(), null); request.getData().getSubType(), request.getData().getThingVersion(), null);
@ -120,7 +123,7 @@ public class SDKDeviceService extends AbstractDeviceService {
DeviceDTO gatewayDevice = deviceGatewayConvertToDevice(request.getFrom(), request.getData()); DeviceDTO gatewayDevice = deviceGatewayConvertToDevice(request.getFrom(), request.getData());
Optional<DeviceDTO> gatewayDeviceOpt = onlineSaveDevice(gatewayDevice, null, null); Optional<DeviceDTO> gatewayDeviceOpt = onlineSaveDevice(gatewayDevice, null, null);
if (gatewayDeviceOpt.isEmpty()) { if (gatewayDeviceOpt.isEmpty()) {
return null; return new TopicStatusResponse<MqttReply>().setData(MqttReply.success());
} }
deviceService.pushDeviceOnlineTopo(gatewayDeviceOpt.get().getWorkspaceId(), request.getFrom(), null); deviceService.pushDeviceOnlineTopo(gatewayDeviceOpt.get().getWorkspaceId(), request.getFrom(), null);
return new TopicStatusResponse<MqttReply>().setData(MqttReply.success()); return new TopicStatusResponse<MqttReply>().setData(MqttReply.success());
@ -142,15 +145,14 @@ public class SDKDeviceService extends AbstractDeviceService {
if (deviceOpt.isEmpty() || !StringUtils.hasText(deviceOpt.get().getWorkspaceId())) { if (deviceOpt.isEmpty() || !StringUtils.hasText(deviceOpt.get().getWorkspaceId())) {
deviceOpt = deviceService.getDeviceBySn(from); deviceOpt = deviceService.getDeviceBySn(from);
if (deviceOpt.isEmpty()) { if (deviceOpt.isEmpty()) {
log.error("请重新启动无人机。"); return;
}
if(!StringUtils.hasText(deviceOpt.get().getWorkspaceId())){
return; return;
} }
} }
DeviceDTO device = deviceOpt.get(); DeviceDTO device = deviceOpt.get();
if (!StringUtils.hasText(device.getWorkspaceId())) {
log.error("请先绑好码头。");
}
if (StringUtils.hasText(device.getChildDeviceSn())) { if (StringUtils.hasText(device.getChildDeviceSn())) {
deviceService.getDeviceBySn(device.getChildDeviceSn()).ifPresent(device::setChildren); deviceService.getDeviceBySn(device.getChildDeviceSn()).ifPresent(device::setChildren);
} }

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 @Override
public TopicRequestsResponse<MqttReply<AirportOrganizationGetResponse>> airportOrganizationGet(TopicRequestsRequest<AirportOrganizationGetRequest> request, MessageHeaders headers) { public TopicRequestsResponse<MqttReply<AirportOrganizationGetResponse>> airportOrganizationGet(TopicRequestsRequest<AirportOrganizationGetRequest> request, MessageHeaders headers) {
AirportOrganizationGetRequest organizationGet = request.getData(); 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()); Optional<WorkspaceDTO> workspace = workspaceService.getWorkspaceNameByBindCode(organizationGet.getDeviceBindingCode());
if (workspace.isEmpty()) { if (workspace.isEmpty()) {

10
dk-modules/sample/src/main/resources/logback-plus.xml

@ -12,10 +12,10 @@
<pattern>${console.log.pattern}</pattern> <pattern>${console.log.pattern}</pattern>
<charset>utf-8</charset> <charset>utf-8</charset>
</encoder> </encoder>
<!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">--> <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<!-- &lt;!&ndash; 过滤的级别 &ndash;&gt;--> <!-- 过滤的级别 -->
<!-- <level>ERROR</level>--> <level>ERROR</level>
<!-- </filter>--> </filter>
</appender> </appender>
<include resource="logback-common.xml" /> <include resource="logback-common.xml" />
@ -26,7 +26,7 @@
<include resource="logback-skylog.xml" /> <include resource="logback-skylog.xml" />
<!--系统操作日志--> <!--系统操作日志-->
<root level="info"> <root level="ERROR">
<appender-ref ref="console"/> <appender-ref ref="console"/>
</root> </root>
</configuration> </configuration>

Loading…
Cancel
Save