Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import site.icebang.common.dto.PageResult;
import site.icebang.domain.workflow.dto.WorkflowCardDto;
import site.icebang.domain.workflow.service.WorkflowExecutionService;
import site.icebang.domain.workflow.service.WorkflowHistoryService;
import site.icebang.domain.workflow.service.WorkflowService;

@RestController
Expand All @@ -18,6 +19,7 @@
public class WorkflowController {
private final WorkflowService workflowService;
private final WorkflowExecutionService workflowExecutionService;
private final WorkflowHistoryService workflowHistoryService;

@GetMapping("")
public ApiResponse<PageResult<WorkflowCardDto>> getWorkflowList(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package site.icebang.domain.workflow.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;

import lombok.RequiredArgsConstructor;

import site.icebang.common.dto.ApiResponse;
import site.icebang.common.dto.PageParams;
import site.icebang.common.dto.PageResult;
import site.icebang.domain.workflow.dto.WorkflowHistoryDTO;
import site.icebang.domain.workflow.dto.WorkflowRunDetailResponse;
import site.icebang.domain.workflow.service.WorkflowHistoryService;

Expand All @@ -17,6 +17,13 @@
public class WorkflowHistoryController {
private final WorkflowHistoryService workflowHistoryService;

@GetMapping("")
public ApiResponse<PageResult<WorkflowHistoryDTO>> getWorkflowHistoryList(
@ModelAttribute PageParams pageParams) {
PageResult<WorkflowHistoryDTO> response = workflowHistoryService.getPagedResult(pageParams);
return ApiResponse.success(response);
}

/**
* 워크플로우 실행 상세 조회
*
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package site.icebang.domain.workflow.dto;

import java.math.BigInteger;
import java.time.LocalDateTime;

import lombok.Data;

@Data
public class WorkflowHistoryDTO {

private BigInteger id;
private BigInteger workflowId;
private String traceId;
private LocalDateTime startedAt;
private LocalDateTime finishedAt;
private BigInteger createdBy;
private String triggerType;
private String runNumber;
private String status;
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@

import org.apache.ibatis.annotations.Mapper;

import site.icebang.common.dto.PageParams;
import site.icebang.domain.workflow.dto.JobRunDto;
import site.icebang.domain.workflow.dto.TaskRunDto;
import site.icebang.domain.workflow.dto.WorkflowHistoryDTO;
import site.icebang.domain.workflow.dto.WorkflowRunDto;

@Mapper
Expand Down Expand Up @@ -41,4 +43,20 @@ public interface WorkflowHistoryMapper {
* @return String traceId
*/
String selectTraceIdByRunId(Long runId);

/**
* 워크플로우 런 페이지네이션
*
* @param pageParams pageParams
* @return List<WorkflowHistoryDTO>
*/
List<WorkflowHistoryDTO> selectWorkflowHistoryList(PageParams pageParams);

/**
* 워크플로우 런 인스턴스 개수 조회
*
* @param pageParams pageParams
* @return 결과 개수
*/
int selectWorkflowHistoryCount(PageParams pageParams);
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,33 @@

import lombok.RequiredArgsConstructor;

import site.icebang.common.dto.PageParams;
import site.icebang.common.dto.PageResult;
import site.icebang.common.service.PageableService;
import site.icebang.domain.workflow.dto.*;
import site.icebang.domain.workflow.mapper.WorkflowHistoryMapper;

@Service
@RequiredArgsConstructor
public class WorkflowHistoryService {
public class WorkflowHistoryService implements PageableService<WorkflowHistoryDTO> {
private final WorkflowHistoryMapper workflowHistoryMapper;

/**
* 워크플로우 런 조회
*
* @param pageParams pageParams
* @return PageResult
*/
@Override
@Transactional(readOnly = true)
public PageResult<WorkflowHistoryDTO> getPagedResult(PageParams pageParams) {

return PageResult.from(
pageParams,
() -> workflowHistoryMapper.selectWorkflowHistoryList(pageParams),
() -> workflowHistoryMapper.selectWorkflowHistoryCount(pageParams));
}

/**
* 워크플로우 실행 상세 조회
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,31 @@
LEFT JOIN user u ON w.created_by = u.id
WHERE w.id = #{id}
</select>

<select id="selectWorkflowHistoryList" parameterType="site.icebang.common.dto.PageParams"
resultType="site.icebang.domain.workflow.dto.WorkflowHistoryDTO">
SELECT
wr.id,
wr.workflow_id,
wr.trace_id,
wr.run_number,
wr.status,
wr.trigger_type,
wr.started_at,
wr.finished_at,
wr.created_by,
wr.created_at
FROM workflow_run wr
WHERE 1=1
ORDER BY wr.created_at DESC
LIMIT #{pageSize} OFFSET #{offset}
</select>

<select id="selectWorkflowHistoryCount" parameterType="site.icebang.common.dto.PageParams"
resultType="int">
SELECT COUNT(*)
FROM workflow_run
WHERE 1=1
</select>

</mapper>
Loading