Skip to content

Commit 97b2dd5

Browse files
committed
CLAP-451 Refactor: department fetch 쿼리 메서드로 수정
#590
1 parent 7f3b821 commit 97b2dd5

File tree

3 files changed

+15
-10
lines changed

3 files changed

+15
-10
lines changed

src/main/java/clap/server/application/service/admin/DeleteMemberService.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import clap.server.exception.ApplicationException;
1111
import clap.server.exception.code.MemberErrorCode;
1212
import lombok.RequiredArgsConstructor;
13-
import org.hibernate.Hibernate;
1413
import org.springframework.transaction.annotation.Transactional;
1514

1615
@ApplicationService
@@ -29,7 +28,6 @@ public void deleteMember(Long memberId) {
2928
if (member.getMemberInfo().getRole() == MemberRole.ROLE_MANAGER) {
3029
managerInfoUpdatePolicy.validateNoRemainingTasks(member);
3130
}
32-
Hibernate.initialize(member.getDepartment());
3331
member.softDelete();
3432
commandMemberPort.save(member);
3533
}

src/main/java/clap/server/application/service/admin/ManageMemberService.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,32 @@
66
import clap.server.application.mapper.response.MemberResponseMapper;
77
import clap.server.application.port.inbound.admin.MemberDetailUsecase;
88
import clap.server.application.port.inbound.admin.UpdateMemberUsecase;
9-
import clap.server.application.port.inbound.domain.MemberService;
109
import clap.server.application.port.outbound.member.CommandMemberPort;
1110
import clap.server.application.port.outbound.member.LoadDepartmentPort;
11+
import clap.server.application.port.outbound.member.LoadMemberPort;
1212
import clap.server.common.annotation.architecture.ApplicationService;
1313
import clap.server.domain.model.member.Department;
1414
import clap.server.domain.model.member.Member;
1515
import clap.server.domain.policy.member.ManagerInfoUpdatePolicy;
1616
import clap.server.exception.ApplicationException;
1717
import clap.server.exception.code.DepartmentErrorCode;
18+
import clap.server.exception.code.MemberErrorCode;
1819
import lombok.RequiredArgsConstructor;
1920
import org.springframework.transaction.annotation.Transactional;
2021

2122
@ApplicationService
2223
@RequiredArgsConstructor
2324
class ManageMemberService implements UpdateMemberUsecase, MemberDetailUsecase {
24-
private final MemberService memberService;
25+
private final LoadMemberPort loadMemberPort;
2526
private final CommandMemberPort commandMemberPort;
2627
private final LoadDepartmentPort loadDepartmentPort;
2728
private final ManagerInfoUpdatePolicy managerInfoUpdatePolicy;
2829

2930
@Override
3031
@Transactional
3132
public void updateMemberInfo(Long adminId, Long memberId, UpdateMemberRequest request) {
32-
Member member = memberService.findById(memberId);
33+
Member member = loadMemberPort.findByIdWithFetchDepartment(memberId).orElseThrow(
34+
() -> new ApplicationException(MemberErrorCode.MEMBER_NOT_FOUND));
3335
Department department = loadDepartmentPort.findById(request.departmentId()).orElseThrow(() ->
3436
new ApplicationException(DepartmentErrorCode.DEPARTMENT_NOT_FOUND));
3537
managerInfoUpdatePolicy.validateDepartment(department, request.role());
@@ -46,7 +48,8 @@ public void updateMemberInfo(Long adminId, Long memberId, UpdateMemberRequest re
4648
@Override
4749
@Transactional(readOnly = true)
4850
public MemberDetailsResponse getMemberDetail(Long memberId) {
49-
Member member = memberService.findById(memberId);
51+
Member member = loadMemberPort.findByIdWithFetchDepartment(memberId).orElseThrow(
52+
() -> new ApplicationException(MemberErrorCode.MEMBER_NOT_FOUND));;
5053
return MemberResponseMapper.toMemberDetailsResponse(member);
5154
}
5255
}

src/main/java/clap/server/application/service/member/MemberInfoService.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22

33
import clap.server.adapter.inbound.web.dto.member.response.MemberDetailInfoResponse;
44
import clap.server.adapter.inbound.web.dto.member.response.MemberProfileResponse;
5-
import clap.server.application.port.inbound.domain.MemberService;
65
import clap.server.application.port.inbound.member.MemberDetailInfoUsecase;
76
import clap.server.application.port.inbound.member.MemberProfileUsecase;
7+
import clap.server.application.port.outbound.member.LoadMemberPort;
88
import clap.server.common.annotation.architecture.ApplicationService;
99
import clap.server.domain.model.member.Member;
10+
import clap.server.exception.ApplicationException;
11+
import clap.server.exception.code.MemberErrorCode;
1012
import lombok.RequiredArgsConstructor;
1113
import org.springframework.transaction.annotation.Transactional;
1214

@@ -16,19 +18,21 @@
1618
@ApplicationService
1719
@RequiredArgsConstructor
1820
class MemberInfoService implements MemberProfileUsecase , MemberDetailInfoUsecase {
19-
private final MemberService memberService;
21+
private final LoadMemberPort loadMemberPort;
2022

2123
@Override
2224
@Transactional(readOnly = true)
2325
public MemberProfileResponse getMemberProfile(Long memberId) {
24-
Member member = memberService.findActiveMember(memberId);
26+
Member member = loadMemberPort.findActiveMemberByIdWithFetchDepartment(memberId).orElseThrow(
27+
() -> new ApplicationException(MemberErrorCode.MEMBER_NOT_FOUND));
2528
return toMemberProfileResponse(member);
2629
}
2730

2831
@Override
2932
@Transactional(readOnly = true)
3033
public MemberDetailInfoResponse getMemberInfo(Long memberId) {
31-
Member member = memberService.findActiveMember(memberId);
34+
Member member = loadMemberPort.findActiveMemberByIdWithFetchDepartment(memberId).orElseThrow(
35+
() -> new ApplicationException(MemberErrorCode.MEMBER_NOT_FOUND));
3236
return toMemberDetailInfoResponse(member);
3337
}
3438
}

0 commit comments

Comments
 (0)