From 3bf5a2ee86bbdb103bcb726e1519b8a84a6c5840 Mon Sep 17 00:00:00 2001 From: yoonc01 Date: Mon, 22 Jun 2026 23:39:09 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=A7=88=EC=9D=B4=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EC=9D=91=EB=8B=B5=EC=97=90=20=EA=B5=AD=EB=82=B4=20?= =?UTF-8?q?=EB=8C=80=ED=95=99=EA=B5=90=EB=AA=85=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../siteuser/dto/MyPageResponse.java | 16 ++++++++++--- .../siteuser/service/MyPageService.java | 23 +++++++++++++++++- .../siteuser/service/MyPageServiceTest.java | 24 +++++++++++++++++-- 3 files changed, 57 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/example/solidconnection/siteuser/dto/MyPageResponse.java b/src/main/java/com/example/solidconnection/siteuser/dto/MyPageResponse.java index ae0b1b4cf..6cf17c9ea 100644 --- a/src/main/java/com/example/solidconnection/siteuser/dto/MyPageResponse.java +++ b/src/main/java/com/example/solidconnection/siteuser/dto/MyPageResponse.java @@ -25,9 +25,18 @@ public record MyPageResponse( List interestedCountries, @JsonInclude(NON_NULL) - String attendedUniversity) { + String attendedUniversity, - public static MyPageResponse of(SiteUser siteUser, int likedUnivApplyInfoCount, List interestedCountries, String attendedUniversity) { + @JsonInclude(NON_NULL) + String homeUniversityName) { + + public static MyPageResponse of( + SiteUser siteUser, + int likedUnivApplyInfoCount, + List interestedCountries, + String attendedUniversity, + String homeUniversityName + ) { return new MyPageResponse( siteUser.getNickname(), siteUser.getProfileImageUrl(), @@ -38,7 +47,8 @@ public static MyPageResponse of(SiteUser siteUser, int likedUnivApplyInfoCount, 0, // TODO: 멘토 기능 생기면 업데이트 필요 likedUnivApplyInfoCount, interestedCountries, - attendedUniversity + attendedUniversity, + homeUniversityName ); } } diff --git a/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java b/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java index cdf5aa83c..69daa9273 100644 --- a/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java +++ b/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java @@ -25,7 +25,9 @@ import com.example.solidconnection.siteuser.dto.PasswordUpdateRequest; import com.example.solidconnection.siteuser.repository.SiteUserRepository; import com.example.solidconnection.university.domain.HostUniversity; +import com.example.solidconnection.university.domain.HomeUniversity; import com.example.solidconnection.university.repository.HostUniversityRepository; +import com.example.solidconnection.university.repository.HomeUniversityRepository; import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -49,6 +51,7 @@ public class MyPageService { private final CountryRepository countryRepository; private final MentorRepository mentorRepository; private final HostUniversityRepository hostUniversityRepository; + private final HomeUniversityRepository homeUniversityRepository; private final S3Service s3Service; private final InterestedCountryService interestedCountryService; private final InterestedRegionService interestedRegionService; @@ -64,6 +67,7 @@ public MyPageResponse getMyPageInfo(long siteUserId) { List interestedCountries = null; String universityKoreanName = null; + String homeUniversityName = findHomeUniversityName(siteUser); if (siteUser.getRole() == Role.MENTEE) { interestedCountries = countryRepository.findKoreanNamesBySiteUserId(siteUser.getId()); } else if (siteUser.getRole() == Role.MENTOR) { @@ -73,7 +77,24 @@ public MyPageResponse getMyPageInfo(long siteUserId) { .orElseThrow(() -> new CustomException(UNIVERSITY_NOT_FOUND)); universityKoreanName = university.getKoreanName(); } - return MyPageResponse.of(siteUser, likedUnivApplyInfoCount, interestedCountries, universityKoreanName); + return MyPageResponse.of( + siteUser, + likedUnivApplyInfoCount, + interestedCountries, + universityKoreanName, + homeUniversityName + ); + } + + private String findHomeUniversityName(SiteUser siteUser) { + Long homeUniversityId = siteUser.getHomeUniversityId(); + if (homeUniversityId == null) { + return null; + } + + HomeUniversity homeUniversity = homeUniversityRepository.findById(homeUniversityId) + .orElseThrow(() -> new CustomException(UNIVERSITY_NOT_FOUND)); + return homeUniversity.getName(); } /* diff --git a/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java b/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java index 4325e1481..dbc1bcb40 100644 --- a/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java +++ b/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java @@ -41,8 +41,10 @@ import com.example.solidconnection.term.domain.Term; import com.example.solidconnection.term.fixture.TermFixture; import com.example.solidconnection.university.domain.HostUniversity; +import com.example.solidconnection.university.domain.HomeUniversity; import com.example.solidconnection.university.domain.LikedUnivApplyInfo; import com.example.solidconnection.university.domain.UnivApplyInfo; +import com.example.solidconnection.university.fixture.HomeUniversityFixture; import com.example.solidconnection.university.fixture.UnivApplyInfoFixture; import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository; import java.time.LocalDateTime; @@ -92,6 +94,9 @@ class MyPageServiceTest { @Autowired private UnivApplyInfoFixture univApplyInfoFixture; + @Autowired + private HomeUniversityFixture homeUniversityFixture; + @Autowired private RegionFixture regionFixture; @@ -143,10 +148,24 @@ void setUp() { // todo : 좋아요한 게시물 수 반환 기능 추가와 함께 수정요망 () -> assertThat(response.likedUnivApplyInfoCount()).isEqualTo(likedUnivApplyInfoCount), () -> assertThat(response.interestedCountries().get(0)).isEqualTo(country.getKoreanName()), - () -> assertThat(response.attendedUniversity()).isNull() + () -> assertThat(response.attendedUniversity()).isNull(), + () -> assertThat(response.homeUniversityName()).isNull() ); } + @Test + void 학교_인증된_멘티의_마이페이지_정보를_조회하면_국내_대학교_이름을_반환한다() { + // given + HomeUniversity homeUniversity = homeUniversityFixture.인하대학교(); + SiteUser verifiedUser = siteUserFixture.국내_대학_정보_소지_사용자(homeUniversity.getId()); + + // when + MyPageResponse response = myPageService.getMyPageInfo(verifiedUser.getId()); + + // then + assertThat(response.homeUniversityName()).isEqualTo(homeUniversity.getName()); + } + @Test void 멘토의_마이페이지_정보를_조회한다() { // given @@ -167,7 +186,8 @@ void setUp() { // todo : 좋아요한 게시물 수 반환 기능 추가와 함께 수정요망 () -> assertThat(response.likedUnivApplyInfoCount()).isEqualTo(likedUnivApplyInfoCount), () -> assertThat(response.attendedUniversity()).isEqualTo(괌대학.getKoreanName()), - () -> assertThat(response.interestedCountries()).isNull() + () -> assertThat(response.interestedCountries()).isNull(), + () -> assertThat(response.homeUniversityName()).isNull() ); }