From 28d323a2f89ce0843b9e199f173575a21abb9e96 Mon Sep 17 00:00:00 2001 From: zhouhao Date: Thu, 11 Jan 2024 17:21:55 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E6=B3=A8=E9=94=80=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/DeviceMessageBusinessHandler.java | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/jetlinks-manager/device-manager/src/main/java/org/jetlinks/community/device/service/DeviceMessageBusinessHandler.java b/jetlinks-manager/device-manager/src/main/java/org/jetlinks/community/device/service/DeviceMessageBusinessHandler.java index 51db9a29..2acb924f 100644 --- a/jetlinks-manager/device-manager/src/main/java/org/jetlinks/community/device/service/DeviceMessageBusinessHandler.java +++ b/jetlinks-manager/device-manager/src/main/java/org/jetlinks/community/device/service/DeviceMessageBusinessHandler.java @@ -31,6 +31,7 @@ import org.springframework.dao.QueryTimeoutException; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; import reactor.core.Disposable; import reactor.core.Disposables; import reactor.core.publisher.BufferOverflowStrategy; @@ -209,18 +210,15 @@ public class DeviceMessageBusinessHandler { Message childMessage = message.getChildDeviceMessage(); if (childMessage instanceof DeviceUnRegisterMessage) { String childId = ((DeviceUnRegisterMessage) childMessage).getDeviceId(); - return registry - .getDevice(childId) - .flatMap(dev -> dev - .removeConfig(DeviceConfigKey.parentGatewayId.getKey()) - .then(dev.checkState())) - .flatMap(state -> deviceService - .createUpdate() - .setNull(DeviceInstanceEntity::getParentId) - .set(DeviceInstanceEntity::getState, DeviceState.of(state)) - .where(DeviceInstanceEntity::getId, childId) - .execute() - .then()); + if(!StringUtils.hasText(childId)){ + return Mono.empty(); + } + return deviceService + .createUpdate() + .setNull(DeviceInstanceEntity::getParentId) + .where(DeviceInstanceEntity::getId, childId) + .execute() + .then(); } return Mono.empty(); } @@ -228,6 +226,9 @@ public class DeviceMessageBusinessHandler { @Subscribe("/device/*/*/unregister") @Transactional(propagation = Propagation.NEVER) public Mono unRegisterDevice(DeviceUnRegisterMessage message) { + if(message.getHeader(Headers.ignore).orElse(false)){ + return Mono.empty(); + } //注销设备 return deviceService .unregisterDevice(message.getDeviceId())