diff --git a/src/main/java/com/divary/domain/logbase/logbook/enums/DiveMethod.java b/src/main/java/com/divary/domain/logbase/logbook/enums/DiveMethod.java index 684d4cbc..cac23f33 100644 --- a/src/main/java/com/divary/domain/logbase/logbook/enums/DiveMethod.java +++ b/src/main/java/com/divary/domain/logbase/logbook/enums/DiveMethod.java @@ -1,5 +1,5 @@ package com.divary.domain.logbase.logbook.enums; public enum DiveMethod { - SHORE, BOAT, ETC + SHORE, BOAT, OTHER } diff --git a/src/main/java/com/divary/domain/logbase/logbook/service/LogBookService.java b/src/main/java/com/divary/domain/logbase/logbook/service/LogBookService.java index 46aaa698..6ea330f3 100644 --- a/src/main/java/com/divary/domain/logbase/logbook/service/LogBookService.java +++ b/src/main/java/com/divary/domain/logbase/logbook/service/LogBookService.java @@ -277,4 +277,10 @@ public void updateLogDate(Long logBaseInfoId, Long userId, LocalDate date) { } + public int getAccumulationById(Long userId){ + + //현재기준으로 총 로그북 누적횟수 계산 + return logBookRepository.countByLogBaseInfoMemberIdAndSaveStatus(userId, SaveStatus.COMPLETE); + } + } diff --git a/src/main/java/com/divary/domain/member/dto/response/MyPageProfileResponseDTO.java b/src/main/java/com/divary/domain/member/dto/response/MyPageProfileResponseDTO.java index 33efb20f..392ce0df 100644 --- a/src/main/java/com/divary/domain/member/dto/response/MyPageProfileResponseDTO.java +++ b/src/main/java/com/divary/domain/member/dto/response/MyPageProfileResponseDTO.java @@ -22,4 +22,7 @@ public class MyPageProfileResponseDTO { @Schema(description = "레벨", example = "오픈워터 다이버") private Levels level; + @Schema(description = "총 다이빙 횟수") + private Integer accumulations; + } diff --git a/src/main/java/com/divary/domain/member/service/MemberServiceImpl.java b/src/main/java/com/divary/domain/member/service/MemberServiceImpl.java index fea2c622..cbceec47 100644 --- a/src/main/java/com/divary/domain/member/service/MemberServiceImpl.java +++ b/src/main/java/com/divary/domain/member/service/MemberServiceImpl.java @@ -5,6 +5,8 @@ import com.divary.domain.image.dto.request.ImageUploadRequest; import com.divary.domain.image.dto.response.ImageResponse; import com.divary.domain.image.service.ImageService; +import com.divary.domain.logbase.logbook.enums.SaveStatus; +import com.divary.domain.logbase.logbook.service.LogBookService; import com.divary.domain.member.dto.requestDTO.MyPageGroupRequestDTO; import com.divary.domain.member.dto.requestDTO.MyPageLevelRequestDTO; import com.divary.domain.member.dto.response.MyPageImageResponseDTO; @@ -39,6 +41,7 @@ public class MemberServiceImpl implements MemberService { private final MemberRepository memberRepository; private final ImageService imageService; private final TokenBlackListService tokenBlackListService; + private final LogBookService logBookService; @Value("${jobs.user-deletion.grace-period-days}") private int gracePeriodDays; @@ -200,6 +203,10 @@ public void updateGroup(Long userId, MyPageGroupRequestDTO requestDTO){ public MyPageProfileResponseDTO getMemberProfile(Long userId){ Member member = memberRepository.findById(userId).orElseThrow(()->new BusinessException(ErrorCode.MEMBER_NOT_FOUND)); + Integer accumulation + = logBookService.getAccumulationById(userId); + //현재기준으로 총 로그북 누적횟수 계산 + String memberIdByEmail = member.getEmail().split("@")[0]; // 프로필에 나오는 아이디: 이메일에서 @ 앞부분만 추출 @@ -207,6 +214,7 @@ public MyPageProfileResponseDTO getMemberProfile(Long userId){ .memberGroup(member.getMemberGroup()) .level(member.getLevel()) .id(memberIdByEmail) + .accumulations(accumulation) .build(); }