Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/main/java/itstime/reflog/mypage/domain/MyPage.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ public class MyPage {
@Column(nullable = false)
private String email;

private String imageUrl;

@OneToMany(mappedBy = "myPage", cascade = CascadeType.ALL, orphanRemoval = true)
private List<UserBadge> userBadges;

Expand All @@ -40,6 +42,7 @@ public class MyPage {
public void update(MyPageDto.MyPageProfileRequest dto, Member member) {
this.nickname = dto.getNickname();
this.email = dto.getEmail();
this.imageUrl = dto.getImageUrl();
this.member = member;
}
}
3 changes: 3 additions & 0 deletions src/main/java/itstime/reflog/mypage/dto/MyPageDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,16 @@ public static class MyPageProfileRequest {

@Email(message = "이메일 정보가 올바르지 않습니다.")
private String email;

private String imageUrl;
}

@Getter
@AllArgsConstructor
public static class MyPageProfileResponse {
private String nickname;
private String email;
private String imageUrl;
}

@Getter
Expand Down
27 changes: 23 additions & 4 deletions src/main/java/itstime/reflog/mypage/service/MyPageService.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,15 @@ public class MyPageService {
private final PostLikeService postLikeService;
private final MemberServiceHelper memberServiceHelper;
private final UserBadgeRepository userBadgeRepository;
private final NotificationSettingsService notificationSettingsService;


@Transactional
public MyPageDto.MyPageInfoResponse getMyInformation(String memberId) {
// 1. 멤버 조회
Member member = memberServiceHelper.findMemberByUuid(memberId);

// 2. 마이페이지 조회
MyPage myPage = myPageRepository.findByMember(member)
.orElseThrow(() -> new GeneralException(ErrorStatus._MYPAGE_NOT_FOUND));

Expand All @@ -69,40 +72,56 @@ public void createProfile(String memberId, MyPageDto.MyPageProfileRequest dto) {
throw new GeneralException(ErrorStatus._DUPLICATE_EMAIL);
}

// 3. 마이페이지 생성
// 3. imageUrl null 확인
String imageUrl = null;
if(dto.getImageUrl() == null){
imageUrl = member.getProfileImageUrl();
} else{
imageUrl = dto.getImageUrl();
}

// 4. 마이페이지 생성
MyPage myPage = MyPage.builder()
.nickname(dto.getNickname())
.email(dto.getEmail())
.imageUrl(imageUrl)
.member(member)
.build();

myPageRepository.save(myPage);
myPageRepository.flush();

// 4. 유저 미션&배지 생성
// 5. 미션세팅 생성
notificationSettingsService.createDefaultSettings(member);

// 6. 유저 미션&배지 생성
initializationService.initializeForNewMember(myPage);

// 5. 미션
// 7. 미션
missionService.incrementMissionProgress(member.getId(), myPage, FIRST_MEETING);
}

@Transactional
public MyPageDto.MyPageProfileResponse getProfile(String memberId) {
// 1. 멤버 조회
Member member = memberServiceHelper.findMemberByUuid(memberId);

MyPage myPage = myPageRepository.findByMember(member)
.orElseThrow(() -> new GeneralException(ErrorStatus._MYPAGE_NOT_FOUND));

return new MyPageDto.MyPageProfileResponse(
myPage.getNickname(),
myPage.getEmail()
myPage.getEmail(),
myPage.getImageUrl()
);
}

@Transactional
public void updateProfile(String memberId, MyPageDto.MyPageProfileRequest dto) {
// 1. 멤버 조회
Member member = memberServiceHelper.findMemberByUuid(memberId);

// 2. 마이페이지 수정
MyPage myPage = myPageRepository.findByMember(member)
.orElseThrow(() -> new GeneralException(ErrorStatus._MYPAGE_NOT_FOUND));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ public void updateNotificationSettings(String memberId, Map<NotificationType, Bo
// 1. 멤버 조회
Member member = memberServiceHelper.findMemberByUuid(memberId);

// 2. 알림 설정 생성&조회
NotificationSettings settings = notificationSettingsRepository.findByMemberId(member.getId())
.orElseGet(() -> createDefaultSettings(member));
// 2. 알림 설정 조회
NotificationSettings settings = notificationSettingsRepository.findByMemberId(member.getId())
.orElseThrow(() -> new GeneralException(ErrorStatus._NOTIFICATIONSETTINGS_NOT_FOUND));

// 3. 전체 알림 설정 업데이트
settings.setAllNotificationsEnabled(allNotificationsEnabled);
Expand Down Expand Up @@ -61,7 +61,8 @@ public NotificationSettingsDto.NotificationSettingsResponse getSettings(String m
);
}

private NotificationSettings createDefaultSettings(Member member) {

void createDefaultSettings(Member member) {
// 1. 알림 설정 생성
NotificationSettings settings = new NotificationSettings();
settings.setMember(member);
Expand All @@ -74,6 +75,6 @@ private NotificationSettings createDefaultSettings(Member member) {
}
settings.setNotificationPreferences(defaultPreferences);

return notificationSettingsRepository.save(settings);
notificationSettingsRepository.save(settings);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -78,11 +78,13 @@ public void createSchedule(String memberId, ScheduleDto.ScheduleSaveOrUpdateRequ

@Transactional
public ScheduleDto.ScheduleResponse getSchedule(Long scheduleId, String memberId){
// 1. 멤버 조회
Member member = memberServiceHelper.findMemberByUuid(memberId);

// 2. 일정 조회
Schedule schedule = scheduleRepository.findById(scheduleId)
.orElseThrow(() -> new GeneralException(ErrorStatus._SCHEDULE_NOT_FOUND));

Member member = memberServiceHelper.findMemberByUuid(memberId);

return new ScheduleDto.ScheduleResponse(
schedule.getId(),
schedule.getTitle(),
Expand All @@ -96,8 +98,10 @@ public ScheduleDto.ScheduleResponse getSchedule(Long scheduleId, String memberId

@Transactional
public List<ScheduleDto.ScheduleAllResponse> getAllSchedule(String memberId, int month) {
// 1. 멤버 조회
Member member = memberServiceHelper.findMemberByUuid(memberId);

// 2. 일정 전체 조회
List<Schedule> schedules = scheduleRepository.findByMemberAndStartDateTimeMonth(member.getId(), month);

return schedules.stream()
Expand Down
Loading