From c3ae328881e88c1e4e96b2098d6386b80d99e1de Mon Sep 17 00:00:00 2001 From: Chan Jin Date: Tue, 21 Feb 2023 00:27:17 +0900 Subject: [PATCH] refactor : order response date format (#385) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor : 주문 관련 날짜 응답 포맷 * refactor : 티켓 조회 페이지네이션 사용 --- .../controller/AdminIssuedTicketController.java | 11 +++++++---- .../api/issuedTicket/mapper/IssuedTicketMapper.java | 13 ++++++++----- .../service/ReadIssuedTicketsUseCase.java | 10 ++++++---- .../model/dto/response/OrderAdminTableElement.java | 4 ++++ .../model/dto/response/OrderLineTicketResponse.java | 2 ++ .../band/gosrock/domain/common/vo/RefundInfoVo.java | 3 ++- .../issuedTicket/adaptor/IssuedTicketAdaptor.java | 9 +++------ 7 files changed, 32 insertions(+), 20 deletions(-) diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/issuedTicket/controller/AdminIssuedTicketController.java b/DuDoong-Api/src/main/java/band/gosrock/api/issuedTicket/controller/AdminIssuedTicketController.java index 3131c9fc..71d2af34 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/issuedTicket/controller/AdminIssuedTicketController.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/issuedTicket/controller/AdminIssuedTicketController.java @@ -1,7 +1,8 @@ package band.gosrock.api.issuedTicket.controller; -import band.gosrock.api.issuedTicket.dto.response.RetrieveIssuedTicketListResponse; +import band.gosrock.api.common.page.PageResponse; +import band.gosrock.api.issuedTicket.dto.response.RetrieveIssuedTicketDTO; import band.gosrock.api.issuedTicket.service.EntranceIssuedTicketUseCase; import band.gosrock.api.issuedTicket.service.ReadIssuedTicketsUseCase; import band.gosrock.domain.common.vo.IssuedTicketInfoVo; @@ -9,6 +10,8 @@ import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; +import org.springdoc.api.annotations.ParameterObject; +import org.springframework.data.domain.Pageable; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PatchMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -29,12 +32,12 @@ public class AdminIssuedTicketController { @Operation(summary = "[어드민 기능] 발급 티켓 리스트 가져오기 API 입니다.") @GetMapping - public RetrieveIssuedTicketListResponse getIssuedTickets( + public PageResponse getIssuedTickets( @PathVariable Long eventId, - @RequestParam Long page, + @ParameterObject Pageable pageable, @RequestParam(required = false) String userName, @RequestParam(required = false) String phoneNumber) { - return readIssuedTicketsUseCase.execute(page, eventId, userName, phoneNumber); + return readIssuedTicketsUseCase.execute(pageable, eventId, userName, phoneNumber); } @Operation(summary = "[어드민 기능] 발급 티켓 입장 처리 API 입니다.") diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/issuedTicket/mapper/IssuedTicketMapper.java b/DuDoong-Api/src/main/java/band/gosrock/api/issuedTicket/mapper/IssuedTicketMapper.java index e0854408..245ce4ca 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/issuedTicket/mapper/IssuedTicketMapper.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/issuedTicket/mapper/IssuedTicketMapper.java @@ -1,8 +1,9 @@ package band.gosrock.api.issuedTicket.mapper; +import band.gosrock.api.common.page.PageResponse; +import band.gosrock.api.issuedTicket.dto.response.RetrieveIssuedTicketDTO; import band.gosrock.api.issuedTicket.dto.response.RetrieveIssuedTicketDetailResponse; -import band.gosrock.api.issuedTicket.dto.response.RetrieveIssuedTicketListResponse; import band.gosrock.common.annotation.Mapper; import band.gosrock.domain.domains.event.adaptor.EventAdaptor; import band.gosrock.domain.domains.event.domain.Event; @@ -10,6 +11,8 @@ import band.gosrock.domain.domains.issuedTicket.domain.IssuedTicket; import band.gosrock.domain.domains.issuedTicket.dto.condition.IssuedTicketCondition; import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.transaction.annotation.Transactional; @Mapper @@ -21,10 +24,10 @@ public class IssuedTicketMapper { private final EventAdaptor eventAdaptor; @Transactional(readOnly = true) - public RetrieveIssuedTicketListResponse toIssuedTicketPageResponse( - Long page, IssuedTicketCondition condition) { - return RetrieveIssuedTicketListResponse.of( - issuedTicketAdaptor.searchIssuedTicket(page, condition)); + public PageResponse toIssuedTicketPageResponse( + Pageable page, IssuedTicketCondition condition) { + Page issuedTickets = issuedTicketAdaptor.searchIssuedTicket(page, condition); + return PageResponse.of(issuedTickets.map(RetrieveIssuedTicketDTO::of)); } @Transactional(readOnly = true) diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/issuedTicket/service/ReadIssuedTicketsUseCase.java b/DuDoong-Api/src/main/java/band/gosrock/api/issuedTicket/service/ReadIssuedTicketsUseCase.java index 40b32035..b06defec 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/issuedTicket/service/ReadIssuedTicketsUseCase.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/issuedTicket/service/ReadIssuedTicketsUseCase.java @@ -4,13 +4,15 @@ import static band.gosrock.api.common.aop.hostRole.HostQualification.MANAGER; import band.gosrock.api.common.aop.hostRole.HostRolesAllowed; -import band.gosrock.api.issuedTicket.dto.response.RetrieveIssuedTicketListResponse; +import band.gosrock.api.common.page.PageResponse; +import band.gosrock.api.issuedTicket.dto.response.RetrieveIssuedTicketDTO; import band.gosrock.api.issuedTicket.mapper.IssuedTicketMapper; import band.gosrock.common.annotation.UseCase; import band.gosrock.domain.domains.event.service.EventService; import band.gosrock.domain.domains.issuedTicket.dto.condition.IssuedTicketCondition; import band.gosrock.domain.domains.issuedTicket.service.IssuedTicketDomainService; import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Pageable; @UseCase @RequiredArgsConstructor @@ -25,9 +27,9 @@ public class ReadIssuedTicketsUseCase { * 로직이 너무 복잡해짐 => 일단 연관관계 매핑 걸어두고 나중에 QueryDsl 설정 들어오면 바꿔야 할 듯 => QueryDsl 추가 완료 */ @HostRolesAllowed(role = MANAGER, findHostFrom = EVENT_ID) - public RetrieveIssuedTicketListResponse execute( - Long page, Long eventId, String userName, String phoneNumber) { + public PageResponse execute( + Pageable pageable, Long eventId, String userName, String phoneNumber) { return issuedTicketMapper.toIssuedTicketPageResponse( - page, new IssuedTicketCondition(eventId, userName, phoneNumber)); + pageable, new IssuedTicketCondition(eventId, userName, phoneNumber)); } } diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/order/model/dto/response/OrderAdminTableElement.java b/DuDoong-Api/src/main/java/band/gosrock/api/order/model/dto/response/OrderAdminTableElement.java index 8adee732..68544254 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/order/model/dto/response/OrderAdminTableElement.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/order/model/dto/response/OrderAdminTableElement.java @@ -1,6 +1,7 @@ package band.gosrock.api.order.model.dto.response; +import band.gosrock.common.annotation.DateFormat; import band.gosrock.domain.common.vo.Money; import band.gosrock.domain.common.vo.RefundInfoVo; import band.gosrock.domain.common.vo.UserInfoVo; @@ -35,12 +36,15 @@ public class OrderAdminTableElement { private final String orderName; @Schema(description = "주문 생성 시간") + @DateFormat private final LocalDateTime createdAt; @Schema(description = "철회 완료 시간") + @DateFormat private final LocalDateTime withDrawAt; @Schema(description = "승인 된 시간") + @DateFormat private final LocalDateTime approveAt; @Schema(description = "아이템 총 갯수") diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/order/model/dto/response/OrderLineTicketResponse.java b/DuDoong-Api/src/main/java/band/gosrock/api/order/model/dto/response/OrderLineTicketResponse.java index 74fea622..ffd80773 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/order/model/dto/response/OrderLineTicketResponse.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/order/model/dto/response/OrderLineTicketResponse.java @@ -1,6 +1,7 @@ package band.gosrock.api.order.model.dto.response; +import band.gosrock.common.annotation.DateFormat; import band.gosrock.domain.common.vo.Money; import band.gosrock.domain.common.vo.OptionAnswerVo; import band.gosrock.domain.domains.order.domain.Order; @@ -24,6 +25,7 @@ public class OrderLineTicketResponse { private final String ticketNos; @Schema(description = "구매 일시") + @DateFormat private final LocalDateTime paymentAt; @Schema(description = "유저이름") diff --git a/DuDoong-Domain/src/main/java/band/gosrock/domain/common/vo/RefundInfoVo.java b/DuDoong-Domain/src/main/java/band/gosrock/domain/common/vo/RefundInfoVo.java index 9f32a48d..563275c5 100644 --- a/DuDoong-Domain/src/main/java/band/gosrock/domain/common/vo/RefundInfoVo.java +++ b/DuDoong-Domain/src/main/java/band/gosrock/domain/common/vo/RefundInfoVo.java @@ -1,6 +1,7 @@ package band.gosrock.domain.common.vo; +import band.gosrock.common.annotation.DateFormat; import java.time.LocalDateTime; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,7 +12,7 @@ @EqualsAndHashCode public class RefundInfoVo { - private final LocalDateTime endAt; + @DateFormat private final LocalDateTime endAt; private final Boolean availAble; @Builder diff --git a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/adaptor/IssuedTicketAdaptor.java b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/adaptor/IssuedTicketAdaptor.java index 8083c40f..3dae2be5 100644 --- a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/adaptor/IssuedTicketAdaptor.java +++ b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/adaptor/IssuedTicketAdaptor.java @@ -12,8 +12,7 @@ import java.util.Objects; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Sort; +import org.springframework.data.domain.Pageable; @Adaptor @RequiredArgsConstructor @@ -50,10 +49,8 @@ public Boolean existsByEventId(Long eventId) { return issuedTicketRepository.existsByEventId(eventId); } - public Page searchIssuedTicket(Long page, IssuedTicketCondition condition) { - PageRequest pageRequest = - PageRequest.of(Math.toIntExact(page), 10, Sort.by("id").descending()); - return issuedTicketRepository.searchToPage(condition, pageRequest); + public Page searchIssuedTicket(Pageable page, IssuedTicketCondition condition) { + return issuedTicketRepository.searchToPage(condition, page); } public void cancel(IssuedTicket issuedTicket) {