Ver código fonte

优化空判断

zhou-hao 4 anos atrás
pai
commit
004860147b

+ 11 - 2
jetlinks-manager/device-manager/src/main/java/org/jetlinks/community/device/service/AutoDiscoverDeviceRegistry.java

@@ -4,6 +4,7 @@ import org.hswebframework.ezorm.rdb.mapping.ReactiveRepository;
 import org.jetlinks.core.device.*;
 import org.jetlinks.community.device.entity.DeviceInstanceEntity;
 import org.jetlinks.community.device.entity.DeviceProductEntity;
+import org.springframework.util.StringUtils;
 import reactor.core.publisher.Mono;
 
 public class AutoDiscoverDeviceRegistry implements DeviceRegistry {
@@ -24,15 +25,23 @@ public class AutoDiscoverDeviceRegistry implements DeviceRegistry {
 
     @Override
     public Mono<DeviceOperator> getDevice(String deviceId) {
-        return parent
+        if (StringUtils.isEmpty(deviceId)) {
+            return Mono.empty();
+        }
+        return Mono.defer(() -> parent
             .getDevice(deviceId)
             .switchIfEmpty(Mono.defer(() -> deviceRepository
                 .findById(deviceId)
-                .flatMap(instance -> parent.register(instance.toDeviceInfo()))));
+                .flatMap(instance -> parent.register(instance.toDeviceInfo())))
+            )
+        );
     }
 
     @Override
     public Mono<DeviceProductOperator> getProduct(String productId) {
+        if (StringUtils.isEmpty(productId)) {
+            return Mono.empty();
+        }
         return parent
             .getProduct(productId)
             .switchIfEmpty(Mono.defer(() -> productRepository