Skip to content

Commit d571f1d

Browse files
committed
CLAP-59 Fix: 승인대기요청 관련 메서드 명칭 변경
1 parent e87de86 commit d571f1d

File tree

10 files changed

+56
-103
lines changed

10 files changed

+56
-103
lines changed

src/main/java/clap/server/adapter/inbound/web/dto/task/FilterTaskStatusRequestedListResponse.java renamed to src/main/java/clap/server/adapter/inbound/web/dto/task/FilterPendingApprovalResponse.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import java.time.LocalDateTime;
66

7-
public record FilterTaskStatusRequestedListResponse(
7+
public record FilterPendingApprovalResponse(
88
Long taskId,
99
String taskCode,
1010
LocalDateTime requestedAt,

src/main/java/clap/server/adapter/inbound/web/dto/task/FilterTaskListRequest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,9 @@
44
import clap.server.adapter.outbound.persistense.entity.task.constant.TaskStatus;
55
import io.swagger.v3.oas.annotations.media.Schema;
66
import jakarta.validation.constraints.NotNull;
7-
import org.springframework.beans.factory.annotation.Value;
87

98
import java.util.List;
109

11-
@Schema(description = "작업 필터링 요청")
1210
public record FilterTaskListRequest(
1311

1412
@Schema(description = "검색 기간 (단위: 시간)", example = "1, 24, 168, 730, 2190 (1시간, 24시간, 1주일, 1개월, 3개월)")

src/main/java/clap/server/adapter/inbound/web/task/FindTaskController.java

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package clap.server.adapter.inbound.web.task;
22

33
import clap.server.adapter.inbound.security.SecurityUserDetails;
4-
import clap.server.adapter.inbound.web.dto.task.FilterTaskStatusRequestedListResponse;
5-
import clap.server.adapter.inbound.web.dto.task.FindTaskDetailsResponse;
6-
import clap.server.adapter.inbound.web.dto.task.FilterTaskListRequest;
7-
import clap.server.adapter.inbound.web.dto.task.FilterTaskListResponse;
4+
import clap.server.adapter.inbound.web.dto.task.*;
85
import clap.server.application.port.inbound.task.FindTaskDetailsUsecase;
96
import clap.server.application.port.inbound.task.FindTaskListUsecase;
107
import clap.server.common.annotation.architecture.WebAdapter;
@@ -20,8 +17,6 @@
2017
import org.springframework.security.core.annotation.AuthenticationPrincipal;
2118
import org.springframework.web.bind.annotation.*;
2219

23-
import java.util.List;
24-
2520
@Tag(name = "작업 조회")
2621
@WebAdapter
2722
@RestController
@@ -34,31 +29,31 @@ public class FindTaskController {
3429
@Operation(summary = "사용자 요청 작업 목록 조회")
3530
@Secured({"ROLE_USER"})
3631
@GetMapping("/requests")
37-
public ResponseEntity<Page<FilterTaskListResponse>> getRequestedTaskList(
32+
public ResponseEntity<Page<FilterTaskListResponse>> findTasksRequestedByUser(
3833
@RequestParam(defaultValue = "0") int page,
3934
@RequestParam(defaultValue = "20") int pageSize,
4035
@ModelAttribute FilterTaskListRequest filterTaskListRequest,
4136
@AuthenticationPrincipal SecurityUserDetails userInfo){
4237
Pageable pageable = PageRequest.of(page, pageSize);
43-
return ResponseEntity.ok(taskListUsecase.findRequestedTaskList(userInfo.getUserId(), pageable, filterTaskListRequest));
38+
return ResponseEntity.ok(taskListUsecase.findTasksRequestedByUser(userInfo.getUserId(), pageable, filterTaskListRequest));
4439
}
4540
@Operation(summary = "요청한 작업 상세 조회")
4641
@Secured({"ROLE_USER", "ROLE_MANAGER"})
4742
@GetMapping("/requests/details/{taskId}")
48-
public ResponseEntity<FindTaskDetailsResponse> getRequestedTaskDetails(
43+
public ResponseEntity<FindTaskDetailsResponse> findRequestedTaskDetails(
4944
@PathVariable Long taskId,
5045
@AuthenticationPrincipal SecurityUserDetails userInfo){
5146
return ResponseEntity.ok(taskDetailsUsecase.findRequestedTaskDetails(userInfo.getUserId(), taskId));
5247
}
5348
@Operation(summary = "승인대기 중인 요청 목록 조회")
5449
@Secured({"ROLE_MANAGER"})
5550
@GetMapping("/requests/pending")
56-
public ResponseEntity<Page<FilterTaskStatusRequestedListResponse>> getApprovalPendingTasks(
51+
public ResponseEntity<Page<FilterPendingApprovalResponse>> findPendingApprovalTasks(
5752
@RequestParam(defaultValue = "0") int page,
5853
@RequestParam(defaultValue = "20") int pageSize,
5954
@ModelAttribute FilterTaskListRequest filterTaskListRequest,
6055
@AuthenticationPrincipal SecurityUserDetails userInfo){
6156
Pageable pageable = PageRequest.of(page, pageSize);
62-
return ResponseEntity.ok(taskListUsecase.findTaskListByTaskStatusRequested(userInfo.getUserId(), pageable, filterTaskListRequest));
57+
return ResponseEntity.ok(taskListUsecase.findPendingApprovalTasks(userInfo.getUserId(), pageable, filterTaskListRequest));
6358
}
6459
}

src/main/java/clap/server/adapter/outbound/persistense/TaskPersistenceAdapter.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import clap.server.adapter.inbound.web.dto.task.FilterTaskListRequest;
44
import clap.server.adapter.inbound.web.dto.task.FilterTaskListResponse;
5-
import clap.server.adapter.inbound.web.dto.task.FilterTaskStatusRequestedListResponse;
5+
import clap.server.adapter.inbound.web.dto.task.FilterPendingApprovalResponse;
66
import clap.server.adapter.outbound.persistense.entity.task.TaskEntity;
77
import clap.server.adapter.outbound.persistense.mapper.TaskPersistenceMapper;
88
import clap.server.adapter.outbound.persistense.repository.task.TaskRepository;
@@ -39,17 +39,17 @@ public Optional<Task> findById(Long id) {
3939
}
4040

4141
@Override
42-
public Page<FilterTaskListResponse> findAllByRequesterId(Long requesterId, Pageable pageable, FilterTaskListRequest filterTaskListRequest) {
43-
Page<Task> taskList = taskRepository.findRequestedTaskList(requesterId, pageable, filterTaskListRequest)
42+
public Page<FilterTaskListResponse> findTasksRequestedByUser(Long requesterId, Pageable pageable, FilterTaskListRequest filterTaskListRequest) {
43+
Page<Task> taskList = taskRepository.findTasksRequestedByUser(requesterId, pageable, filterTaskListRequest)
4444
.map(taskPersistenceMapper::toDomain);
4545
return taskList.map(TaskMapper::toFilterTaskListResponse);
4646
}
4747

4848
@Override
49-
public Page<FilterTaskStatusRequestedListResponse> findAllByTaskStatusRequested(Pageable pageable, FilterTaskListRequest filterTaskListRequest) {
50-
Page<Task> taskList = taskRepository.findAllByTaskStatusRequested(pageable, filterTaskListRequest)
49+
public Page<FilterPendingApprovalResponse> findPendingApprovalTasks(Pageable pageable, FilterTaskListRequest filterTaskListRequest) {
50+
Page<Task> taskList = taskRepository.findPendingApprovalTasks(pageable, filterTaskListRequest)
5151
.map(taskPersistenceMapper::toDomain);
52-
return taskList.map(TaskMapper::toFilterTaskStatusRequestedListResponse);
52+
return taskList.map(TaskMapper::toFilterPendingApprovalTasksResponse);
5353
}
5454

5555
@Override

src/main/java/clap/server/adapter/outbound/persistense/repository/task/TaskCustomRepository.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77

88
public interface TaskCustomRepository {
99

10-
Page<TaskEntity> findRequestedTaskList(Long requesterId, Pageable pageable, FilterTaskListRequest findTaskListRequest);
11-
Page<TaskEntity> findAllByTaskStatusRequested(Pageable pageable, FilterTaskListRequest findTaskListRequest);
10+
Page<TaskEntity> findTasksRequestedByUser(Long requesterId, Pageable pageable, FilterTaskListRequest findTaskListRequest);
11+
Page<TaskEntity> findPendingApprovalTasks(Pageable pageable, FilterTaskListRequest findTaskListRequest);
1212
}

src/main/java/clap/server/adapter/outbound/persistense/repository/task/TaskCustomRepositoryImpl.java

Lines changed: 28 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -26,85 +26,45 @@ public class TaskCustomRepositoryImpl implements TaskCustomRepository {
2626
private final JPAQueryFactory queryFactory;
2727

2828
@Override
29-
public Page<TaskEntity> findRequestedTaskList(Long requesterId, Pageable pageable, FilterTaskListRequest findTaskListRequest) {
30-
BooleanBuilder whereClause = new BooleanBuilder();
29+
public Page<TaskEntity> findTasksRequestedByUser(Long requesterId, Pageable pageable, FilterTaskListRequest findTaskListRequest) {
30+
BooleanBuilder whereClause = createFilter(findTaskListRequest);
3131
whereClause.and(taskEntity.requester.memberId.eq(requesterId));
32-
33-
List<Long> categoryIds = findTaskListRequest.categoryIds();
34-
List<Long> mainCategoryIds = findTaskListRequest.mainCategoryIds();
35-
String title = findTaskListRequest.title();
36-
String nickName = findTaskListRequest.nickName();
37-
List<TaskStatus> taskStatuses = findTaskListRequest.taskStatus();
38-
Integer termHours = findTaskListRequest.term();
39-
String sortBy = findTaskListRequest.orderRequest().sortBy();
40-
String sortDirection = findTaskListRequest.orderRequest().sortDirection();
41-
42-
if (termHours != null) {
43-
LocalDateTime fromDate = LocalDateTime.now().minusHours(termHours);
44-
whereClause.and(taskEntity.createdAt.after(fromDate));
45-
}
46-
if (!categoryIds.isEmpty()) {
47-
whereClause.and(taskEntity.category.categoryId.in(categoryIds));
48-
}
49-
if (!mainCategoryIds.isEmpty()) {
50-
whereClause.and(taskEntity.category.mainCategory.categoryId.in(mainCategoryIds));
51-
}
52-
if (!title.isEmpty()) {
53-
whereClause.and(taskEntity.title.containsIgnoreCase(title));
54-
}
55-
if (!nickName.isEmpty()) {
56-
whereClause.and(taskEntity.processor.nickname.eq(nickName));
57-
}
58-
if (!taskStatuses.isEmpty()) {
59-
whereClause.and(taskEntity.taskStatus.in(taskStatuses));
60-
}
61-
62-
OrderSpecifier<?> orderSpecifier = getOrderSpecifier(sortBy, sortDirection);
63-
64-
List<TaskEntity> result = queryFactory
65-
.selectFrom(taskEntity)
66-
.where(whereClause)
67-
.orderBy(orderSpecifier)
68-
.offset(pageable.getOffset())
69-
.limit(pageable.getPageSize())
70-
.fetch();
71-
int total = queryFactory
72-
.selectFrom(taskEntity)
73-
.where(whereClause)
74-
.fetch().size();
75-
return new PageImpl<>(result, pageable, total);
32+
return getTasksPage(pageable, whereClause, findTaskListRequest.orderRequest().sortBy(), findTaskListRequest.orderRequest().sortDirection());
7633
}
7734

7835
@Override
79-
public Page<TaskEntity> findAllByTaskStatusRequested(Pageable pageable, FilterTaskListRequest filterTaskListRequest) {
80-
BooleanBuilder whereClause = new BooleanBuilder();
81-
82-
List<Long> categoryIds = filterTaskListRequest.categoryIds();
83-
List<Long> mainCategoryIds = filterTaskListRequest.mainCategoryIds();
84-
String title = filterTaskListRequest.title();
85-
String nickName = filterTaskListRequest.nickName();
36+
public Page<TaskEntity> findPendingApprovalTasks(Pageable pageable, FilterTaskListRequest filterTaskListRequest) {
37+
BooleanBuilder whereClause = createFilter(filterTaskListRequest);
38+
whereClause.and(taskEntity.taskStatus.eq(TaskStatus.REQUESTED));
39+
return getTasksPage(pageable, whereClause, filterTaskListRequest.orderRequest().sortBy(), filterTaskListRequest.orderRequest().sortDirection());
40+
}
8641

87-
Integer termHours = filterTaskListRequest.term();
88-
String sortBy = filterTaskListRequest.orderRequest().sortBy();
89-
String sortDirection = filterTaskListRequest.orderRequest().sortDirection();
42+
private BooleanBuilder createFilter(FilterTaskListRequest request) {
43+
BooleanBuilder whereClause = new BooleanBuilder();
9044

91-
if (termHours != null) {
92-
LocalDateTime fromDate = LocalDateTime.now().minusHours(termHours);
45+
if (request.term() != null) {
46+
LocalDateTime fromDate = LocalDateTime.now().minusHours(request.term());
9347
whereClause.and(taskEntity.createdAt.after(fromDate));
9448
}
95-
if (!categoryIds.isEmpty()) {
96-
whereClause.and(taskEntity.category.categoryId.in(categoryIds));
49+
if (!request.categoryIds().isEmpty()) {
50+
whereClause.and(taskEntity.category.categoryId.in(request.categoryIds()));
51+
}
52+
if (!request.mainCategoryIds().isEmpty()) {
53+
whereClause.and(taskEntity.category.mainCategory.categoryId.in(request.mainCategoryIds()));
9754
}
98-
if (!mainCategoryIds.isEmpty()) {
99-
whereClause.and(taskEntity.category.mainCategory.categoryId.in(mainCategoryIds));
55+
if (!request.title().isEmpty()) {
56+
whereClause.and(taskEntity.title.containsIgnoreCase(request.title()));
10057
}
101-
if (!title.isEmpty()) {
102-
whereClause.and(taskEntity.title.containsIgnoreCase(title));
58+
if (!request.nickName().isEmpty()) {
59+
whereClause.and(taskEntity.processor.nickname.eq(request.nickName()));
10360
}
104-
if (!nickName.isEmpty()) {
105-
whereClause.and(taskEntity.requester.nickname.eq(nickName));
61+
if (!request.taskStatus().isEmpty()) {
62+
whereClause.and(taskEntity.taskStatus.in(request.taskStatus()));
10663
}
64+
return whereClause;
65+
}
10766

67+
private Page<TaskEntity> getTasksPage(Pageable pageable, BooleanBuilder whereClause, String sortBy, String sortDirection) {
10868
OrderSpecifier<?> orderSpecifier = getOrderSpecifier(sortBy, sortDirection);
10969

11070
List<TaskEntity> result = queryFactory
@@ -114,7 +74,7 @@ public Page<TaskEntity> findAllByTaskStatusRequested(Pageable pageable, FilterTa
11474
.offset(pageable.getOffset())
11575
.limit(pageable.getPageSize())
11676
.fetch();
117-
int total = queryFactory
77+
long total = queryFactory
11878
.selectFrom(taskEntity)
11979
.where(whereClause)
12080
.fetch().size();
@@ -131,4 +91,4 @@ private OrderSpecifier<?> getOrderSpecifier(String sortBy, String sortDirection)
13191
? new OrderSpecifier<>(ASC, sortColumn)
13292
: new OrderSpecifier<>(DESC, sortColumn);
13393
}
134-
}
94+
}

src/main/java/clap/server/application/Task/FindTaskListService.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import clap.server.adapter.inbound.web.dto.task.FilterTaskListRequest;
44
import clap.server.adapter.inbound.web.dto.task.FilterTaskListResponse;
55

6-
import clap.server.adapter.inbound.web.dto.task.FilterTaskStatusRequestedListResponse;
6+
import clap.server.adapter.inbound.web.dto.task.FilterPendingApprovalResponse;
77
import clap.server.application.port.inbound.domain.MemberService;
88

99
import clap.server.application.port.inbound.task.FindTaskListUsecase;
@@ -29,14 +29,14 @@ public class FindTaskListService implements FindTaskListUsecase {
2929

3030

3131
@Override
32-
public Page<FilterTaskListResponse> findRequestedTaskList(Long requesterId, Pageable pageable, FilterTaskListRequest findTaskListRequest) {
32+
public Page<FilterTaskListResponse> findTasksRequestedByUser(Long requesterId, Pageable pageable, FilterTaskListRequest findTaskListRequest) {
3333
Member requester = memberService.findActiveMember(requesterId);
34-
return loadTaskPort.findAllByRequesterId(requester.getMemberId(), pageable, findTaskListRequest);
34+
return loadTaskPort.findTasksRequestedByUser(requester.getMemberId(), pageable, findTaskListRequest);
3535
}
3636

3737
@Override
38-
public Page<FilterTaskStatusRequestedListResponse> findTaskListByTaskStatusRequested(Long managerId, Pageable pageable, FilterTaskListRequest filterTaskListRequest) {
38+
public Page<FilterPendingApprovalResponse> findPendingApprovalTasks(Long managerId, Pageable pageable, FilterTaskListRequest filterTaskListRequest) {
3939
memberService.findActiveMember(managerId);
40-
return loadTaskPort.findAllByTaskStatusRequested(pageable, filterTaskListRequest);
40+
return loadTaskPort.findPendingApprovalTasks(pageable, filterTaskListRequest);
4141
}
4242
}

src/main/java/clap/server/application/mapper/TaskMapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ public static FilterTaskListResponse toFilterTaskListResponse(Task task) {
3636
);
3737
}
3838

39-
public static FilterTaskStatusRequestedListResponse toFilterTaskStatusRequestedListResponse(Task task) {
40-
return new FilterTaskStatusRequestedListResponse(
39+
public static FilterPendingApprovalResponse toFilterPendingApprovalTasksResponse(Task task) {
40+
return new FilterPendingApprovalResponse(
4141
task.getTaskId(),
4242
task.getTaskCode(),
4343
task.getUpdatedAt(),

src/main/java/clap/server/application/port/inbound/task/FindTaskListUsecase.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
import clap.server.adapter.inbound.web.dto.task.FilterTaskListRequest;
44
import clap.server.adapter.inbound.web.dto.task.FilterTaskListResponse;
5-
import clap.server.adapter.inbound.web.dto.task.FilterTaskStatusRequestedListResponse;
5+
import clap.server.adapter.inbound.web.dto.task.FilterPendingApprovalResponse;
66
import org.springframework.data.domain.Page;
77
import org.springframework.data.domain.Pageable;
88

99
public interface FindTaskListUsecase {
10-
Page<FilterTaskListResponse> findRequestedTaskList(Long memberId, Pageable pageable, FilterTaskListRequest findTaskListRequest);
10+
Page<FilterTaskListResponse> findTasksRequestedByUser(Long memberId, Pageable pageable, FilterTaskListRequest findTaskListRequest);
1111

12-
Page<FilterTaskStatusRequestedListResponse> findTaskListByTaskStatusRequested(Long userId, Pageable pageable, FilterTaskListRequest filterTaskListRequest);
12+
Page<FilterPendingApprovalResponse> findPendingApprovalTasks(Long userId, Pageable pageable, FilterTaskListRequest filterTaskListRequest);
1313
}

src/main/java/clap/server/application/port/outbound/task/LoadTaskPort.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import clap.server.adapter.inbound.web.dto.task.FilterTaskListRequest;
44
import clap.server.adapter.inbound.web.dto.task.FilterTaskListResponse;
5-
import clap.server.adapter.inbound.web.dto.task.FilterTaskStatusRequestedListResponse;
5+
import clap.server.adapter.inbound.web.dto.task.FilterPendingApprovalResponse;
66
import clap.server.domain.model.task.Task;
77
import org.springframework.data.domain.Page;
88
import org.springframework.data.domain.Pageable;
@@ -16,8 +16,8 @@ public interface LoadTaskPort {
1616

1717
List<Task> findYesterdayTaskByDate(LocalDateTime now);
1818

19-
Page<FilterTaskListResponse> findAllByRequesterId(Long requesterId, Pageable pageable, FilterTaskListRequest findTaskListRequest);
19+
Page<FilterTaskListResponse> findTasksRequestedByUser(Long requesterId, Pageable pageable, FilterTaskListRequest findTaskListRequest);
2020

21-
Page<FilterTaskStatusRequestedListResponse> findAllByTaskStatusRequested(Pageable pageable, FilterTaskListRequest filterTaskListRequest);
21+
Page<FilterPendingApprovalResponse> findPendingApprovalTasks(Pageable pageable, FilterTaskListRequest filterTaskListRequest);
2222

2323
}

0 commit comments

Comments
 (0)