Skip to content

Commit c2300aa

Browse files
committed
CLAP-108 Feat: 카테고리 필터링 리팩토링
1 parent 25f42ce commit c2300aa

File tree

12 files changed

+73
-51
lines changed

12 files changed

+73
-51
lines changed

src/main/java/clap/server/adapter/inbound/web/dto/task/CreateAndUpdateTaskResponse.java renamed to src/main/java/clap/server/adapter/inbound/web/dto/task/CreateTaskResponse.java

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

33

44

5-
public record CreateAndUpdateTaskResponse(
5+
public record CreateTaskResponse(
66
Long taskId,
77
Long categoryId,
88
String title

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

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

33

44
import clap.server.adapter.outbound.persistense.entity.task.constant.TaskStatus;
5+
import clap.server.domain.model.task.Term;
6+
7+
import java.util.List;
58

69
public record FindTaskListRequest(
7-
Integer term, //조회기간: 1주일, 1개월, 3개월
8-
Long categoryId,
9-
Long mainCategoryId,
10+
Term term,
11+
List<Long> categoryIds,
12+
List<Long> mainCategoryIds,
1013
String title,
1114
String nickName, //처리자 닉네임
1215
TaskStatus taskStatus
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package clap.server.adapter.inbound.web.dto.task;
2+
3+
public record UpdateTaskResponse(
4+
Long taskId,
5+
Long categoryId,
6+
String title
7+
) {
8+
}

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package clap.server.adapter.inbound.web.task;
22

33
import clap.server.adapter.inbound.web.dto.task.CreateTaskRequest;
4-
import clap.server.adapter.inbound.web.dto.task.CreateAndUpdateTaskResponse;
4+
import clap.server.adapter.inbound.web.dto.task.CreateTaskResponse;
55
import clap.server.adapter.inbound.web.dto.task.UpdateTaskRequest;
6+
import clap.server.adapter.inbound.web.dto.task.UpdateTaskResponse;
67
import clap.server.application.port.inbound.task.CreateTaskUsecase;
78
import clap.server.application.port.inbound.task.UpdateTaskUsecase;
89
import clap.server.common.annotation.architecture.WebAdapter;
@@ -23,13 +24,13 @@ public class ManagementTaskController {
2324
private static final Long memberId = 4L;
2425

2526
@PostMapping
26-
public ResponseEntity<CreateAndUpdateTaskResponse> createTask(
27+
public ResponseEntity<CreateTaskResponse> createTask(
2728
@RequestBody @Valid CreateTaskRequest createTaskRequest){
2829
return ResponseEntity.ok(createTaskUsecase.createTask(memberId, createTaskRequest));
2930
}
3031

3132
@PatchMapping
32-
public ResponseEntity<CreateAndUpdateTaskResponse> updateTask(
33+
public ResponseEntity<UpdateTaskResponse> updateTask(
3334
@RequestBody @Valid UpdateTaskRequest updateTaskRequest){
3435
return ResponseEntity.ok(updateTaskUsecase.updateTask(memberId, updateTaskRequest));
3536
}

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
@Repository
99
public interface AttachmentRepository extends JpaRepository<AttachmentEntity, Long> {
1010
List<AttachmentEntity> findAllByTask_TaskId(Long taskId);
11-
// fileIds 목록을 받아 해당하는 파일들을 삭제
1211
void deleteAllByAttachmentIdIn(List<Long> attachmentIds);
1312

1413
}

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

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import clap.server.adapter.outbound.persistense.entity.task.QTaskEntity;
55
import clap.server.adapter.outbound.persistense.entity.task.TaskEntity;
66
import clap.server.adapter.outbound.persistense.entity.task.constant.TaskStatus;
7+
import clap.server.domain.model.task.Term;
78
import com.querydsl.core.BooleanBuilder;
89
import com.querydsl.jpa.impl.JPAQueryFactory;
910
import lombok.RequiredArgsConstructor;
@@ -27,22 +28,22 @@ public Page<TaskEntity> findRequestedTaskList(Long requesterId, Pageable pageabl
2728
BooleanBuilder whereClause = new BooleanBuilder();
2829
whereClause.and(task.requester.memberId.eq(requesterId));
2930

30-
Long categoryId = findTaskListRequest.categoryId();
31-
Long mainCategoryId = findTaskListRequest.mainCategoryId();
31+
List<Long> categoryIds = findTaskListRequest.categoryIds();
32+
List<Long> mainCategoryIds = findTaskListRequest.mainCategoryIds();
3233
String title = findTaskListRequest.title();
3334
String nickName = findTaskListRequest.nickName();
3435
TaskStatus taskStatus = findTaskListRequest.taskStatus();
35-
Integer term = findTaskListRequest.term();
36+
Term term = findTaskListRequest.term();
3637

3738
if (term != null) {
38-
LocalDateTime fromDate = LocalDateTime.now().minusMonths(term);
39+
LocalDateTime fromDate = LocalDateTime.now().minusMonths(term.getHours());
3940
whereClause.and(task.createdAt.after(fromDate));
4041
}
41-
if (categoryId != null) {
42-
whereClause.and(task.category.categoryId.eq(categoryId));
42+
if (categoryIds != null && !categoryIds.isEmpty()) {
43+
whereClause.and(task.category.categoryId.in(categoryIds)); // 리스트를 처리하는 in 조건
4344
}
44-
if (mainCategoryId != null) {
45-
whereClause.and(task.category.mainCategory.categoryId.eq(mainCategoryId));
45+
if (mainCategoryIds != null && !mainCategoryIds.isEmpty()) {
46+
whereClause.and(task.category.mainCategory.categoryId.in(mainCategoryIds)); // 리스트를 처리하는 in 조건
4647
}
4748
if (title != null && !title.isEmpty()) {
4849
whereClause.and(task.title.containsIgnoreCase(title));

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package clap.server.application.Task;
22

33
import clap.server.adapter.inbound.web.dto.task.CreateTaskRequest;
4-
import clap.server.adapter.inbound.web.dto.task.CreateAndUpdateTaskResponse;
4+
import clap.server.adapter.inbound.web.dto.task.CreateTaskResponse;
55

66
import clap.server.application.mapper.TaskMapper;
77
import clap.server.application.port.inbound.domain.CategoryService;
@@ -33,7 +33,7 @@ public class CreateTaskService implements CreateTaskUsecase {
3333

3434
@Override
3535
@Transactional
36-
public CreateAndUpdateTaskResponse createTask(Long requesterId, CreateTaskRequest createTaskRequest) {
36+
public CreateTaskResponse createTask(Long requesterId, CreateTaskRequest createTaskRequest) {
3737
Member member = memberService.findActiveMember(requesterId);
3838
Category category = categoryService.findById(createTaskRequest.categoryId());
3939
Task task = Task.createTask(member, category, createTaskRequest.title(), createTaskRequest.description());
@@ -42,6 +42,6 @@ public CreateAndUpdateTaskResponse createTask(Long requesterId, CreateTaskReques
4242
List<Attachment> attachments = Attachment.createAttachments(savedTask, createTaskRequest.fileUrls());
4343
commandAttachmentPort.saveAll(attachments);
4444

45-
return TaskMapper.toCreateAndUpdateTaskResponse(savedTask);
45+
return TaskMapper.toCreateTaskResponse(savedTask);
4646
}
4747
}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package clap.server.application.Task;
22

3-
import clap.server.adapter.inbound.web.dto.task.CreateAndUpdateTaskResponse;
43
import clap.server.adapter.inbound.web.dto.task.UpdateTaskRequest;
4+
import clap.server.adapter.inbound.web.dto.task.UpdateTaskResponse;
55
import clap.server.application.mapper.AttachmentMapper;
66
import clap.server.application.mapper.TaskMapper;
77
import clap.server.application.port.inbound.domain.CategoryService;
@@ -39,7 +39,7 @@ public class UpdateTaskService implements UpdateTaskUsecase {
3939

4040
@Override
4141
@Transactional
42-
public CreateAndUpdateTaskResponse updateTask(Long requesterId, UpdateTaskRequest updateTaskRequest) {
42+
public UpdateTaskResponse updateTask(Long requesterId, UpdateTaskRequest updateTaskRequest) {
4343
Member member = memberService.findActiveMember(requesterId);
4444
Category category = categoryService.findById(updateTaskRequest.categoryId());
4545
Task task = taskService.findById(updateTaskRequest.taskId());
@@ -52,6 +52,6 @@ public CreateAndUpdateTaskResponse updateTask(Long requesterId, UpdateTaskReques
5252

5353
List<Attachment> attachments = Attachment.updateAttachments(savedTask, updateTaskRequest.attachmentRequests());
5454
commandAttachmentPort.saveAll(attachments);
55-
return TaskMapper.toCreateAndUpdateTaskResponse(savedTask);
55+
return TaskMapper.toUpdateTaskResponse(savedTask);
5656
}
5757
}

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

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,25 @@
11
package clap.server.application.mapper;
22

33

4-
import clap.server.adapter.inbound.web.dto.task.AttachmentResponse;
5-
import clap.server.adapter.inbound.web.dto.task.CreateAndUpdateTaskResponse;
6-
import clap.server.adapter.inbound.web.dto.task.FindTaskDetailsResponse;
7-
import clap.server.adapter.inbound.web.dto.task.FindTaskListResponse;
8-
import clap.server.adapter.outbound.persistense.entity.task.constant.TaskStatus;
9-
import clap.server.domain.model.member.Member;
4+
import clap.server.adapter.inbound.web.dto.task.*;
5+
106
import clap.server.domain.model.task.Attachment;
11-
import clap.server.domain.model.task.Category;
7+
128
import clap.server.domain.model.task.Task;
139

14-
import java.time.LocalDateTime;
15-
import java.time.format.DateTimeFormatter;
1610
import java.util.List;
1711
import java.util.stream.Collectors;
1812

1913
public class TaskMapper {
2014
private TaskMapper() {
2115
throw new IllegalArgumentException();
2216
}
23-
private static final String formattedDateTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmm"));
24-
25-
public static Task toUpdatedTask(Task task, Member member, Category category, String title, String description) {
26-
27-
return Task.builder()
28-
.taskId(task.getTaskId())
29-
.title(title)
30-
.description(description)
31-
.category(category)
32-
.requester(member)
33-
.taskStatus(TaskStatus.REQUESTED)
34-
.taskCode(category.getMainCategory().getCode() + formattedDateTime)
35-
.build();
17+
public static CreateTaskResponse toCreateTaskResponse(Task task) {
18+
return new CreateTaskResponse(task.getTaskId(), task.getCategory().getCategoryId(), task.getTitle());
3619
}
3720

38-
39-
public static CreateAndUpdateTaskResponse toCreateAndUpdateTaskResponse(Task task) {
40-
return new CreateAndUpdateTaskResponse(task.getTaskId(), task.getCategory().getCategoryId(), task.getTitle());
21+
public static UpdateTaskResponse toUpdateTaskResponse(Task task) {
22+
return new UpdateTaskResponse(task.getTaskId(), task.getCategory().getCategoryId(), task.getTitle());
4123
}
4224

4325
public static FindTaskListResponse toFindTaskListResponse(Task task) {
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package clap.server.application.port.inbound.task;
22

33
import clap.server.adapter.inbound.web.dto.task.CreateTaskRequest;
4-
import clap.server.adapter.inbound.web.dto.task.CreateAndUpdateTaskResponse;
4+
import clap.server.adapter.inbound.web.dto.task.CreateTaskResponse;
55

66
public interface CreateTaskUsecase {
7-
CreateAndUpdateTaskResponse createTask(Long memberId, CreateTaskRequest createTaskRequest);
7+
CreateTaskResponse createTask(Long memberId, CreateTaskRequest createTaskRequest);
88
}

0 commit comments

Comments
 (0)