Skip to content

Commit 7be0c64

Browse files
committed
refactor: 파일 조인 조건을 fileConditions 헬퍼 메서드로 추출
1 parent b49f414 commit 7be0c64

2 files changed

Lines changed: 29 additions & 62 deletions

File tree

src/main/java/com/dreamteam/alter/adapter/outbound/workspace/persistence/SubstituteRequestQueryRepositoryImpl.java

Lines changed: 15 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -197,18 +197,10 @@ public List<ReceivedSubstituteRequestListResponse> getReceivedRequestListWithCur
197197
.join(workspaceShift.workspace, workspace)
198198
.join(requesterWorker).on(requesterWorker.id.eq(substituteRequest.requesterId))
199199
.join(requesterUser).on(requesterUser.id.eq(requesterWorker.user.id))
200-
.leftJoin(requesterFile).on(
201-
requesterFile.targetType.eq(FileTargetType.USER_PROFILE),
202-
requesterFile.targetId.eq(requesterUser.id.stringValue()),
203-
requesterFile.status.eq(FileStatus.ATTACHED)
204-
)
200+
.leftJoin(requesterFile).on(fileConditions(requesterFile, requesterUser))
205201
.leftJoin(acceptedWorker).on(acceptedWorker.id.eq(substituteRequest.acceptedWorkerId))
206202
.leftJoin(acceptedUser).on(acceptedUser.id.eq(acceptedWorker.user.id))
207-
.leftJoin(acceptedFile).on(
208-
acceptedFile.targetType.eq(FileTargetType.USER_PROFILE),
209-
acceptedFile.targetId.eq(acceptedUser.id.stringValue()),
210-
acceptedFile.status.eq(FileStatus.ATTACHED)
211-
)
203+
.leftJoin(acceptedFile).on(fileConditions(acceptedFile, acceptedUser))
212204
.join(workspaceWorker).on(
213205
workspaceWorker.workspace.id.eq(workspace.id)
214206
.and(workspaceWorker.user.eq(user))
@@ -322,18 +314,10 @@ public Optional<SentSubstituteRequestDetailResponse> getSentRequestDetail(User u
322314
.join(workspaceShift.workspace, workspace)
323315
.join(requesterWorker).on(requesterWorker.id.eq(substituteRequest.requesterId))
324316
.join(requesterUser).on(requesterUser.id.eq(requesterWorker.user.id))
325-
.leftJoin(requesterFile).on(
326-
requesterFile.targetType.eq(FileTargetType.USER_PROFILE),
327-
requesterFile.targetId.eq(requesterUser.id.stringValue()),
328-
requesterFile.status.eq(FileStatus.ATTACHED)
329-
)
317+
.leftJoin(requesterFile).on(fileConditions(requesterFile, requesterUser))
330318
.leftJoin(acceptedWorker).on(acceptedWorker.id.eq(substituteRequest.acceptedWorkerId))
331319
.leftJoin(acceptedUser).on(acceptedUser.id.eq(acceptedWorker.user.id))
332-
.leftJoin(acceptedFile).on(
333-
acceptedFile.targetType.eq(FileTargetType.USER_PROFILE),
334-
acceptedFile.targetId.eq(acceptedUser.id.stringValue()),
335-
acceptedFile.status.eq(FileStatus.ATTACHED)
336-
)
320+
.leftJoin(acceptedFile).on(fileConditions(acceptedFile, acceptedUser))
337321
.where(
338322
substituteRequest.id.eq(requestId)
339323
.and(requesterWorker.user.eq(user))
@@ -363,11 +347,7 @@ public Optional<SentSubstituteRequestDetailResponse> getSentRequestDetail(User u
363347
.from(substituteRequestTarget)
364348
.join(targetWorker).on(targetWorker.id.eq(substituteRequestTarget.targetWorkerId))
365349
.join(targetUser).on(targetUser.id.eq(targetWorker.user.id))
366-
.leftJoin(targetFile).on(
367-
targetFile.targetType.eq(FileTargetType.USER_PROFILE),
368-
targetFile.targetId.eq(targetUser.id.stringValue()),
369-
targetFile.status.eq(FileStatus.ATTACHED)
370-
)
350+
.leftJoin(targetFile).on(fileConditions(targetFile, targetUser))
371351
.where(substituteRequestTarget.substituteRequest.id.eq(requestId))
372352
.orderBy(substituteRequestTarget.id.asc())
373353
.fetch();
@@ -436,18 +416,10 @@ public List<ManagerSubstituteRequestListResponse> getManagerRequestListWithCurso
436416
.join(workspaceShift.workspace, workspace)
437417
.join(requesterWorker).on(requesterWorker.id.eq(substituteRequest.requesterId))
438418
.join(requesterUser).on(requesterUser.id.eq(requesterWorker.user.id))
439-
.leftJoin(requesterFile).on(
440-
requesterFile.targetType.eq(FileTargetType.USER_PROFILE),
441-
requesterFile.targetId.eq(requesterUser.id.stringValue()),
442-
requesterFile.status.eq(FileStatus.ATTACHED)
443-
)
419+
.leftJoin(requesterFile).on(fileConditions(requesterFile, requesterUser))
444420
.leftJoin(acceptedWorker).on(acceptedWorker.id.eq(substituteRequest.acceptedWorkerId))
445421
.leftJoin(acceptedUser).on(acceptedUser.id.eq(acceptedWorker.user.id))
446-
.leftJoin(acceptedFile).on(
447-
acceptedFile.targetType.eq(FileTargetType.USER_PROFILE),
448-
acceptedFile.targetId.eq(acceptedUser.id.stringValue()),
449-
acceptedFile.status.eq(FileStatus.ATTACHED)
450-
)
422+
.leftJoin(acceptedFile).on(fileConditions(acceptedFile, acceptedUser))
451423
.where(
452424
ObjectUtils.isNotEmpty(workspaceId) ? workspace.id.eq(workspaceId) : null,
453425
managerRequestStatusCondition(status),
@@ -541,4 +513,12 @@ public List<SubstituteRequest> findAllPendingTargetRequestsByTargetWorkerId(Long
541513
)
542514
.fetch();
543515
}
516+
517+
private BooleanExpression[] fileConditions(QFile file, QUser user) {
518+
return new BooleanExpression[] {
519+
file.targetType.eq(FileTargetType.USER_PROFILE),
520+
file.targetId.eq(user.id.stringValue()),
521+
file.status.eq(FileStatus.ATTACHED)
522+
};
523+
}
544524
}

src/main/java/com/dreamteam/alter/adapter/outbound/workspace/persistence/WorkspaceQueryRepositoryImpl.java

Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import java.util.Optional;
88
import java.util.Set;
99

10+
import com.dreamteam.alter.domain.file.type.FileStatus;
11+
import com.dreamteam.alter.domain.file.type.FileTargetType;
1012
import org.apache.commons.lang3.ObjectUtils;
1113
import org.springframework.stereotype.Repository;
1214

@@ -22,8 +24,6 @@
2224
import com.dreamteam.alter.adapter.outbound.workspace.persistence.readonly.UserWorkspaceWorkerResponse;
2325
import com.dreamteam.alter.adapter.outbound.workspace.persistence.readonly.WorkspaceWorkerResponse;
2426
import com.dreamteam.alter.domain.file.entity.QFile;
25-
import com.dreamteam.alter.domain.file.type.FileStatus;
26-
import com.dreamteam.alter.domain.file.type.FileTargetType;
2727
import com.dreamteam.alter.domain.reputation.entity.QReputationSummary;
2828
import com.dreamteam.alter.domain.reputation.type.ReputationType;
2929
import com.dreamteam.alter.domain.user.entity.ManagerUser;
@@ -194,11 +194,7 @@ public List<ManagerWorkspaceWorkerListResponse> getWorkspaceWorkerListWithCursor
194194
qWorkspaceShift.status.eq(WorkspaceShiftStatus.CONFIRMED)
195195
)
196196
.leftJoin(qFile)
197-
.on(
198-
qFile.targetType.eq(FileTargetType.USER_PROFILE),
199-
qFile.targetId.eq(qUser.id.stringValue()),
200-
qFile.status.eq(FileStatus.ATTACHED)
201-
)
197+
.on(fileConditions(qFile, qUser))
202198
.where(
203199
qWorkspace.managerUser.eq(managerUser),
204200
qWorkspace.id.eq(workspaceId),
@@ -301,11 +297,7 @@ public List<UserWorkspaceWorkerListResponse> getUserWorkspaceWorkerListWithCurso
301297
qWorkspaceShift.status.eq(WorkspaceShiftStatus.CONFIRMED)
302298
)
303299
.leftJoin(qFile)
304-
.on(
305-
qFile.targetType.eq(FileTargetType.USER_PROFILE),
306-
qFile.targetId.eq(qUser.id.stringValue()),
307-
qFile.status.eq(FileStatus.ATTACHED)
308-
)
300+
.on(fileConditions(qFile, qUser))
309301
.where(
310302
qWorkspace.id.eq(workspaceId),
311303
qWorkspaceWorker.status.eq(WorkspaceWorkerStatus.ACTIVATED),
@@ -416,11 +408,7 @@ public List<UserWorkspaceWorkerListResponse> getExchangeableWorkerListWithCursor
416408
qWorkspaceShift.status.eq(WorkspaceShiftStatus.CONFIRMED)
417409
)
418410
.leftJoin(qFile)
419-
.on(
420-
qFile.targetType.eq(FileTargetType.USER_PROFILE),
421-
qFile.targetId.eq(qUser.id.stringValue()),
422-
qFile.status.eq(FileStatus.ATTACHED)
423-
)
411+
.on(fileConditions(qFile, qUser))
424412
.where(
425413
qWorkspace.id.eq(workspaceId),
426414
qWorkspaceWorker.status.eq(WorkspaceWorkerStatus.ACTIVATED),
@@ -522,11 +510,7 @@ public List<UserWorkspaceManagerListResponse> getUserWorkspaceManagerListWithCur
522510
.join(qManagerUser.user, qUser)
523511
.join(qManagerUser.workspaces, qWorkspace)
524512
.leftJoin(qFile)
525-
.on(
526-
qFile.targetType.eq(FileTargetType.USER_PROFILE),
527-
qFile.targetId.eq(qUser.id.stringValue()),
528-
qFile.status.eq(FileStatus.ATTACHED)
529-
)
513+
.on(fileConditions(qFile, qUser))
530514
.where(
531515
qWorkspace.id.eq(workspaceId),
532516
cursorConditions(qManagerUser, pageRequest.cursor())
@@ -584,11 +568,7 @@ public List<ManagerWorkspaceManagerListResponse> getManagerWorkspaceManagerListW
584568
.join(qManagerUser.user, qUser)
585569
.join(qManagerUser.workspaces, qWorkspace)
586570
.leftJoin(qFile)
587-
.on(
588-
qFile.targetType.eq(FileTargetType.USER_PROFILE),
589-
qFile.targetId.eq(qUser.id.stringValue()),
590-
qFile.status.eq(FileStatus.ATTACHED)
591-
)
571+
.on(fileConditions(qFile, qUser))
592572
.where(
593573
qWorkspace.managerUser.eq(managerUser),
594574
qWorkspace.id.eq(workspaceId),
@@ -718,4 +698,11 @@ private BooleanExpression cursorConditions(QManagerUser qManagerUser, CursorDto
718698
.and(qManagerUser.id.lt(cursor.getId())));
719699
}
720700

701+
private BooleanExpression[] fileConditions(QFile file, QUser user) {
702+
return new BooleanExpression[] {
703+
file.targetType.eq(FileTargetType.USER_PROFILE),
704+
file.targetId.eq(user.id.stringValue()),
705+
file.status.eq(FileStatus.ATTACHED)
706+
};
707+
}
721708
}

0 commit comments

Comments
 (0)