This commit is contained in:
even 2025-05-15 15:21:18 +08:00
commit 13b8c8185e
8 changed files with 168 additions and 23 deletions

View File

@ -2,6 +2,8 @@ package cd.casic.ci.common.pipeline.req.resource;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class ResourceQueryReq {
/**
@ -108,4 +110,18 @@ public class ResourceQueryReq {
* 流水线id
*/
private String pipelineId;
/**
* 创建人用户id
*/
private String createUserId;
private String updateUserId;
/**
* 创建时间
*/
private LocalDateTime createTime;
private LocalDateTime updateTime;
}

View File

@ -2,6 +2,8 @@ package cd.casic.ci.common.pipeline.req.resource;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class ResourceReq {
/**
@ -108,4 +110,18 @@ public class ResourceReq {
* 流水线id
*/
private String pipelineId;
/**
* 创建人用户id
*/
private String createUserId;
private String updateUserId;
/**
* 创建时间
*/
private LocalDateTime createTime;
private LocalDateTime updateTime;
}

View File

@ -2,6 +2,8 @@ package cd.casic.ci.common.pipeline.resp.resource;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class ResourceResp {
/**
@ -108,4 +110,18 @@ public class ResourceResp {
* 流水线id
*/
private String pipelineId;
/**
* 创建人用户id
*/
private String createUserId;
private String updateUserId;
/**
* 创建时间
*/
private LocalDateTime createTime;
private LocalDateTime updateTime;
}

View File

@ -2,6 +2,8 @@ package cd.casic.ci.process.process.dataObject.resource;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class PipResource {
/**
@ -108,4 +110,18 @@ public class PipResource {
* 流水线id
*/
private String pipelineId;
/**
* 创建人用户id
*/
private String createUserId;
private String updateUserId;
/**
* 创建时间
*/
private LocalDateTime createTime;
private LocalDateTime updateTime;
}

View File

@ -20,4 +20,6 @@ public interface PipelineService extends IService<PipPipeline> {
String createPipeline(@Valid PipelineCreateReq pipelineReq);
List<PipelineFindResp> findPipelineList(@Valid PipelineQueryReq pipelineQueryReq);
void deletePipeline(String pipelineId);
}

View File

@ -3,16 +3,22 @@ package cd.casic.ci.process.process.service.pipeline.impl;
import cd.casic.ci.common.pipeline.req.pipeline.PipelineCreateReq;
import cd.casic.ci.common.pipeline.req.pipeline.PipelineQueryReq;
import cd.casic.ci.common.pipeline.resp.pipeline.PipelineFindResp;
import cd.casic.ci.common.pipeline.resp.stage.StageResp;
import cd.casic.ci.process.process.converter.PipelineConverter;
import cd.casic.ci.process.process.dal.pipeline.PipResourceDao;
import cd.casic.ci.process.process.dal.pipeline.PipStageDao;
import cd.casic.ci.process.process.dal.pipeline.PipTaskDao;
import cd.casic.ci.process.process.dal.pipeline.PipelineDao;
import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline;
import cd.casic.ci.process.process.dataObject.resource.PipResource;
import cd.casic.ci.process.process.dataObject.stage.PipStage;
import cd.casic.ci.process.process.dataObject.task.PipTask;
import cd.casic.ci.process.process.converter.PipelineConverter;
import cd.casic.ci.process.process.service.pipeline.PipelineService;
import cd.casic.ci.process.process.service.resource.impl.ResourceServiceImpl;
import cd.casic.ci.process.process.service.stage.impl.StageServiceImpl;
import cd.casic.ci.process.process.service.task.impl.TaskServiceImpl;
import cd.casic.framework.commons.exception.ServiceException;
import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants;
import cd.casic.framework.commons.util.object.BeanUtils;
import cd.casic.framework.commons.util.util.WebFrameworkUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -21,6 +27,7 @@ import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import java.time.LocalDateTime;
@ -50,6 +57,15 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
@Resource
private PipelineDao pipelineDao;
@Resource
private PipStageDao pipStageDao;
@Resource
private PipTaskDao pipTaskDao;
@Resource
private PipResourceDao pipResourceDao;
@Override
@Transactional(rollbackFor = Exception.class)
public String createPipeline(PipelineCreateReq pipelineReq) {
@ -85,6 +101,7 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
stageService.save(stageReq1);
PipStage childStage1 = new PipStage();
childStage1.setPipelineId(pipeline.getId());
childStage1.setStageName("源码");
childStage1.setCreateTime(LocalDateTime.now());
childStage1.setStageSort(1);
@ -105,6 +122,7 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
//新增并行阶段
PipStage childStage21 = new PipStage();
childStage21.setStageName("并行阶段-2-1");
childStage21.setPipelineId(pipeline.getId());
childStage21.setCreateTime(LocalDateTime.now());
childStage21.setStageSort(1);
childStage21.setCode(false);
@ -113,8 +131,9 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
//新增串行阶段
PipTask childTask21 = new PipTask();
childTask21.setCreateTime(LocalDateTime.now());
childTask21.setPipelineId(pipeline.getId());
childTask21.setTaskName("串行任务-2-1");
childTask21.setCreateTime(LocalDateTime.now());
childTask21.setTaskType("test");
childTask21.setTaskSort(1);
childTask21.setStageId(childStage21.getStageId());
@ -123,6 +142,7 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
//------------------------------------------------------------------
PipStage childStage22 = new PipStage();
childStage22.setStageName("并行阶段-2-2");
childStage22.setPipelineId(pipeline.getId());
childStage22.setCreateTime(LocalDateTime.now());
childStage22.setStageSort(2);
childStage22.setCode(false);
@ -132,6 +152,7 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
PipTask childTask22 = new PipTask();
childTask22.setCreateTime(LocalDateTime.now());
childTask22.setTaskName("串行任务-2-2");
childTask22.setPipelineId(pipeline.getId());
childTask22.setTaskType("test");
childTask22.setTaskSort(2);
childTask22.setStageId(childStage22.getStageId());
@ -147,20 +168,22 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
stageReq3.setCode(true);
stageService.save(stageReq3);
PipStage childStage3 = new PipStage();
childStage3.setStageName("");
childStage3.setCreateTime(LocalDateTime.now());
childStage3.setStageSort(1);
childStage3.setCode(false);
childStage3.setParentId(stageReq3.getStageId());
stageService.save(childStage3);
PipStage childStage31 = new PipStage();
childStage31.setStageName("并行任务-3-1");
childStage31.setPipelineId(pipeline.getId());
childStage31.setCreateTime(LocalDateTime.now());
childStage31.setStageSort(1);
childStage31.setCode(false);
childStage31.setParentId(stageReq3.getStageId());
stageService.save(childStage31);
PipTask childTask31 = new PipTask();
childTask31.setCreateTime(LocalDateTime.now());
childTask31.setTaskName("串行任务-3-1");
childTask31.setPipelineId(pipeline.getId());
childTask31.setTaskType("test");
childTask31.setTaskSort(1);
childTask31.setStageId(childStage3.getStageId());
childTask31.setStageId(childStage31.getStageId());
taskService.save(childTask31);
//创建第四个阶段
@ -173,20 +196,22 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
stageReq4.setCode(true);
stageService.save(stageReq4);
PipStage childStage4 = new PipStage();
childStage4.setStageName("");
childStage4.setCreateTime(LocalDateTime.now());
childStage4.setStageSort(1);
childStage4.setCode(false);
childStage4.setParentId(stageReq4.getStageId());
stageService.save(childStage4);
PipStage childStage41 = new PipStage();
childStage41.setStageName("并行任务-4-1");
childStage41.setPipelineId(pipeline.getId());
childStage41.setCreateTime(LocalDateTime.now());
childStage41.setStageSort(1);
childStage41.setCode(false);
childStage41.setParentId(stageReq4.getStageId());
stageService.save(childStage41);
PipTask childTask41 = new PipTask();
childTask41.setCreateTime(LocalDateTime.now());
childTask41.setTaskName("串行任务-4-1");
childTask41.setPipelineId(pipeline.getId());
childTask41.setTaskType("test");
childTask41.setTaskSort(1);
childTask41.setStageId(childStage4.getStageId());
childTask41.setStageId(childStage41.getStageId());
taskService.save(childTask41);
//TODO 创建对应的鉴权关系
@ -230,6 +255,56 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
if (ObjectUtils.isEmpty(pipPipelines)){
return new ArrayList<>(0);
}
return PipelineConverter.INSTANCE.toRespList(pipPipelines);
List<PipelineFindResp> respList = PipelineConverter.INSTANCE.toRespList(pipPipelines);
//对流水线进行流水线信息赋值
respList.forEach(this::setStageAndTask);
return respList;
}
private void setStageAndTask(PipelineFindResp o) {
List<StageResp> allStagesTask = stageService.findAllStagesTask(o.getId());
o.setStageList(allStagesTask);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deletePipeline(String pipelineId) {
if (ObjectUtils.isEmpty(pipelineId)){
throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"请求参数不能为空");
}
PipPipeline pipeline = pipelineDao.selectById(pipelineId);
if (ObjectUtils.isEmpty(pipeline)){
throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"流水线不存在");
}
pipelineDao.deleteById(pipelineId);
//根据流水线id查询节点和配置信息
PipStage pipStage = new PipStage();
pipStage.setPipelineId(pipelineId);
List<PipStage> pipStageList = stageService.getPipStageList(pipStage);
if (!CollectionUtils.isEmpty(pipStageList)){
List<String> list = pipStageList.stream().map(PipStage::getStageId).toList();
pipStageDao.deleteByIds(list);
}
PipTask pipTask = new PipTask();
pipTask.setPipelineId(pipelineId);
List<PipTask> task = taskService.getTask(pipTask);
if (!CollectionUtils.isEmpty(task)){
List<String> list = task.stream().map(PipTask::getTaskId).toList();
pipTaskDao.deleteByIds(list);
}
//删除resource表数据
QueryWrapper<PipResource> wrapper = new QueryWrapper<>();
wrapper.eq("pipeline_id",pipelineId);
List<PipResource> pipResources = pipResourceDao.selectList(wrapper);
if (!CollectionUtils.isEmpty(pipResources)){
List<String> list = pipResources.stream().map(PipResource::getId).toList();
pipResourceDao.deleteByIds(list);
}
}
}

View File

@ -3,7 +3,6 @@ package cd.casic.ci.process.process.service.stage.impl;
import cd.casic.ci.common.pipeline.req.stage.StageCreateReq;
import cd.casic.ci.common.pipeline.req.stage.StageReq;
import cd.casic.ci.common.pipeline.req.stage.StageUpdateReq;
import cd.casic.ci.common.pipeline.req.task.TaskCreateReq;
import cd.casic.ci.common.pipeline.resp.stage.StageResp;
@ -28,9 +27,14 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import static cd.casic.ci.process.constant.PipelineFinalConstant.TASK_TYPE_CODE;
@Service
public class StageServiceImpl extends ServiceImpl<PipStageDao, PipStage> implements StageService {
@Resource
@ -219,7 +223,7 @@ public class StageServiceImpl extends ServiceImpl<PipStageDao, PipStage> impleme
// TODO 删除流水线不知道要不要
}
private List<PipStage> getPipStageList(PipStage pipStage){
public List<PipStage> getPipStageList(PipStage pipStage){
LambdaQueryWrapper<PipStage> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(StringUtils.isNotEmpty(pipStage.getStageId()),PipStage::getStageId,pipStage.getStageId());
wrapper.eq(StringUtils.isNotEmpty(pipStage.getPipelineId()),PipStage::getPipelineId,pipStage.getPipelineId());

View File

@ -57,7 +57,7 @@ public class PipelineController {
@PostMapping(path="/deletePipeline")
public CommonResult<Void> deletePipeline(@NotNull String pipelineId){
// pipelineService.deletePipeline(pipelineId);
pipelineService.deletePipeline(pipelineId);
return CommonResult.success();
}