Skip to content

Commit

Permalink
fix/refactor : [#5] 사용하지 않는 코드 정리, 통합 테스트 오류 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
kjh418 committed Oct 3, 2024
1 parent 71a6753 commit e3ac67c
Show file tree
Hide file tree
Showing 27 changed files with 39 additions and 338 deletions.
Original file line number Diff line number Diff line change
@@ -1,34 +1,35 @@
package hhplus.lecture.application.service;

import hhplus.lecture.domain.model.Lecture;
import hhplus.lecture.infrastructure.persistence.LectureItemEntity;
import hhplus.lecture.domain.LectureItemEntity;
import hhplus.lecture.infrastructure.repository.InstructorRepository;
import hhplus.lecture.infrastructure.repository.LectureItemRepository;
import hhplus.lecture.infrastructure.repository.LectureRepository;
import hhplus.lecture.infrastructure.persistence.LectureEntity;
import hhplus.lecture.domain.LectureEntity;
import hhplus.lecture.interfaces.dto.lecture.LectureDto;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.time.LocalDate;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.stream.Collectors;

@Service
@Transactional
public class LectureService {

private final LectureRepository lectureRepository;
private final LectureItemRepository lectureItemRepository;
private final InstructorRepository instructorRepository;

// 특강 정보 조회
public Lecture getLecture(String lectureCode) {
public LectureEntity getLecture(String lectureCode) {
LectureEntity entity = lectureRepository.findByLectureCode(lectureCode);
if(entity == null) {
throw new NoSuchElementException("특강을 찾을 수 없습니다.");
}

return entity.toDomain();
return entity;
}

// 모든 특강 조회
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
package hhplus.lecture.application.service;

import hhplus.lecture.domain.model.Lecture;
import hhplus.lecture.domain.model.RegistrationStatus;
import hhplus.lecture.infrastructure.persistence.LectureItemEntity;
import hhplus.lecture.infrastructure.persistence.RegistrationEntity;
import hhplus.lecture.domain.LectureItemEntity;
import hhplus.lecture.domain.RegistrationEntity;
import hhplus.lecture.infrastructure.repository.LectureItemRepository;
import hhplus.lecture.infrastructure.repository.RegistrationRepository;
import org.springframework.stereotype.Service;
Expand All @@ -16,15 +15,9 @@
@Transactional
public class RegistrationService {

private final LectureService lectureService;
private final LectureItemRepository lectureItemRepository;
private final RegistrationRepository registrationRepository;

// 특강 정보 조회
public Lecture lectureDetail(String lectureCode){
return lectureService.getLecture(lectureCode);
}

// 특강 신청 성공 여부
public boolean registerLecture(String userCode, String lectureItemCode) {
// 기존 신청 내역 확인
Expand Down Expand Up @@ -65,8 +58,7 @@ private void saveRegistration(String userCode, String lectureCde) {
}

// 생성자
public RegistrationService(LectureService lectureService, LectureItemRepository lectureItemRepository, RegistrationRepository registrationRepository) {
this.lectureService = lectureService;
public RegistrationService(LectureItemRepository lectureItemRepository, RegistrationRepository registrationRepository) {
this.lectureItemRepository = lectureItemRepository;
this.registrationRepository = registrationRepository;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package hhplus.lecture.application.service;

import hhplus.lecture.infrastructure.persistence.LectureEntity;
import hhplus.lecture.infrastructure.persistence.LectureItemEntity;
import hhplus.lecture.infrastructure.persistence.RegistrationEntity;
import hhplus.lecture.infrastructure.persistence.UserEntity;
import hhplus.lecture.domain.LectureEntity;
import hhplus.lecture.domain.LectureItemEntity;
import hhplus.lecture.domain.RegistrationEntity;
import hhplus.lecture.domain.UserEntity;
import hhplus.lecture.infrastructure.repository.*;
import hhplus.lecture.interfaces.dto.lecture.LectureDto;
import hhplus.lecture.interfaces.dto.user.UserResponseDto;
Expand All @@ -20,7 +20,6 @@ public class UserService {
private final RegistrationRepository registrationRepository;
private final LectureRepository lectureRepository;
private final LectureItemRepository lectureItemRepository;
private final LectureService lectureService;
private final InstructorRepository instructorRepository;

// 사용자 조회 (사용자 상세정보 + 강의 신청 내역)
Expand All @@ -35,9 +34,7 @@ public UserResponseDto getUserAndRegisteredLectures(String userCode) {
// 강의 내역
List<LectureDto> registeredLectures = registrations.stream()
.map(registration -> {
// lectureItemCode를 통해 LectureItemEntity를 가져옵니다.
LectureItemEntity lectureItem = lectureItemRepository.findByLectureItemCode(registration.getLectureItemCode());
// LectureEntity를 통해 LectureDto 생성
LectureEntity lectureEntity = lectureRepository.findByLectureCode(lectureItem.getLectureItemCode());
String instructorName = instructorRepository.findByInstructorCode(lectureEntity.getInstructorCode()).getInstructorName();
return LectureDto.fromEntity(lectureEntity, lectureItem, instructorName);
Expand All @@ -46,10 +43,9 @@ public UserResponseDto getUserAndRegisteredLectures(String userCode) {
}

// 생성자
public UserService(UsersRepository usersRepository, RegistrationRepository registrationRepository, LectureService lectureService, InstructorRepository instructorRepository, LectureRepository lectureRepository, LectureItemRepository lectureItemRepository) {
public UserService(UsersRepository usersRepository, RegistrationRepository registrationRepository, InstructorRepository instructorRepository, LectureRepository lectureRepository, LectureItemRepository lectureItemRepository) {
this.usersRepository = usersRepository;
this.registrationRepository = registrationRepository;
this.lectureService = lectureService;
this.instructorRepository = instructorRepository;
this.lectureRepository = lectureRepository;
this.lectureItemRepository = lectureItemRepository;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package hhplus.lecture.infrastructure.persistence;
package hhplus.lecture.domain;

import hhplus.lecture.domain.model.Instructor;
import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Getter;
Expand All @@ -26,20 +25,4 @@ public InstructorEntity(String instructorCode, String instructorName) {
this.instructorCode = instructorCode;
this.instructorName = instructorName;
}

// 도메인 모델로 변환
public Instructor toDomain() {
return new Instructor(
instructorCode,
instructorName
);
}

// 도메인 모델에서 엔티티로 변환하는 정적 메서드
public static InstructorEntity fromDomain(Instructor instructor) {
return new InstructorEntity(
instructor.getInstructorCode(),
instructor.getInstructorName()
);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package hhplus.lecture.infrastructure.persistence;
package hhplus.lecture.domain;

import hhplus.lecture.domain.model.Lecture;
import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Getter;
Expand Down Expand Up @@ -33,17 +32,4 @@ public LectureEntity(String lectureCode, String lectureName, String instructorCo
this.lectureName = lectureName;
this.instructorCode = instructorCode;
}

public Lecture toDomain() {
return new Lecture(lectureCode, lectureName, instructorCode);
}

public static LectureEntity fromDomain(Lecture lecture) {
return new LectureEntity(
lecture.getLectureCode(),
lecture.getLectureName(),
lecture.getInstructorCode()
);
}
}

Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package hhplus.lecture.infrastructure.persistence;
package hhplus.lecture.domain;

import hhplus.lecture.domain.model.LectureItem;
import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Getter;
Expand Down Expand Up @@ -44,28 +43,6 @@ public LectureItemEntity(String lectureItemCode, String lectureCode, LocalDate l
this.currentCapacity = currentCapacity;
}

// 도메인 모델로 변환
public LectureItem toDomain() {
return new LectureItem(
lectureItemCode,
lectureCode,
lectureDate,
maxCapacity,
currentCapacity
);
}

// 도메인 모델에서 엔티티로 변환하는 정적 메서드
public static LectureItemEntity fromDomain(LectureItem lectureItem) {
return new LectureItemEntity(
lectureItem.getLectureItemCode(),
lectureItem.getLectureCode(),
lectureItem.getLectureDate(),
lectureItem.getMaxCapacity(),
lectureItem.getCurrentCapacity()
);
}

// 신청 인원 증가 (정원 확인)
public boolean addRegistration() {
if (currentCapacity < maxCapacity) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package hhplus.lecture.infrastructure.persistence;
package hhplus.lecture.domain;

import hhplus.lecture.domain.model.Registration;
import hhplus.lecture.domain.model.RegistrationStatus;
import jakarta.persistence.*;
import lombok.AccessLevel;
Expand Down Expand Up @@ -30,7 +29,7 @@ public class RegistrationEntity {

@Enumerated(EnumType.STRING)
@Column(nullable = false)
private RegistrationStatus status; // 신청 상태 (WAIT, APPROVAL, REFUSAL)
private RegistrationStatus status; // 신청 상태 (APPROVAL, REFUSAL)

@Column(nullable = false)
private LocalDateTime registrationDate; // 신청 날짜
Expand All @@ -41,26 +40,4 @@ public RegistrationEntity(String userCode, String lectureItemCode, RegistrationS
this.status = status;
this.registrationDate = registrationDate;
}

public Registration toDomain() {
return new Registration(
userCode,
lectureItemCode,
status,
registrationDate
);
}

public static RegistrationEntity fromDomain(Registration registration) {
return new RegistrationEntity(
registration.getUserCode(),
registration.getLectureItemCode(),
registration.getStatus(),
registration.getRegistrationDate()
);
}

public void updateStatus(RegistrationStatus status) {
this.status = status;
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package hhplus.lecture.infrastructure.persistence;
package hhplus.lecture.domain;

import hhplus.lecture.domain.model.User;
import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Getter;
Expand All @@ -26,15 +25,4 @@ public UserEntity(String userCode, String userName) {
this.userCode = userCode;
this.userName = userName;
}

public User toDomain() {
return new User(userCode, userName);
}

public static UserEntity fromDomain(User user) {
return new UserEntity(
user.getUserCode(),
user.getUserName()
);
}
}
22 changes: 0 additions & 22 deletions src/main/java/hhplus/lecture/domain/model/Instructor.java

This file was deleted.

25 changes: 0 additions & 25 deletions src/main/java/hhplus/lecture/domain/model/Lecture.java

This file was deleted.

41 changes: 0 additions & 41 deletions src/main/java/hhplus/lecture/domain/model/LectureItem.java

This file was deleted.

Loading

0 comments on commit e3ac67c

Please sign in to comment.