Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 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
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@
import kgu.developers.domain.thesis.application.command.ThesisCommandService;
import kgu.developers.domain.thesis.application.query.ThesisQueryService;
import kgu.developers.domain.thesis.domain.Thesis;
import kgu.developers.domain.user.application.query.UserQueryService;
import kgu.developers.domain.user.domain.User;
import kgu.developers.domain.user.exception.UserNotFoundException;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Component;
Expand All @@ -47,6 +50,7 @@ public class GraduationUserAdminFacade {
private final ThesisQueryService thesisQueryService;
private final CertificateCommandService certificateCommandService;
private final CertificateQueryService certificateQueryService;
private final UserQueryService userQueryService;

public GraduationUserPersistResponse createGraduationUser(GraduationUserCreateRequest request) {
Long id = graduationUserCommandService.createGraduationUser(request.studentId(), request.name(), request.advisorProfessor(), request.capstoneCompletion(), request.department(), request.graduationDate());
Expand Down Expand Up @@ -136,8 +140,15 @@ public void deleteGraduationUser(Long id) {

public GraduationUserDetailResponse getGraduationUserById(Long graduationUserId) {
GraduationUser graduationUser = graduationUserQueryService.getById(graduationUserId);
String phone = "";
try {
User user = userQueryService.getUserById(graduationUser.getUserId());
phone = user.getPhone() != null ? user.getPhone() : "";
} catch (UserNotFoundException ignored) {
}
GraduationUserStatusResponse status = buildSubmissionStatus(graduationUser);
return GraduationUserDetailResponse.from(graduationUser, status);

return GraduationUserDetailResponse.from(graduationUser,phone ,status);
}

public GraduationUserBatchDeleteResponse deleteGraduationUsers(GraduationUserBatchDeleteRequest request) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ public record GraduationUserDetailResponse(
@Schema(description = "학번(교번)", example = "202412345", requiredMode = REQUIRED)
String studentId,

@Schema(description = "전화번호", example = "010-1234-5678", requiredMode = REQUIRED)
String phone,

@Schema(description = "졸업 날짜", example = "2028-08", requiredMode = REQUIRED)
@DateTimeFormat(pattern = "yyyy-MM")
String graduationDate,
Expand Down Expand Up @@ -54,13 +57,15 @@ public record GraduationUserDetailResponse(
) {
public static GraduationUserDetailResponse from(
GraduationUser graduationUser,
String phone,
GraduationUserStatusResponse status
) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
return GraduationUserDetailResponse.builder()
.graduationUserId(graduationUser.getId())
.name(graduationUser.getName())
.studentId(graduationUser.getUserId())
.phone(phone)
.graduationDate(graduationUser.getGraduationDate().format(formatter))
.advisor(graduationUser.getAdvisorProfessor())
.major(graduationUser.getDepartment())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
import java.util.HashSet;
import java.util.List;

import static kgu.developers.domain.user.domain.Major.CSE;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;

Expand Down Expand Up @@ -133,7 +134,13 @@ public void init() {
.approval(false)
.build()
);

fakeUserRepository.save(User.builder()
.id("202411001")
.name("홍길동")
.phone("010-1111-2222")
.email("hong1@kyonggi.ac.kr")
.major(CSE)
.build());


graduationUserAdminFacade = new GraduationUserAdminFacade(
Expand All @@ -142,7 +149,8 @@ public void init() {
thesisCommandService,
new ThesisQueryService(fakeThesisRepository),
certificateCommandService,
new CertificateQueryService(fakeCertificateRepository)
new CertificateQueryService(fakeCertificateRepository),
userQueryService
);

graduationUser1 = fakeGraduationUserRepository.save(GraduationUser.builder()
Expand Down Expand Up @@ -275,6 +283,21 @@ public void getGrduationUserById_Success() {

//then
assertEquals(result.studentId(),graduationUser1.getUserId());
assertEquals("010-1111-2222", result.phone());
}

@Test
@DisplayName("getGrduationUserById는 가입하지 않은 사용자의 전화번호를 빈 값으로 반환한다.")
public void getGrduationUserById_ReturnsEmptyPhoneWhenUserDoesNotExist() {
//given
Long graduationUserId = 2L;

//when
GraduationUserDetailResponse result = graduationUserAdminFacade.getGraduationUserById(graduationUserId);

//then
assertEquals(graduationUser2.getUserId(), result.studentId());
assertEquals("", result.phone());
}

@Test
Expand Down
Loading