소스 검색

修复组件添加问题

xiwa 2 년 전
부모
커밋
d59aad1199
1개의 변경된 파일14개의 추가작업 그리고 6개의 파일을 삭제
  1. 14 6
      iot-standalone/src/main/java/cc/iotkit/manager/controller/ProtocolController.java

+ 14 - 6
iot-standalone/src/main/java/cc/iotkit/manager/controller/ProtocolController.java

@@ -86,6 +86,7 @@ public class ProtocolController {
     @PostMapping("/addComponent")
     public void addComponent(ProtocolComponent component) {
         String id = component.getId();
+        //jar包上传后生成的id
         if (!StringUtils.hasLength(id)) {
             throw new BizException("component id is blank");
         }
@@ -95,7 +96,7 @@ public class ProtocolController {
         }
 
         ProtocolComponent protocolComponent = protocolComponentData.findById(id);
-        if (protocolComponent == null) {
+        if (protocolComponent != null) {
             throw new BizException("component already exists");
         }
         try {
@@ -133,8 +134,7 @@ public class ProtocolController {
     public String getComponentScript(@PathVariable("id") String id) {
         getAndCheckComponent(id);
         try {
-            Path path = componentConfig.getComponentFilePath(id);
-            File file = path.resolve(ProtocolComponent.SCRIPT_FILE_NAME).toFile();
+            File file = getComponentScriptFile(id);
             return FileUtils.readFileToString(file, "UTF-8");
         } catch (Throwable e) {
             log.error("read component script file error", e);
@@ -148,17 +148,20 @@ public class ProtocolController {
             @RequestBody String script) {
         getAndCheckComponent(id);
         try {
-            Path path = componentConfig.getComponentFilePath(id);
-            File file = path.resolve(ProtocolComponent.SCRIPT_FILE_NAME).toFile();
+            File file = getComponentScriptFile(id);
             script = JsonUtil.parse(script, String.class);
             FileUtils.writeStringToFile(file, script, "UTF-8", false);
-
             componentManager.deRegister(id);
         } catch (Throwable e) {
             throw new BizException("save protocol component script error", e);
         }
     }
 
+    private File getComponentScriptFile(String id) {
+        Path path = componentConfig.getComponentFilePath(id);
+        return path.resolve(ProtocolComponent.SCRIPT_FILE_NAME).toFile();
+    }
+
     private ProtocolComponent getAndCheckComponent(@PathVariable("id") String id) {
         ProtocolComponent oldComponent = protocolComponentData.findById(id);
         if (oldComponent == null) {
@@ -304,6 +307,11 @@ public class ProtocolController {
         }
 
         if (ProtocolComponent.STATE_RUNNING.equals(state)) {
+            File scriptFile = getComponentScriptFile(id);
+            if (!scriptFile.exists()) {
+                throw new BizException("请先编写组件脚本");
+            }
+
             componentManager.register(component);
             componentManager.start(component.getId());
             component.setState(ProtocolComponent.STATE_RUNNING);