Skip to content

Commit e47137c

Browse files
authored
Merge pull request #13 from DO-SOPT-CDS-TEAM-WEB7/refactor/#12
[Refactor] 명세서랑 다른 점 수정 및 로직 변경
2 parents 6321dbd + f7e0a46 commit e47137c

File tree

7 files changed

+36
-18
lines changed

7 files changed

+36
-18
lines changed

skyscanner/src/main/java/org/third/thirdseminar/controller/dto/request/TicketRequestDto.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
import java.util.Date;
44

5-
public record TicketRequestDto(Date startDate, Date endDate, Long airId) {
6-
public static TicketRequestDto of(Date startDate, Date endDate, Long airId){
7-
return new TicketRequestDto(startDate,endDate,airId);
5+
public record TicketRequestDto(Date startDate, Date endDate, Long reservationId) {
6+
public static TicketRequestDto of(Date startDate, Date endDate, Long reservationId){
7+
return new TicketRequestDto(startDate,endDate,reservationId);
88
}
99
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package org.third.thirdseminar.controller.dto.response;
22
import org.third.thirdseminar.domain.TimeRange;
33

4-
public record AirResultDto(DateDto dateDto, Long airId, String airName, TimeRange startTime, TimeRange endTime) {
5-
public static AirResultDto of(DateDto dateDto, Long airId, String airName, TimeRange startTime, TimeRange endTime) {
6-
return new AirResultDto(dateDto, airId, airName, startTime, endTime);
4+
public record AirResultDto(DateDto dateDto, Long reservationId, String airName, TimeRangeDto startTime, TimeRangeDto endTime) {
5+
public static AirResultDto of(DateDto dateDto, Long reservationId, String airName, TimeRangeDto startTime, TimeRangeDto endTime) {
6+
return new AirResultDto(dateDto, reservationId, airName, startTime, endTime);
77
}
88

99
}

skyscanner/src/main/java/org/third/thirdseminar/exception/Error.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public enum Error {
1515
*/
1616
DUMMY_NOT_FOUND(HttpStatus.NOT_FOUND, "더미에 데이터가 덜 들어간 것 같아요"),
1717

18-
AIR_NOT_FOUND(HttpStatus.NOT_FOUND, "항공사를 찾지 못했어요."),
18+
RESERVATION_NOT_FOUND(HttpStatus.NOT_FOUND, "예약정보를 찾지 못했어요"),
1919
/**
2020
* 500 INTERNAL_SERVER_ERROR
2121
*/

skyscanner/src/main/java/org/third/thirdseminar/infrastructure/ReservationJpaRepository.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66
import org.third.thirdseminar.domain.Reservation;
77

88
import java.util.List;
9+
import java.util.Optional;
910

1011
public interface ReservationJpaRepository extends JpaRepository<Reservation, Long> {
1112
@Query("SELECT r FROM Reservation r WHERE r.cityName <> :cityName")
1213
List<Reservation> findAllExcludingCity(@Param("cityName") String cityName);
1314

14-
Reservation findByAir_AirId(@Param("airId") Long airId);
15+
Optional<Reservation> findById(Long reservationId);
1516
}

skyscanner/src/main/java/org/third/thirdseminar/service/MainService.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ public class MainService {
2525

2626
public List<CardDto> getCards(){
2727
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd E");
28-
NumberFormat priceFormat = NumberFormat.getCurrencyInstance();
29-
priceFormat.setCurrency(Currency.getInstance("KRW"));
28+
NumberFormat priceFormat = NumberFormat.getInstance(Locale.getDefault());
29+
3030
return reservationJpaRepository.findAllExcludingCity("삿포로").stream().map((reservation)->
3131
CardDto.of(reservation.getCityName(),
3232
reservation.getCountry(),
3333
format.format(reservation.getStartDate()),
3434
format.format(reservation.getEndDate()),
3535
reservation.getAir().getAirName(),
36-
priceFormat.format(providerMinPrice(reservation.getTickets()))+"원")
36+
priceFormat.format(providerMinPrice(reservation.getTickets()))+"원 출발")
3737
).collect(Collectors.toList());
3838
}
3939

skyscanner/src/main/java/org/third/thirdseminar/service/ReservationService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ private TimeRangeDto TimeRangeFormat(TimeRange timeRange){
8686
String endTime = timeRange.getEnd().format( DateTimeFormatter.ofPattern( "H:mm" ));
8787
String during = timeRange.getDuring().format(DateTimeFormatter.ofPattern("H시간 mm분"));
8888

89+
8990
return new TimeRangeDto(startTime, endTime, during);
9091
}
9192

skyscanner/src/main/java/org/third/thirdseminar/service/TicketService.java

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,38 @@
11
package org.third.thirdseminar.service;
22

33
import java.text.DecimalFormat;
4+
import java.time.format.DateTimeFormatter;
45
import java.util.List;
6+
import java.util.Optional;
57
import java.util.stream.Collectors;
68

79
import org.springframework.stereotype.Service;
810
import org.third.thirdseminar.controller.dto.request.TicketRequestDto;
911
import org.third.thirdseminar.controller.dto.response.DateDto;
1012
import org.third.thirdseminar.controller.dto.response.TicketDto;
13+
import org.third.thirdseminar.controller.dto.response.TimeRangeDto;
1114
import org.third.thirdseminar.domain.Air;
1215
import org.third.thirdseminar.controller.dto.response.AirResultDto;
1316
import org.third.thirdseminar.domain.Reservation;
17+
import org.third.thirdseminar.domain.TimeRange;
1418
import org.third.thirdseminar.exception.Error;
1519
import org.third.thirdseminar.exception.model.NotFoundException;
1620
import org.third.thirdseminar.infrastructure.AirJpaRepository;
1721
import org.third.thirdseminar.infrastructure.ReservationJpaRepository;
1822
import org.third.thirdseminar.infrastructure.TicketJpaRepository;
1923

2024
import lombok.RequiredArgsConstructor;
25+
import lombok.extern.slf4j.Slf4j;
2126

2227
@Service
28+
@Slf4j
2329
@RequiredArgsConstructor
2430
public class TicketService {
2531
private final ReservationJpaRepository reservationJpaRepository;
2632
private final AirJpaRepository airJpaRepository;
2733
private final TicketJpaRepository ticketJpaRepository;
2834
private final DecimalFormat df = new DecimalFormat("###,###");
2935

30-
3136
public List<TicketDto> getTicketList(){
3237
return ticketJpaRepository.findAll().stream().map(
3338
(ticket)->
@@ -41,19 +46,30 @@ public List<TicketDto> getTicketList(){
4146
}
4247

4348
public AirResultDto getAirInformation(TicketRequestDto ticketRequestDto){
44-
Air air= airJpaRepository.findById(ticketRequestDto.airId())
45-
.orElseThrow(()-> new NotFoundException(Error.AIR_NOT_FOUND,Error.AIR_NOT_FOUND.getMessage())); //air 객체 주워오기
49+
Reservation reservation = reservationJpaRepository.findById(ticketRequestDto.reservationId())
50+
.orElseThrow( ()-> new NotFoundException(Error.RESERVATION_NOT_FOUND, Error.RESERVATION_NOT_FOUND.getMessage())
51+
);
52+
Air air= reservation.getAir();
4653
DateDto dateDto = new DateDto(ticketRequestDto.startDate(), ticketRequestDto.endDate()); //date 객체 주워오기
47-
Reservation reservation = reservationJpaRepository.findByAir_AirId(air.getAirId());
54+
4855
return AirResultDto.of(
4956
dateDto,
50-
air.getAirId(),
57+
reservation.getId(),
5158
air.getAirName(),
52-
reservation.getStartTime(),
53-
reservation.getEndTime()
59+
TimeRangeFormat(reservation.getStartTime()),
60+
TimeRangeFormat(reservation.getEndTime())
5461
);
5562
}
5663

64+
private TimeRangeDto TimeRangeFormat(TimeRange timeRange){
65+
String startTime = timeRange.getStart().format( DateTimeFormatter.ofPattern( "HH:mm" ));
66+
String endTime = timeRange.getEnd().format( DateTimeFormatter.ofPattern( "HH:mm" ));
67+
String during = timeRange.getDuring().format(DateTimeFormatter.ofPattern("H시간 mm분"));
68+
69+
70+
return new TimeRangeDto(startTime, endTime, during);
71+
}
72+
5773

5874

5975

0 commit comments

Comments
 (0)