caixiaofeng il y a 5 mois
Parent
commit
e1420b6f16

+ 17 - 0
flow-workflow/flow-workflow-api/src/main/java/com/flow/service/ConnectorService.java

@@ -0,0 +1,17 @@
+package com.flow.service;
+
+import com.flow.common.core.model.PageResult;
+import com.flow.common.mybatis.service.BaseService;
+import com.flow.entity.ConnectorEntity;
+import com.flow.model.ConnectorQuery;
+
+public interface ConnectorService extends BaseService<ConnectorEntity> {
+
+    ConnectorEntity create(ConnectorEntity connectorEntity);
+
+    ConnectorEntity update(ConnectorEntity connectorEntity);
+
+    ConnectorEntity get(Long id);
+
+    PageResult<ConnectorEntity> query(ConnectorQuery connectorQuery);
+}

+ 7 - 0
flow-workflow/flow-workflow-biz/src/main/java/com/flow/dao/ConnectorDao.java

@@ -0,0 +1,7 @@
+package com.flow.dao;
+
+import com.flow.common.mybatis.dao.BaseDao;
+import com.flow.entity.ConnectorEntity;
+
+public interface ConnectorDao extends BaseDao<ConnectorEntity> {
+}

+ 46 - 0
flow-workflow/flow-workflow-biz/src/main/java/com/flow/service/impl/ConnectorServiceImpl.java

@@ -0,0 +1,46 @@
+package com.flow.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.flow.common.core.model.PageResult;
+import com.flow.common.mybatis.service.impl.BaseServiceImpl;
+import com.flow.dao.ConnectorDao;
+import com.flow.entity.ConnectorEntity;
+import com.flow.model.ConnectorQuery;
+import com.flow.service.ConnectorService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+public class ConnectorServiceImpl extends BaseServiceImpl<ConnectorDao, ConnectorEntity> implements ConnectorService {
+    @Autowired
+    private ConnectorDao connectorDao;
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ConnectorEntity create(ConnectorEntity connectorEntity) {
+        connectorDao.insert(connectorEntity);
+        return connectorEntity;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ConnectorEntity update(ConnectorEntity connectorEntity) {
+        connectorDao.updateById(connectorEntity);
+        return connectorEntity;
+    }
+
+    @Override
+    public ConnectorEntity get(Long id) {
+        return connectorDao.selectById(id);
+    }
+
+    @Override
+    public PageResult<ConnectorEntity> query(ConnectorQuery connectorQuery) {
+        ConnectorEntity connectorEntity = connectorQuery.toEntity();
+        Page<ConnectorEntity> page = connectorDao.lambdaQueryChain()
+                .setEntity(connectorEntity)
+                .page(new Page<>(connectorQuery.getPage(), connectorQuery.getLimit()));
+        return new PageResult<>(page.getTotal(), page.getRecords());
+    }
+}

+ 37 - 0
flow-workflow/flow-workflow-controller/src/main/java/com/flow/controller/ConnectorController.java

@@ -0,0 +1,37 @@
+package com.flow.controller;
+
+import com.flow.common.core.model.PageResult;
+import com.flow.common.core.model.Result;
+import com.flow.entity.ConnectorEntity;
+import com.flow.model.ConnectorQuery;
+import com.flow.service.ConnectorService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/connector")
+public class ConnectorController {
+    @Autowired
+    private ConnectorService connectorService;
+
+    @PostMapping
+    public Result<ConnectorEntity> create(@RequestBody ConnectorEntity connectorEntity) {
+        return Result.success(connectorService.create(connectorEntity));
+    }
+
+    @PutMapping
+    public Result<ConnectorEntity> update(@RequestBody ConnectorEntity connectorEntity) {
+        return Result.success(connectorService.update(connectorEntity));
+    }
+
+    @GetMapping("/{id}")
+    public Result<ConnectorEntity> get(@PathVariable Long id) {
+        return Result.success(connectorService.get(id));
+    }
+
+
+    @GetMapping
+    public Result<PageResult<ConnectorEntity>> query(ConnectorQuery connectorQuery) {
+        return Result.success(connectorService.query(connectorQuery));
+    }
+}

+ 20 - 0
flow-workflow/flow-workflow-entity/src/main/java/com/flow/entity/ConnectorEntity.java

@@ -0,0 +1,20 @@
+package com.flow.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+import com.flow.common.mybatis.entity.BaseEntity;
+import com.flow.entity.node.connector.Connector;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@TableName(value = "flow_connector", autoResultMap = true)
+public class ConnectorEntity extends BaseEntity {
+    private String name;
+    private String icon;
+    private String description;
+    @TableField(typeHandler = JacksonTypeHandler.class)
+    private Connector connector;
+}

+ 4 - 3
flow-workflow/flow-workflow-entity/src/main/java/com/flow/entity/node/connector/ClassConnector.java

@@ -5,6 +5,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.flowable.bpmn.model.ServiceTask;
 
+import java.util.List;
 import java.util.Map;
 
 @EqualsAndHashCode(callSuper = true)
@@ -12,14 +13,14 @@ import java.util.Map;
 public class ClassConnector extends Connector {
     private String implementationType;
     private String implementation;
-    private Map<String, String> params;
+    private List<Map<String, String>> params;
 
     @Override
     public void initImpl(ServiceTask serviceTask) {
         serviceTask.setImplementationType(this.implementationType);
         serviceTask.setImplementation(this.implementation);
-        for (String key : params.keySet()) {
-            ProcessElementUtil.setFieldExtensionExpression(serviceTask, key, params.get(key));
+        for (Map<String, String> param : params) {
+            ProcessElementUtil.setFieldExtensionExpression(serviceTask, param.get("key"), param.get("value"));
         }
     }
 }

+ 0 - 1
flow-workflow/flow-workflow-entity/src/main/java/com/flow/entity/node/connector/Connector.java

@@ -14,7 +14,6 @@ import org.flowable.bpmn.model.ServiceTask;
         @JsonSubTypes.Type(value = ClassConnector.class, name = "class")
 })
 public abstract class Connector {
-    private String id;
     private ConnectorType type;
 
     public abstract void initImpl(ServiceTask serviceTask);

+ 1 - 1
flow-workflow/flow-workflow-entity/src/main/java/com/flow/entity/node/connector/ConnectorType.java

@@ -12,7 +12,7 @@ public enum ConnectorType {
     CLASS("class", "类"),
     HTTP("http", "HTTP");
 
-    private final String name;
     @JsonValue
     final String type;
+    private final String name;
 }

+ 4 - 3
flow-workflow/flow-workflow-entity/src/main/java/com/flow/entity/node/connector/HttpConnector.java

@@ -10,6 +10,7 @@ import lombok.EqualsAndHashCode;
 import org.flowable.bpmn.model.ImplementationType;
 import org.flowable.bpmn.model.ServiceTask;
 
+import java.util.List;
 import java.util.Map;
 
 @EqualsAndHashCode(callSuper = true)
@@ -17,9 +18,9 @@ import java.util.Map;
 public class HttpConnector extends Connector {
     private String url;
     private String method;
-    private Map<String, Object> headers;
-    private Map<String, Object> params;
-    private Map<String, Object> body;
+    private List<Map<String, Object>> headers;
+    private List<Map<String, Object>> params;
+    private List<Map<String, Object>> body;
     private Long requestTimeout = 0L;
 
     @Override

+ 4 - 3
flow-workflow/flow-workflow-entity/src/main/java/com/flow/entity/node/connector/MicroConnector.java

@@ -10,6 +10,7 @@ import lombok.EqualsAndHashCode;
 import org.flowable.bpmn.model.ImplementationType;
 import org.flowable.bpmn.model.ServiceTask;
 
+import java.util.List;
 import java.util.Map;
 
 @EqualsAndHashCode(callSuper = true)
@@ -17,9 +18,9 @@ import java.util.Map;
 public class MicroConnector extends Connector {
     private String url;
     private String method;
-    private Map<String, Object> headers;
-    private Map<String, Object> params;
-    private Map<String, Object> body;
+    private List<Map<String, Object>> headers;
+    private List<Map<String, Object>> params;
+    private List<Map<String, Object>> body;
 
     @Override
     public void initImpl(ServiceTask serviceTask) {

+ 2 - 1
flow-workflow/flow-workflow-entity/src/main/java/com/flow/entity/node/connector/MqConnector.java

@@ -10,13 +10,14 @@ import lombok.EqualsAndHashCode;
 import org.flowable.bpmn.model.ImplementationType;
 import org.flowable.bpmn.model.ServiceTask;
 
+import java.util.List;
 import java.util.Map;
 
 @EqualsAndHashCode(callSuper = true)
 @Data
 public class MqConnector extends Connector {
     private String queue;
-    protected Map<String, Object> params;
+    protected List<Map<String, Object>> params;
 
     @Override
     public void initImpl(ServiceTask serviceTask) {

+ 16 - 0
flow-workflow/flow-workflow-entity/src/main/java/com/flow/model/ConnectorQuery.java

@@ -0,0 +1,16 @@
+package com.flow.model;
+
+import com.flow.common.core.model.Query;
+import com.flow.entity.ConnectorEntity;
+import lombok.Data;
+
+@Data
+public class ConnectorQuery extends Query {
+    private String name;
+
+    public ConnectorEntity toEntity(){
+        ConnectorEntity connectorEntity = new ConnectorEntity();
+        connectorEntity.setName(name);
+        return connectorEntity;
+    }
+}