Преглед на файлове

add 网桥设备新增设备

18339543638 преди 4 години
родител
ревизия
bc79f6c1a4

+ 1 - 0
jetlinks-manager/bridge-manager/src/main/java/org/jetlinks/community/bridge/server/aliyun/AliBridgeGateway.java

@@ -78,6 +78,7 @@ public class AliBridgeGateway{
     public void init(){
         clusterTopic
             .subscribePattern()
+            .map(ClusterTopic.TopicMessage::getMessage)
             .flatMap(msg->{
                 //暂停、更新、启动、删除
                 if(msg instanceof  BridgeMessage) {

+ 6 - 14
jetlinks-manager/bridge-manager/src/main/java/org/jetlinks/community/bridge/web/AliBridgeServerController.java

@@ -1,5 +1,6 @@
 package org.jetlinks.community.bridge.web;
 
+import cn.hutool.core.util.StrUtil;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.AllArgsConstructor;
@@ -17,6 +18,7 @@ import org.jetlinks.community.bridge.enums.BridgeStatus;
 import org.jetlinks.community.bridge.server.aliyun.AliBridgeGateway;
 import org.jetlinks.community.bridge.service.AliBridgeDeviceService;
 import org.jetlinks.community.bridge.service.AliBridgeService;
+import org.jetlinks.core.utils.IdUtils;
 import org.springframework.dao.DuplicateKeyException;
 import org.springframework.web.bind.annotation.*;
 import reactor.core.publisher.Mono;
@@ -147,7 +149,11 @@ public class AliBridgeServerController implements
     @Operation(summary = "更新网桥信息")
     @CreateAction
     public Mono<Void> updateBridge(@RequestBody AliIotBridgeEntity bridge,@PathVariable("serverId") String id){
+        if(StrUtil.isEmpty(bridge.getId())){
+            bridge.setId(IdUtils.newUUID());
+        }
         return bridgeService.findById(id)
+            .defaultIfEmpty(bridge)
             .flatMap(oldBridge-> bridgeGateway.replaceBridgeServer(oldBridge.getNodeId(),oldBridge.getId(),bridge))
             .flatMap(nowBridge->
                 bridgeService.save(bridge)
@@ -158,20 +164,6 @@ public class AliBridgeServerController implements
                             bridgeGateway.registerDevice(bridge.getNodeId(),bridge.getId(),deviceConfig).then(Mono.empty())
                         )).then()
             );
-        //删除设备后重新注册设备
-//        return bridgeService.findById(id)
-//            .flatMap(oldBridge->
-//                Mono.zip(
-//                    bridgeGateway.replaceBridgeServer(oldBridge.getNodeId(),oldBridge.getId(),bridge)
-//                    , bridgeService.save(bridge))
-//                    .flatMap(tp2->bridgeDeviceService.createQuery()
-//                        .where(AliIotBridgeDeviceConfig::getBridgeId,bridge.getId())
-//                        .fetch()
-//                        .flatMap(deviceConfig->
-//                            bridgeGateway.registerDevice(bridge.getNodeId(),bridge.getId(),deviceConfig)
-//                        ).then()
-//                    )
-//            );
     }