Skip to content

Commit 7e93cff

Browse files
authored
Merge pull request #310 from TaskFlow-CLAP/CLAP-271
CLAP-271 회원삭제 오류 해결
2 parents c1e2b4e + e555e0e commit 7e93cff

File tree

3 files changed

+77
-17
lines changed

3 files changed

+77
-17
lines changed

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,24 @@
77
import clap.server.exception.ApplicationException;
88
import clap.server.exception.code.MemberErrorCode;
99
import lombok.RequiredArgsConstructor;
10+
import org.hibernate.Hibernate;
1011
import org.springframework.stereotype.Service;
12+
import org.springframework.transaction.annotation.Transactional;
1113

1214
@Service
1315
@RequiredArgsConstructor
1416
public class DeleteMemberService implements DeleteMemberUsecase {
1517
private final LoadMemberPort loadMemberPort;
1618
private final CommandMemberPort commandMemberPort;
1719

20+
@Transactional
1821
@Override
1922
public void deleteMember(Long memberId) {
2023
Member member = loadMemberPort.findById(memberId)
2124
.orElseThrow(() -> new ApplicationException(MemberErrorCode.MEMBER_NOT_FOUND));
2225

26+
Hibernate.initialize(member.getDepartment());
27+
2328
member.setStatusDeleted();
2429

2530
commandMemberPort.save(member);

src/main/java/clap/server/domain/model/member/Member.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import lombok.*;
1010
import lombok.experimental.SuperBuilder;
1111

12+
1213
@Getter
1314
@SuperBuilder
1415
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@@ -23,6 +24,8 @@ public class Member extends BaseTime {
2324
private String imageUrl;
2425
private MemberStatus status;
2526
private String password;
27+
private Department department;
28+
2629

2730

2831
public Member(MemberInfo memberInfo, Boolean agitNotificationEnabled, Boolean emailNotificationEnabled, Boolean kakaoworkNotificationEnabled,

src/test/java/clap/server/TestDataFactory.java

Lines changed: 69 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package clap.server;
22

33
import clap.server.adapter.inbound.web.dto.task.request.FilterTaskListRequest;
4+
import clap.server.adapter.outbound.persistense.entity.member.constant.DepartmentStatus;
45
import clap.server.adapter.outbound.persistense.entity.member.constant.MemberRole;
56
import clap.server.adapter.outbound.persistense.entity.member.constant.MemberStatus;
67
import clap.server.adapter.outbound.persistense.entity.task.constant.LabelColor;
78
import clap.server.adapter.outbound.persistense.entity.task.constant.TaskStatus;
9+
import clap.server.domain.model.member.Department;
810
import clap.server.domain.model.member.Member;
911
import clap.server.domain.model.member.MemberInfo;
1012
import clap.server.domain.model.task.Category;
@@ -18,39 +20,90 @@
1820
public class TestDataFactory {
1921

2022
public static Member createAdmin() {
21-
return new Member(1L, createAdminInfo(), null,
22-
true, true, true,
23-
null, MemberStatus.ACTIVE, "1111");
23+
return Member.builder()
24+
.memberId(1L)
25+
.memberInfo(createAdminInfo())
26+
.admin(null)
27+
.kakaoworkNotificationEnabled(true)
28+
.agitNotificationEnabled(true)
29+
.emailNotificationEnabled(true)
30+
.imageUrl(null)
31+
.status(MemberStatus.ACTIVE)
32+
.password("1111")
33+
.department(createDepartment())
34+
.build();
2435
}
36+
2537
public static Member createManagerWithReviewer() {
26-
return new Member(2L, createManagerWithReviewerInfo(), createAdmin(),
27-
true, true, true,
28-
null, MemberStatus.ACTIVE, "1111");
38+
return Member.builder()
39+
.memberId(2L)
40+
.memberInfo(createManagerWithReviewerInfo())
41+
.admin(createAdmin())
42+
.kakaoworkNotificationEnabled(true)
43+
.agitNotificationEnabled(true)
44+
.emailNotificationEnabled(true)
45+
.imageUrl(null)
46+
.status(MemberStatus.ACTIVE)
47+
.password("1111")
48+
.department(createDepartment())
49+
.build();
2950
}
51+
3052
public static Member createManager() {
31-
return new Member(3L, createManagerInfo(), createAdmin(),
32-
true, true, true,
33-
null, MemberStatus.ACTIVE, "1111");
53+
return Member.builder()
54+
.memberId(3L)
55+
.memberInfo(createManagerInfo())
56+
.admin(createAdmin())
57+
.kakaoworkNotificationEnabled(true)
58+
.agitNotificationEnabled(true)
59+
.emailNotificationEnabled(true)
60+
.imageUrl(null)
61+
.status(MemberStatus.ACTIVE)
62+
.password("1111")
63+
.department(createDepartment())
64+
.build();
3465
}
66+
3567
public static Member createUser() {
36-
return new Member(4L, createUserInfo(), createAdmin(),
37-
true, true, true,
38-
null, MemberStatus.ACTIVE, "1111");
68+
return Member.builder()
69+
.memberId(4L)
70+
.memberInfo(createUserInfo())
71+
.admin(createAdmin())
72+
.kakaoworkNotificationEnabled(true)
73+
.agitNotificationEnabled(true)
74+
.emailNotificationEnabled(true)
75+
.imageUrl(null)
76+
.status(MemberStatus.ACTIVE)
77+
.password("1111")
78+
.department(createDepartment())
79+
.build();
3980
}
4081

41-
public static MemberInfo createAdminInfo(){
82+
public static MemberInfo createAdminInfo() {
4283
return new MemberInfo("홍길동(관리자)", "atom8426@naver.com", "atom.admin", false, null, MemberRole.ROLE_ADMIN, "인프라");
4384
}
44-
public static MemberInfo createManagerWithReviewerInfo(){
85+
86+
public static MemberInfo createManagerWithReviewerInfo() {
4587
return new MemberInfo("홍길동(리뷰어)", "atom8426@naver.com", "atom.manager", true, null, MemberRole.ROLE_MANAGER, "인프라");
4688
}
47-
public static MemberInfo createManagerInfo(){
89+
90+
public static MemberInfo createManagerInfo() {
4891
return new MemberInfo("홍길동(매니저)", "atom8426@naver.com", "atom.manager", false, null, MemberRole.ROLE_MANAGER, "인프라");
4992
}
50-
public static MemberInfo createUserInfo(){
93+
94+
public static MemberInfo createUserInfo() {
5195
return new MemberInfo("홍길동(사용자)", "atom8426@naver.com", "atom.user", false, null, MemberRole.ROLE_USER, "인프라");
5296
}
5397

98+
public static Department createDepartment() {
99+
return Department.builder()
100+
.departmentId(1L)
101+
.adminId(1L)
102+
.name("IT 부서")
103+
.status(DepartmentStatus.ACTIVE)
104+
.build();
105+
}
106+
54107
public static Category createMainCategory() {
55108
return Category.builder()
56109
.categoryId(1L)
@@ -100,7 +153,6 @@ public static Label createLabel() {
100153
.build();
101154
}
102155

103-
104156
public static PageImpl<Task> createTaskPage(List<Task> tasks) {
105157
return new PageImpl<>(tasks);
106158
}

0 commit comments

Comments
 (0)