Browse Source

fix:插件支持脚本文件自动导入

xiwa 2 years ago
parent
commit
b0ef14f731

+ 44 - 0
iot-dao/iot-data-model/src/main/java/cc/iotkit/model/rule/RuleAction.java

@@ -9,10 +9,54 @@
  */
 package cc.iotkit.model.rule;
 
+import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
+/**
+ * 规则引擎输出动作
+ *
+ * @author sjg
+ */
 @Data
+@NoArgsConstructor
+@AllArgsConstructor
 public class RuleAction {
+    /**
+     * 设备控制
+     */
+    public static final String TYPE_DEVICE = "device";
+
+    /**
+     * 告警消息
+     */
+    public static final String TYPE_ALARM = "alarm";
+
+    /**
+     * 场景控制
+     */
+    public static final String TYPE_SCENE = "scene";
+
+    /**
+     * http推送
+     */
+    public static final String TYPE_HTTP = "http";
+
+    /**
+     * mqtt推送
+     */
+    public static final String TYPE_MQTT = "mqtt";
+
+    /**
+     * kafka推送
+     */
+    public static final String TYPE_KAFKA = "kafka";
+
+    /**
+     * tcp推送
+     */
+    public static final String TYPE_TCP = "tcp";
+
     /**
      * 动作类型
      */

+ 4 - 4
iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/AlertController.java

@@ -41,21 +41,21 @@ public class AlertController {
     @SaCheckPermission("iot:alertConfig:add")
     @PostMapping("/createAlertConfig")
     public AlertConfig createAlertConfig(@RequestBody @Validated Request<AlertConfig> request) {
-        return alertService.createAlertConfig(request);
+        return alertService.createAlertConfig(request.getData());
     }
 
     @ApiOperation("编辑告警中心配置")
     @SaCheckPermission("iot:alertConfig:edit")
     @PostMapping("/updateAlertConfig")
     public AlertConfig updateAlertConfig(@RequestBody @Validated Request<AlertConfig> request) {
-        return alertService.updateAlertConfig(request);
+        return alertService.updateAlertConfig(request.getData());
     }
 
     @ApiOperation("删除告警中心配置")
     @SaCheckPermission("iot:alertConfig:remove")
     @PostMapping("/deleteAlertConfigById")
-    public Boolean deleteAlertConfigById(@RequestBody @Validated Request<Long> request) {
-        return alertService.deleteAlertConfigById(request);
+    public void deleteAlertConfigById(@RequestBody @Validated Request<Long> request) {
+        alertService.deleteAlertConfigById(request.getData());
     }
 
     @ApiOperation("查询告警中心配置分页")

+ 0 - 1
iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/RuleEngineController.java

@@ -72,7 +72,6 @@ public class RuleEngineController {
     public boolean resumeRule(@Validated @RequestBody Request<String> request) {
         String ruleId = request.getData();
         return ruleEngineService.resumeRule(ruleId);
-
     }
 
     @ApiOperation("删除规则")

+ 6 - 7
iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/AlertService.java

@@ -29,17 +29,16 @@ public class AlertService {
     @Autowired
     private IAlertRecordData alertRecordData;
 
-    public AlertConfig createAlertConfig(Request<AlertConfig> request) {
-        return alertConfigData.save(request.getData());
+    public AlertConfig createAlertConfig(AlertConfig alertConfig) {
+        return alertConfigData.save(alertConfig);
     }
 
-    public AlertConfig updateAlertConfig(Request<AlertConfig> request) {
-        return alertConfigData.save(request.getData());
+    public AlertConfig updateAlertConfig(AlertConfig alertConfig) {
+        return alertConfigData.save(alertConfig);
     }
 
-    public Boolean deleteAlertConfigById(Request<Long> request) {
-         alertConfigData.deleteById(request.getData());
-        return Boolean.TRUE;
+    public void deleteAlertConfigById(Long id) {
+         alertConfigData.deleteById(id);
     }
 
     public Paging<AlertConfig> selectAlertConfigPage(PageRequest<AlertConfig> request) {

+ 11 - 0
iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/PluginServiceImpl.java

@@ -82,6 +82,16 @@ public class PluginServiceImpl implements IPluginService {
                 log.info("configJson:{}", configJson);
             }
 
+            //读取script.js脚本
+            String scriptFile = "classes/script.js";
+            JarEntry scriptEntity = jarFile.getJarEntry(scriptFile);
+            String script = "";
+            if (scriptEntity != null) {
+                //读取脚本文件
+                script = IoUtil.read(jarFile.getInputStream(scriptEntity), Charset.defaultCharset());
+                log.info("script:{}", script);
+            }
+
             PluginState pluginState = pluginInfo.getPluginState();
             if (pluginState == PluginState.STARTED) {
                 plugin.setState(PluginInfo.STATE_RUNNING);
@@ -89,6 +99,7 @@ public class PluginServiceImpl implements IPluginService {
             plugin.setPluginId(pluginInfo.getPluginId());
             plugin.setFile(file.getOriginalFilename());
             plugin.setConfigSchema(configJson);
+            plugin.setScript(script);
 
             PluginDescriptor pluginDescriptor = pluginInfo.getPluginDescriptor();
             plugin.setVersion(pluginDescriptor.getPluginVersion());

+ 1 - 1
iot-module/iot-rule-engine/src/main/java/cc/iotkit/ruleengine/action/alert/AlertAction.java

@@ -23,7 +23,7 @@ import java.util.List;
 @Data
 public class AlertAction implements Action<AlertService<?>> {
 
-    public static final String TYPE = "http";
+    public static final String TYPE = "alarm";
 
     private String type;
 

+ 0 - 4
iot-starter/pom.xml

@@ -54,10 +54,6 @@
             <groupId>cc.iotkit</groupId>
             <artifactId>iot-openapi</artifactId>
         </dependency>
-        <!--   <dependency>
-             <groupId>cc.iotkit</groupId>
-             <artifactId>iot-baetyl</artifactId>
-           </dependency>-->
 
         <dependency>
             <groupId>cc.iotkit</groupId>

+ 0 - 8
iot-starter/src/main/resources/application.yml

@@ -48,14 +48,6 @@ spring:
           url: jdbc:h2:./data/iotkit;MODE=MySQL
           username: sa
           password: 123456
-        # 从库数据源
-        slave:
-          lazy: true
-          type: ${spring.datasource.type}
-          driverClassName: org.h2.Driver
-          url: jdbc:h2:./data/iotkit;MODE=MySQL
-          username: sa
-          password: 123456
 
     # 内置h2 web console设置
     platform: h2