1
0
Просмотр исходного кода

feat: 流水线步骤service mapper层

370774330@qq.com 5 лет назад
Родитель
Сommit
d78236b56d

+ 4 - 1
web/src/main/java/seecoder/devcloud/web/dao/pipeline/StageMapper.java

@@ -22,6 +22,9 @@ public interface StageMapper {
     @Options(useGeneratedKeys = true, keyProperty = "param1.id", keyColumn = "id")
     boolean insert(StagePO stagePO, String... ignoredCols);
 
+    @Select("select * from stage")
+    List<StagePO> selectAllStages();
+
     @Select("select from stage_configs where stage_id = #{stageId}")
-    List<StageConfigPO> selectConfigs(String stageId);
+    List<StageConfigPO> selectConfigs(Integer stageId);
 }

+ 2 - 2
web/src/main/java/seecoder/devcloud/web/model/po/pipeline/StageConfigPO.java

@@ -13,8 +13,8 @@ public class StageConfigPO {
     private String name;
     private String value;
     /**
-     * true 则为学生可以配置的属性
-     * false 则为学生可以配置的属性,仅作展示用
+     * true 则为学生可以配置的属性,仅作展示用
+     * false 则为学生可以配置的属性
      */
     private Boolean fake;
 }

+ 3 - 3
web/src/main/java/seecoder/devcloud/web/model/po/pipeline/StagePO.java

@@ -4,6 +4,7 @@ import lombok.Builder;
 import lombok.Data;
 
 import java.util.HashMap;
+import java.util.Map;
 
 /**
  * @author PuHong Weng
@@ -30,8 +31,7 @@ public class StagePO {
     /**
      * 仅作展示用的字段
      */
-    @Builder.Default
-    private HashMap<String,String> fakeConfigs = new HashMap<>();
+    private Map<String,String> fakeConfigs;
 
     /**
      * 识别名称,用于转换成对应的流水线真实步骤Handler,见core包的 HandlerConfigTable
@@ -42,7 +42,7 @@ public class StagePO {
      * 可以配置的字段属性
      */
     @Builder.Default
-    private HashMap<String,String> configs = new HashMap<>();
+    private Map<String,String> configs = new HashMap<>();
 
 
 

+ 42 - 0
web/src/main/java/seecoder/devcloud/web/model/vo/pipeline/StageVO.java

@@ -0,0 +1,42 @@
+package seecoder.devcloud.web.model.vo.pipeline;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.beans.BeanUtils;
+import seecoder.devcloud.web.model.po.pipeline.StagePO;
+
+import java.util.Map;
+
+/**
+ * @author PuHong Weng
+ * @date 2021/4/14
+ * @description:
+ */
+@Data
+@ApiModel("流水线步骤")
+public class StageVO {
+
+    @ApiModelProperty("步骤id")
+    private Integer id;
+
+    @ApiModelProperty("流水线步骤名称")
+    private String title;
+
+    @ApiModelProperty("描述信息")
+    private String description;
+
+    @ApiModelProperty("仅作展示用的字段")
+    private Map<String,String> fakeConfigs;
+
+    @ApiModelProperty("识别名称,用于转换成对应的流水线真实步骤Handler,见core包的 HandlerConfigTable")
+    private String name;
+
+    @ApiModelProperty("可以配置的字段属性")
+    private Map<String,String> configs;
+
+    public StageVO(StagePO stagePO){
+        BeanUtils.copyProperties(stagePO,this);
+    }
+
+}

+ 42 - 0
web/src/main/java/seecoder/devcloud/web/service/impl/pipeline/StageServiceImpl.java

@@ -0,0 +1,42 @@
+package seecoder.devcloud.web.service.impl.pipeline;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import seecoder.devcloud.web.dao.pipeline.StageMapper;
+import seecoder.devcloud.web.model.po.pipeline.StageConfigPO;
+import seecoder.devcloud.web.model.po.pipeline.StagePO;
+import seecoder.devcloud.web.model.vo.pipeline.StageVO;
+import seecoder.devcloud.web.service.pipeline.StageService;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author PuHong Weng
+ * @date 2021/4/14
+ * @description:
+ */
+@Service
+public class StageServiceImpl implements StageService {
+
+    private final StageMapper stageMapper;
+
+    @Autowired
+    public StageServiceImpl(StageMapper stageMapper) {
+        this.stageMapper = stageMapper;
+    }
+
+    @Override
+    public List<StageVO> getAll() {
+        List<StagePO> stages = stageMapper.selectAllStages();
+        for (StagePO stage : stages){
+            List<StageConfigPO> pos = stageMapper.selectConfigs(stage.getId());
+            if (pos.size() == 0){
+                continue;
+            }
+            stage.setFakeConfigs(pos.stream().filter(StageConfigPO::getFake).collect(Collectors.toMap(StageConfigPO::getName, StageConfigPO::getValue)));
+            stage.setConfigs(pos.stream().filter(x->!x.getFake()).collect(Collectors.toMap(StageConfigPO::getName, StageConfigPO::getValue)));
+        }
+        return stages.stream().map(x->new StageVO(x)).collect(Collectors.toList());
+    }
+}

+ 15 - 0
web/src/main/java/seecoder/devcloud/web/service/pipeline/StageService.java

@@ -0,0 +1,15 @@
+package seecoder.devcloud.web.service.pipeline;
+
+import seecoder.devcloud.web.model.vo.pipeline.StageVO;
+
+import java.util.List;
+
+/**
+ * @author PuHong Weng
+ * @date 2021/4/14
+ * @description:
+ */
+public interface StageService {
+
+    List<StageVO> getAll();
+}