Skip to content

Commit 8c1a864

Browse files
authored
Merge pull request #233 from minseo003/develop-delete
feat: 유저탈퇴시 멘토링 관련 정리 #231
2 parents 1dde02e + caf2492 commit 8c1a864

15 files changed

Lines changed: 101 additions & 67 deletions

src/main/java/com/project/Teaming/domain/mentoring/controller/MentoringBoardController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public ResultDetailResponse<String> savePost(@PathVariable Long teamId,
3636
public ResultDetailResponse<BoardSpecResponse> updatePost(@PathVariable Long postId,
3737
@RequestBody @Valid BoardRequest dto) {
3838
mentoringBoardService.updateMentoringPost(postId, dto);
39-
MentoringBoard mentoringPost = mentoringBoardService.findMentoringPost(postId);
39+
MentoringBoard mentoringPost = mentoringBoardService.findMentoringPostForUpdate(postId);
4040
return new ResultDetailResponse<>(ResultCode.UPDATE_MENTORING_POST, mentoringBoardService.toDto(mentoringPost));
4141
}
4242

src/main/java/com/project/Teaming/domain/mentoring/controller/MentoringTeamController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public ResultDetailResponse<TeamAuthorityResponse> updateMentoringTeam(@PathVari
3434

3535
return new ResultDetailResponse<>(ResultCode.UPDATE_MENTORING_TEAM,
3636
mentoringTeamService.getMentoringTeam(
37-
mentoringTeamService.findMentoringTeam(teamId)));
37+
mentoringTeamService.findMentoringTeamForUpdate(teamId)));
3838
}
3939
@Override
4040
@GetMapping("/teams/{teamId}")

src/main/java/com/project/Teaming/domain/mentoring/entity/Category.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@ public class Category {
2222
@GeneratedValue(strategy = GenerationType.IDENTITY)
2323
@Column(name = "category_id")
2424
private Long id;
25+
2526
@Column(name = "category_name",unique = true)
2627
private String name;
28+
2729
@OneToMany(mappedBy = "category")
2830
private List<TeamCategory> categories = new ArrayList<>();
2931

src/main/java/com/project/Teaming/domain/mentoring/entity/Event.java

Lines changed: 0 additions & 32 deletions
This file was deleted.

src/main/java/com/project/Teaming/domain/mentoring/entity/EventAlarm.java

Lines changed: 0 additions & 27 deletions
This file was deleted.

src/main/java/com/project/Teaming/domain/mentoring/entity/MentoringParticipation.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,28 @@ public class MentoringParticipation {
2626
@Tsid
2727
@Column(name = "mp_id")
2828
private Long id; // 신청 ID
29+
2930
@Column(name = "status")
3031
@Enumerated(EnumType.STRING)
3132
private MentoringParticipationStatus participationStatus; // 신청 상태
33+
3234
@CreatedDate
3335
@Column(updatable = false)
3436
private LocalDateTime requestDate; // 신청 날짜
37+
3538
private LocalDateTime decisionDate; // 신청 수락/거절 날짜
39+
3640
@Enumerated(EnumType.STRING)
3741
private MentoringRole role; // 역할
42+
3843
@Enumerated(EnumType.STRING) //리더, 크루
3944
private MentoringAuthority authority;
45+
4046
// 외래키 : 신청한 사용자 ID, 멘토링 팀 ID
4147
@ManyToOne(fetch = FetchType.LAZY)
4248
@JoinColumn(name = "user_id")
4349
private User user; // 신청한 사용자 ID (주인)
50+
4451
@ManyToOne(fetch = FetchType.LAZY)
4552
@JoinColumn(name = "mentoring_team_id")
4653
private MentoringTeam mentoringTeam; // 멘토링 팀 ID (주인)

src/main/java/com/project/Teaming/domain/mentoring/entity/MentoringTeam.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,34 +24,43 @@ public class MentoringTeam extends BaseEntity {
2424
@Tsid
2525
@Column(name = "mentoring_team_id")
2626
private Long id; // 멘토링 팀 ID
27+
2728
@Column(name = "mentoring_name", length = 100)
2829
private String name; // 멘토링 명
30+
2931
@Column(name = "start_date", length = 50)
3032
private LocalDate startDate; // 멘토링 시작일
33+
3134
@Column(name = "end_date", length = 50)
3235
private LocalDate endDate; // 멘토링 종료일
36+
3337
@Column(name = "mentoring_cnt")
3438
private Integer mentoringCnt;
39+
3540
@Column(name = "content")
3641
private String content;
42+
3743
@Column(name = "status")
3844
@Enumerated(EnumType.STRING)
3945
private MentoringStatus status;
46+
4047
@Column(name = "link")
4148
private String link;
49+
4250
@Column(name = "flag")
4351
@Enumerated(EnumType.STRING)
4452
private Status flag;
45-
@OneToMany(mappedBy = "mentoringTeam",cascade = CascadeType.PERSIST)
53+
54+
@OneToMany(mappedBy = "mentoringTeam",cascade = CascadeType.PERSIST, orphanRemoval = true)
4655
private List<MentoringParticipation> mentoringParticipationList = new ArrayList<>();
56+
4757
@OneToMany(mappedBy = "mentoringTeam",orphanRemoval = true)
4858
private List<MentoringBoard> mentoringBoardList = new ArrayList<>();
49-
@OneToMany(mappedBy = "mentoringTeam")
50-
private List<Event> eventList = new ArrayList<>();
51-
@OneToMany(mappedBy = "mentoringTeam")
59+
60+
@OneToMany(mappedBy = "mentoringTeam",cascade = CascadeType.PERSIST, orphanRemoval = true)
5261
private List<TeamCategory> categories = new ArrayList<>();
5362

54-
public MentoringTeam(Long id, String name, LocalDate startDate, LocalDate endDate, Integer mentoringCnt, String content, MentoringStatus status, String link, Status flag, List<MentoringParticipation> mentoringParticipationList, List<MentoringBoard> mentoringBoardList, List<Event> eventList, List<TeamCategory> categories) {
63+
public MentoringTeam(Long id, String name, LocalDate startDate, LocalDate endDate, Integer mentoringCnt, String content, MentoringStatus status, String link, Status flag, List<MentoringParticipation> mentoringParticipationList, List<MentoringBoard> mentoringBoardList, List<TeamCategory> categories) {
5564
this.id = id;
5665
this.name = name;
5766
this.startDate = startDate;
@@ -63,7 +72,6 @@ public MentoringTeam(Long id, String name, LocalDate startDate, LocalDate endDat
6372
this.flag = flag;
6473
this.mentoringParticipationList = mentoringParticipationList;
6574
this.mentoringBoardList = mentoringBoardList;
66-
this.eventList = eventList;
6775
this.categories = categories;
6876
}
6977

src/main/java/com/project/Teaming/domain/mentoring/entity/TeamCategory.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@ public class TeamCategory {
1717
@Tsid
1818
@Column(name = "team_category_id")
1919
private Long id;
20+
2021
@ManyToOne(fetch = FetchType.LAZY)
2122
@JoinColumn(name = "category_id",nullable = false)
2223
private Category category;
24+
2325
@ManyToOne(fetch = FetchType.LAZY)
2426
@JoinColumn(name = "mentoring_team_id",nullable = false)
2527
private MentoringTeam mentoringTeam;

src/main/java/com/project/Teaming/domain/mentoring/repository/ParticipationRepositoryCustom.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ Optional<MentoringParticipation> findDynamicMentoringParticipation(
2727
List<User> findMemberUser(
2828
Long teamId,MentoringAuthority mentoringAuthority);
2929

30+
List<MentoringParticipation> findByUserId(Long userId);
31+
3032
Optional<MentoringParticipation> findFirstUser(Long teamId, MentoringParticipationStatus participationStatus, MentoringAuthority authority);
3133
List<MentoringParticipation> findParticipationWithStatusAndUser(User user, MentoringParticipationStatus status);
3234
long countBy(Long teamId, MentoringParticipationStatus status);

src/main/java/com/project/Teaming/domain/mentoring/repository/ParticipationRepositoryCustomImpl.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,20 @@ public List<User> findMemberUser(Long teamId, MentoringAuthority mentoringAuthor
158158
.fetch();
159159
}
160160

161+
@Override
162+
public List<MentoringParticipation> findByUserId(Long userId) {
163+
164+
QMentoringParticipation mp = QMentoringParticipation.mentoringParticipation;
165+
QMentoringTeam mt = QMentoringTeam.mentoringTeam;
166+
167+
return queryFactory
168+
.selectFrom(mp)
169+
.join(mp.mentoringTeam,mt).fetchJoin()
170+
.where(mp.user.id.eq(userId))
171+
.fetch();
172+
173+
}
174+
161175

162176
@Override
163177
public long countBy(Long teamId, MentoringParticipationStatus status) {

0 commit comments

Comments
 (0)