Compare commits

..

3 Commits

Author SHA1 Message Date
dongHyo
d0ef6e7e89 refactor: 피드백 반영 2022-07-17 20:52:30 +09:00
dongHyo
123774e06f feat: 관리자 환불 구현 2022-07-15 17:40:00 +09:00
dongHyo
78d6f1a98c feat: 본인결제내역 환불 구현 2022-07-15 17:15:06 +09:00
11 changed files with 71 additions and 33 deletions

View File

@@ -91,7 +91,7 @@ erDiagram
bigint seat_id FK "좌석 ID"
bigint movie_time_id FK "상영시간표 ID"
bigint payment_id "결제 ID"
varchar status "상태 - 매가능/예약/"
varchar status "상태 - 매가능/예약진행중/판매완료"
int ticket_price "가격"
datetime deleted_at "삭제일시"
datetime created_at "등록일시"
@@ -101,11 +101,10 @@ erDiagram
PAYMENT {
bigint id PK "결제 ID"
bigint user_alternate_id "유저 대체ID"
varchar tid "카카오페이 결제고유번호"
varchar movie_title "영화제목"
varchar type "결제 타입 - 예) 네이버페이, 카카오페이"
varchar status "상태 - 완료/환불"
varchar failed_message "실패사유"
varchar status "상태 - 완료/환불/실패"
varchar failed_message "실패사유 - 컬럼명을 알아보기 쉬운가?"
varchar payment_number "예매번호"
int total_price "결제 금액"
datetime deleted_at "삭제일시"

View File

@@ -8,12 +8,11 @@ import com.ticketing.server.movie.application.response.MovieDeleteResponse;
import com.ticketing.server.movie.application.response.MovieListResponse;
import com.ticketing.server.movie.application.response.MovieInfoResponse;
import com.ticketing.server.movie.service.dto.DeletedMovieDTO;
import com.ticketing.server.movie.service.dto.MovieDTO;
import com.ticketing.server.movie.service.dto.MovieListDTO;
import com.ticketing.server.movie.service.dto.RegisteredMovieDTO;
import com.ticketing.server.movie.service.interfaces.MovieService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.util.List;
import javax.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -52,11 +51,11 @@ public class MovieController {
@GetMapping()
@ApiOperation(value = "영화 목록 조회")
public ResponseEntity<MovieListResponse> getMovies() {
List<MovieDTO> movieDtos = movieService.getMovies();
MovieListDTO movieListDto = movieService.getMovies();
return ResponseEntity.status(HttpStatus.OK)
.body(
new MovieListResponse(movieDtos)
movieListDto.toResponse()
);
}

View File

@@ -5,14 +5,13 @@ import static com.ticketing.server.user.domain.UserGrade.ROLES.STAFF;
import com.ticketing.server.movie.application.request.MovieTimeRegisterRequest;
import com.ticketing.server.movie.application.response.MovieTimeInfoResponse;
import com.ticketing.server.movie.application.response.MovieTimeListResponse;
import com.ticketing.server.movie.service.dto.MovieTimeDTO;
import com.ticketing.server.movie.service.dto.MovieTimeListDTO;
import com.ticketing.server.movie.service.dto.RegisteredMovieTimeDTO;
import com.ticketing.server.movie.service.interfaces.MovieTimeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import java.time.LocalDate;
import java.util.List;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
@@ -59,11 +58,11 @@ public class MovieTimeController {
public ResponseEntity<MovieTimeListResponse> getMovieTimes(
@ApiParam(value = "영화 ID", required = true) @RequestParam @NotNull Long movieId,
@ApiParam(value = "상영 날짜", required = true) @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate runningDate) {
List<MovieTimeDTO> movieTimeDtos = movieTimeService.getMovieTimes(movieId, runningDate);
MovieTimeListDTO movieTimeListDto = movieTimeService.getMovieTimes(movieId, runningDate);
return ResponseEntity.status(HttpStatus.OK)
.body(
new MovieTimeListResponse(movieTimeDtos)
movieTimeListDto.toResponse()
);
}

View File

@@ -5,6 +5,7 @@ import com.ticketing.server.movie.domain.Movie;
import com.ticketing.server.movie.domain.repository.MovieRepository;
import com.ticketing.server.movie.service.dto.DeletedMovieDTO;
import com.ticketing.server.movie.service.dto.MovieDTO;
import com.ticketing.server.movie.service.dto.MovieListDTO;
import com.ticketing.server.movie.service.dto.RegisteredMovieDTO;
import com.ticketing.server.movie.service.interfaces.MovieService;
import java.util.List;
@@ -38,12 +39,14 @@ public class MovieServiceImpl implements MovieService {
}
@Override
public List<MovieDTO> getMovies() {
public MovieListDTO getMovies() {
List<Movie> movies = movieRepository.findValidMovies();
return movies.stream()
List<MovieDTO> movieDtos = movies.stream()
.map(movie -> movie.toMovieDTO())
.collect(Collectors.toList());
return new MovieListDTO(movieDtos);
}
@Override

View File

@@ -8,7 +8,9 @@ import com.ticketing.server.movie.domain.repository.MovieRepository;
import com.ticketing.server.movie.domain.repository.MovieTimeRepository;
import com.ticketing.server.movie.domain.repository.TheaterRepository;
import com.ticketing.server.movie.service.dto.MovieTimeDTO;
import com.ticketing.server.movie.service.dto.MovieTimeListDTO;
import com.ticketing.server.movie.service.dto.MovieTimeRegisterDTO;
import com.ticketing.server.movie.service.dto.RegisteredMovieDTO;
import com.ticketing.server.movie.service.dto.RegisteredMovieTimeDTO;
import com.ticketing.server.movie.service.interfaces.MovieTimeService;
import java.time.LocalDate;
@@ -54,7 +56,7 @@ public class MovieTimeServiceImpl implements MovieTimeService {
}
@Override
public List<MovieTimeDTO> getMovieTimes(Long movieId, LocalDate runningDate) {
public MovieTimeListDTO getMovieTimes(Long movieId, LocalDate runningDate) {
Movie movie = findMovieById(movieId);
LocalDateTime startOfDay = runningDate.atStartOfDay().plusHours(6);
@@ -62,9 +64,11 @@ public class MovieTimeServiceImpl implements MovieTimeService {
List<MovieTime> movieTimes = movieTimeRepository.findValidMovieTimes(movie, startOfDay, endOfDay);
return movieTimes.stream()
List<MovieTimeDTO> movieTimeDtos = movieTimes.stream()
.map(movieTime -> movieTime.toMovieTimeDTO())
.collect(Collectors.toList());
return new MovieTimeListDTO(movieTimeDtos);
}
@Override

View File

@@ -0,0 +1,18 @@
package com.ticketing.server.movie.service.dto;
import com.ticketing.server.movie.application.response.MovieListResponse;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public class MovieListDTO {
private final List<MovieDTO> movieDtos;
public MovieListResponse toResponse() {
return new MovieListResponse(movieDtos);
}
}

View File

@@ -0,0 +1,18 @@
package com.ticketing.server.movie.service.dto;
import com.ticketing.server.movie.application.response.MovieTimeListResponse;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public class MovieTimeListDTO {
private final List<MovieTimeDTO> movieTimeDtos;
public MovieTimeListResponse toResponse() {
return new MovieTimeListResponse(movieTimeDtos);
}
}

View File

@@ -1,15 +1,14 @@
package com.ticketing.server.movie.service.interfaces;
import com.ticketing.server.movie.service.dto.DeletedMovieDTO;
import com.ticketing.server.movie.service.dto.MovieDTO;
import com.ticketing.server.movie.service.dto.MovieListDTO;
import com.ticketing.server.movie.service.dto.RegisteredMovieDTO;
import java.util.List;
public interface MovieService {
RegisteredMovieDTO registerMovie(String title, Long runningTime);
List<MovieDTO> getMovies();
MovieListDTO getMovies();
DeletedMovieDTO deleteMovie(Long id);
}

View File

@@ -2,18 +2,17 @@ package com.ticketing.server.movie.service.interfaces;
import com.ticketing.server.movie.domain.Movie;
import com.ticketing.server.movie.domain.Theater;
import com.ticketing.server.movie.service.dto.MovieTimeDTO;
import com.ticketing.server.movie.service.dto.MovieTimeListDTO;
import com.ticketing.server.movie.service.dto.MovieTimeRegisterDTO;
import com.ticketing.server.movie.service.dto.RegisteredMovieTimeDTO;
import java.time.LocalDate;
import java.util.List;
import javax.validation.Valid;
public interface MovieTimeService {
RegisteredMovieTimeDTO registerMovieTime(@Valid MovieTimeRegisterDTO movieTimeRegisterDto);
List<MovieTimeDTO> getMovieTimes(Long movieId, LocalDate runningDate);
MovieTimeListDTO getMovieTimes(Long movieId, LocalDate runningDate);
Movie findMovieById(Long movieId);

View File

@@ -39,10 +39,10 @@ public class MovieServiceImplTest {
.thenReturn(Collections.emptyList());
// when
List<MovieDTO> movieDtos = movieService.getMovies();
MovieListDTO movieListDto = movieService.getMovies();
// then
assertTrue(movieDtos.isEmpty());
assertTrue(movieListDto.getMovieDtos().isEmpty());
}
@Test
@@ -55,11 +55,11 @@ public class MovieServiceImplTest {
when(movieRepository.findValidMovies())
.thenReturn(movies);
// when
List<MovieDTO> movieDtos = movieService.getMovies();
// when
MovieListDTO movieListDto = movieService.getMovies();
// then
assertTrue(movieDtos.isEmpty());
// then
assertTrue(!movieListDto.getMovieDtos().isEmpty());
}
}

View File

@@ -9,7 +9,7 @@ import com.ticketing.server.movie.domain.MovieTime;
import com.ticketing.server.movie.domain.Theater;
import com.ticketing.server.movie.domain.repository.MovieRepository;
import com.ticketing.server.movie.domain.repository.MovieTimeRepository;
import com.ticketing.server.movie.service.dto.MovieTimeDTO;
import com.ticketing.server.movie.service.dto.MovieTimeListDTO;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
@@ -51,10 +51,10 @@ public class MovieTimeServiceImplTest {
.thenReturn(Collections.emptyList());
// when
List<MovieTimeDTO> movieTimeDtos = movieTimeService.getMovieTimes(any(), LocalDate.now());
MovieTimeListDTO movieTimeListDto = movieTimeService.getMovieTimes(any(), LocalDate.now());
// then
assertTrue(movieTimeDtos.isEmpty());
assertTrue(movieTimeListDto.getMovieTimeDtos().isEmpty());
}
@Test
@@ -76,10 +76,10 @@ public class MovieTimeServiceImplTest {
.thenReturn(movieTimes);
// when
List<MovieTimeDTO> movieTimeDtos = movieTimeService.getMovieTimes(any(), LocalDate.of(2022, 07, 01));
MovieTimeListDTO movieTimeListDto = movieTimeService.getMovieTimes(any(), LocalDate.of(2022, 07, 01));
// then
assertTrue(!movieTimeDtos.isEmpty());
assertTrue(!movieTimeListDto.getMovieTimeDtos().isEmpty());
}
}