diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/auth/controller/AuthController.java b/DuDoong-Api/src/main/java/band/gosrock/api/auth/controller/AuthController.java index 62e8ff2f..0c493d4f 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/auth/controller/AuthController.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/auth/controller/AuthController.java @@ -38,7 +38,7 @@ @RequestMapping("/v1/auth") @RequiredArgsConstructor @Slf4j -@Tag(name = "인증 관련 컨트롤러") +@Tag(name = "1-1. [인증]") public class AuthController { private final RegisterUseCase registerUseCase; @@ -54,14 +54,14 @@ public class AuthController { private final CookieGenerateHelper cookieGenerateHelper; @Operation(summary = "kakao oauth 링크발급 (백엔드용 )", description = "kakao 링크를 받아볼수 있습니다.") - @Tag(name = "카카오 oauth") + @Tag(name = "1-2. [카카오]") @GetMapping("/oauth/kakao/link/test") public OauthLoginLinkResponse getKakaoOauthLinkTest() { return registerUseCase.getKaKaoOauthLinkTest(); } @Operation(summary = "kakao oauth 링크발급 (클라이언트용)", description = "kakao 링크를 받아볼수 있습니다.") - @Tag(name = "카카오 oauth") + @Tag(name = "1-2. [카카오]") @GetMapping("/oauth/kakao/link") public OauthLoginLinkResponse getKakaoOauthLink( @RequestHeader(value = "referer", required = false) String referer, @@ -84,7 +84,7 @@ public OauthLoginLinkResponse getKakaoOauthLink( } @Operation(summary = "카카오 code 요청받는 곳입니다. referer,host는 건들이지 말아주세요!안보내셔도됩니다.") - @Tag(name = "카카오 oauth") + @Tag(name = "1-2. [카카오]") @GetMapping("/oauth/kakao") @ApiErrorCodeExample(KakaoKauthErrorCode.class) public OauthTokenResponse getCredentialFromKaKao( @@ -108,7 +108,7 @@ public OauthTokenResponse getCredentialFromKaKao( } @Operation(summary = "개발용 회원가입입니다 클라이언트가 몰라도 됩니다.", deprecated = true) - @Tag(name = "카카오 oauth") + @Tag(name = "1-2. [카카오]") @DevelopOnlyApi @GetMapping("/oauth/kakao/develop") public ResponseEntity<TokenAndUserResponse> developUserSign(@RequestParam("code") String code) { @@ -119,7 +119,7 @@ public ResponseEntity<TokenAndUserResponse> developUserSign(@RequestParam("code" } @Operation(summary = "회원가입이 가능한지 id token 으로 확인합니다.") - @Tag(name = "카카오 oauth") + @Tag(name = "1-2. [카카오]") @GetMapping("/oauth/kakao/register/valid") public AvailableRegisterResponse kakaoAuthCheckRegisterValid( @RequestParam("id_token") String token) { @@ -127,7 +127,7 @@ public AvailableRegisterResponse kakaoAuthCheckRegisterValid( } @Operation(summary = "id_token 으로 회원가입을 합니다.") - @Tag(name = "카카오 oauth") + @Tag(name = "1-2. [카카오]") @PostMapping("/oauth/kakao/register") public ResponseEntity<TokenAndUserResponse> kakaoAuthCheckRegisterValid( @RequestParam("id_token") String token, @@ -141,7 +141,7 @@ public ResponseEntity<TokenAndUserResponse> kakaoAuthCheckRegisterValid( @NotNull @Operation(summary = "id_token 으로 로그인을 합니다.") - @Tag(name = "카카오 oauth") + @Tag(name = "1-2. [카카오]") @PostMapping("/oauth/kakao/login") public ResponseEntity<TokenAndUserResponse> kakaoOauthUserLogin( @RequestParam("id_token") String token) { @@ -152,7 +152,7 @@ public ResponseEntity<TokenAndUserResponse> kakaoOauthUserLogin( } @Operation(summary = "accessToken 으로 oauth user 정보를 가져옵니다.") - @Tag(name = "카카오 oauth") + @Tag(name = "1-2. [카카오]") @PostMapping("/oauth/kakao/info") public OauthUserInfoResponse kakaoOauthUserInfo( @RequestParam("access_token") String accessToken) { diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/cart/controller/CartController.java b/DuDoong-Api/src/main/java/band/gosrock/api/cart/controller/CartController.java index a36d31a5..d32d7078 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/cart/controller/CartController.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/cart/controller/CartController.java @@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.RestController; @SecurityRequirement(name = "access-token") -@Tag(name = "장바구니 관련 컨트롤러") +@Tag(name = "5. [장바구니]") @RestController @RequestMapping("/v1/carts") @RequiredArgsConstructor @@ -28,11 +28,6 @@ public class CartController { private final CreateCartUseCase createCartUseCase; private final ReadCartUseCase readCartUseCase; - // @Operation(summary = "상품 아이디에 답변을 해야하는 옵션이 있는지 확인합니다.(추후 아이템 도메인으로 이전?)") - // @GetMapping("/check/answer") - // public void createCartLines() { - // createOrderLineUseCase.execute(ticketItemId); - // } @Operation(summary = "상품을 장바구니에 담습니다. 상품에 답변해야하는 응답이 있다면, 응답도 보내주시면 됩니다.") @ApiErrorExceptionsExample(CreateCartExceptionDocs.class) @PostMapping @@ -40,30 +35,6 @@ public CartResponse createCartLines(@RequestBody @Valid AddCartRequest addCartRe return createCartUseCase.execute(addCartRequest); } - // @Operation(summary = "내 장바구니에 담긴 상품들의 목록을 불러옵니다.") - // @GetMapping - // public void createCartLines() { - // createOrderLineUseCase.execute(ticketItemId); - // } - - // @Operation(summary = "장바구니에 담은 상품의 정보를 가져옵니다. 옵션이있으면 옵션마다 다른 라인을 가집니다.") - // @GetMapping("/lines/{line_id}") - // public void getCartLineInfo(@PathVariable("line_id") Long ticketItemId) { - // createOrderLineUseCase.execute(ticketItemId); - // } - - // @Operation(summary = "장바구니에 담은 상품의 옵션을") - // @GetMapping("/{cart_id}/lines/{line_id}/option") - // public void getItemOptions(@PathVariable("cart_id") Long cartId,@PathVariable("line_id") - // Long ticketItemId) { - // createOrderLineUseCase.execute(ticketItemId); - // } - - // @Operation(summary = "티켓상품의 갯수와 사용자가 입력한 옵션을 가진 orderLine 을 만듭니다.") - // @PostMapping("/option") - // public void createOrderLine(@PathVariable("line_id") Long ticketItemId) { - // createOrderLineUseCase.execute(ticketItemId); - // } @Operation(summary = "사용자가 최근에 만들었던 장바구니를 불러옵니다. 없으면 data null (구현 안해도 됨)") @GetMapping("/recent") public CartResponse getRecentMyCart() { diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/comment/controller/CommentController.java b/DuDoong-Api/src/main/java/band/gosrock/api/comment/controller/CommentController.java index 18ad93b6..ec80c91d 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/comment/controller/CommentController.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/comment/controller/CommentController.java @@ -33,7 +33,7 @@ import org.springframework.web.bind.annotation.RestController; @SecurityRequirement(name = "access-token") -@Tag(name = "응원톡 컨트롤러") +@Tag(name = "9. [응원톡]") @RestController @RequestMapping("/v1/events/{eventId}/comments") @Validated diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/coupon/controller/CouponController.java b/DuDoong-Api/src/main/java/band/gosrock/api/coupon/controller/CouponController.java index f8d857fc..106c4cfd 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/coupon/controller/CouponController.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/coupon/controller/CouponController.java @@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.*; @SecurityRequirement(name = "access-token") -@Tag(name = "쿠폰 관련 컨트롤러") +@Tag(name = "a0. [쿠폰]") @RestController @RequestMapping("/v1/coupons") @RequiredArgsConstructor diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/email/service/OrderMailInfoHelper.java b/DuDoong-Api/src/main/java/band/gosrock/api/email/service/OrderMailInfoHelper.java index c87d6421..955614a7 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/email/service/OrderMailInfoHelper.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/email/service/OrderMailInfoHelper.java @@ -25,7 +25,7 @@ public class OrderMailInfoHelper { private final HostAdaptor hostAdaptor; public OrderMailDto execute(String orderUuid) { - Order order = orderAdaptor.find(orderUuid); + Order order = orderAdaptor.findByOrderUuid(orderUuid); User user = userAdaptor.queryUser(order.getUserId()); Event event = eventAdaptor.findById(order.getEventId()); Host host = hostAdaptor.findById(event.getHostId()); diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/event/controller/EventController.java b/DuDoong-Api/src/main/java/band/gosrock/api/event/controller/EventController.java index 679f7f18..9641edc3 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/event/controller/EventController.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/event/controller/EventController.java @@ -23,7 +23,7 @@ import org.springframework.web.bind.annotation.*; @SecurityRequirement(name = "access-token") -@Tag(name = "이벤트(공연) 관련 컨트롤러") +@Tag(name = "3. [이벤트(공연)]") @RestController @RequestMapping("/v1/events") @RequiredArgsConstructor diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/example/controller/ExampleController.java b/DuDoong-Api/src/main/java/band/gosrock/api/example/controller/ExampleController.java index 785e158f..5015b1ac 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/example/controller/ExampleController.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/example/controller/ExampleController.java @@ -35,7 +35,7 @@ @RequestMapping("/v1/examples") @RequiredArgsConstructor @SecurityRequirement(name = "access-token") -@Tag(name = "예시 컨트롤러, 실사용 용도가 아닙니다. 에러코드들의 목록을 가지고 있는 api 도 있습니다.") +@Tag(name = "xx. [예시] 에러코드 문서화") public class ExampleController { private final ExampleApiService exampleApiService; diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/host/controller/HostController.java b/DuDoong-Api/src/main/java/band/gosrock/api/host/controller/HostController.java index 3ded8530..dcaa9aa5 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/host/controller/HostController.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/host/controller/HostController.java @@ -23,7 +23,7 @@ import org.springframework.web.bind.annotation.*; @SecurityRequirement(name = "access-token") -@Tag(name = "호스트 관련 컨트롤러") +@Tag(name = "4. [호스트]") @RestController @RequestMapping("/v1/hosts") @RequiredArgsConstructor diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/image/controller/ImageController.java b/DuDoong-Api/src/main/java/band/gosrock/api/image/controller/ImageController.java index 9f425fd1..e685e796 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/image/controller/ImageController.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/image/controller/ImageController.java @@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.RestController; @SecurityRequirement(name = "access-token") -@Tag(name = "이미지 관련 컨트롤러") +@Tag(name = "a1. [이미지]") @RestController @RequestMapping("/v1") @RequiredArgsConstructor 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 508c2c2f..3131c9fc 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 @@ -17,7 +17,7 @@ import org.springframework.web.bind.annotation.RestController; @SecurityRequirement(name = "access-token") -@Tag(name = "발급 티켓 관련 어드민 컨트롤러") +@Tag(name = "8-1. [이벤트관리] 발급 티켓 관리 ") @RestController @RequestMapping("/v1/events/{eventId}/issuedTickets") @RequiredArgsConstructor diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/issuedTicket/controller/IssuedTicketController.java b/DuDoong-Api/src/main/java/band/gosrock/api/issuedTicket/controller/IssuedTicketController.java index a45dd328..3a29afd0 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/issuedTicket/controller/IssuedTicketController.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/issuedTicket/controller/IssuedTicketController.java @@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.RestController; @SecurityRequirement(name = "access-token") -@Tag(name = "발급 티켓 관련 컨트롤러") +@Tag(name = "8-2. [발급티켓]") @RestController @RequestMapping("/v1/issuedTickets") @RequiredArgsConstructor diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/order/controller/OrderAdminController.java b/DuDoong-Api/src/main/java/band/gosrock/api/order/controller/OrderAdminController.java index 85419179..232db197 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/order/controller/OrderAdminController.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/order/controller/OrderAdminController.java @@ -23,7 +23,7 @@ import org.springframework.web.bind.annotation.RestController; @SecurityRequirement(name = "access-token") -@Tag(name = "주문 관련 컨트롤러") +@Tag(name = "6-2. [이벤트관리] 주문관리 ") @RestController @RequestMapping("/v1/events/{eventId}/orders") @RequiredArgsConstructor @@ -48,4 +48,11 @@ public OrderResponse confirmOrder( @PathVariable Long eventId, @PathVariable("order_uuid") String orderUuid) { return approveOrderUseCase.execute(eventId, orderUuid); } + + @Operation(summary = "주문관리 리스트 페이지에서 주문 상세정보 조회할때") + @GetMapping("/{order_uuid}") + public OrderResponse getEventOrderDetail( + @PathVariable Long eventId, @PathVariable("order_uuid") String orderUuid) { + return readOrderUseCase.getEventOrderDetail(eventId, orderUuid); + } } diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/order/controller/OrderController.java b/DuDoong-Api/src/main/java/band/gosrock/api/order/controller/OrderController.java index 42066658..df71b787 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/order/controller/OrderController.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/order/controller/OrderController.java @@ -39,7 +39,7 @@ import org.springframework.web.bind.annotation.RestController; @SecurityRequirement(name = "access-token") -@Tag(name = "주문 관련 컨트롤러") +@Tag(name = "6-1. [주문]") @RestController @RequestMapping("/v1/orders") @RequiredArgsConstructor diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/order/model/dto/response/OrderBriefElement.java b/DuDoong-Api/src/main/java/band/gosrock/api/order/model/dto/response/OrderBriefElement.java index 551676da..48e84e26 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/order/model/dto/response/OrderBriefElement.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/order/model/dto/response/OrderBriefElement.java @@ -47,7 +47,7 @@ public static OrderBriefElement of(Order order, Event event, IssuedTickets issue .orderNo(order.getOrderNo()) .orderStatus(order.getOrderStatus()) .eventProfile(event.toEventProfileVo()) - .itemName(issuedTickets.getItemName()) + .itemName(order.getOrderName()) .totalQuantity(issuedTickets.getTotalQuantity()) .build(); } diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/order/service/ApproveOrderUseCase.java b/DuDoong-Api/src/main/java/band/gosrock/api/order/service/ApproveOrderUseCase.java index 9d73bba8..f3077105 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/order/service/ApproveOrderUseCase.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/order/service/ApproveOrderUseCase.java @@ -1,14 +1,12 @@ package band.gosrock.api.order.service; +import static band.gosrock.api.common.aop.hostRole.FindHostFrom.EVENT_ID; +import static band.gosrock.api.common.aop.hostRole.HostQualification.MANAGER; -import band.gosrock.api.common.UserUtils; +import band.gosrock.api.common.aop.hostRole.HostRolesAllowed; import band.gosrock.api.order.model.dto.response.OrderResponse; import band.gosrock.api.order.model.mapper.OrderMapper; import band.gosrock.common.annotation.UseCase; -import band.gosrock.domain.domains.event.adaptor.EventAdaptor; -import band.gosrock.domain.domains.event.domain.Event; -import band.gosrock.domain.domains.host.adaptor.HostAdaptor; -import band.gosrock.domain.domains.host.domain.Host; import band.gosrock.domain.domains.order.service.OrderApproveService; import lombok.RequiredArgsConstructor; @@ -19,16 +17,9 @@ public class ApproveOrderUseCase { private final OrderApproveService orderApproveService; private final OrderMapper orderMapper; - private final HostAdaptor hostAdaptor; - private final EventAdaptor eventAdaptor; - private final UserUtils userUtils; + @HostRolesAllowed(role = MANAGER, findHostFrom = EVENT_ID) public OrderResponse execute(Long eventId, String orderUuid) { - Event event = eventAdaptor.findById(eventId); - Host host = hostAdaptor.findById(event.getHostId()); - Long userId = userUtils.getCurrentUserId(); - host.validateHostUser(userId); - String confirmOrderUuid = orderApproveService.execute(orderUuid); return orderMapper.toOrderResponse(confirmOrderUuid); } diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/order/service/ReadOrderUseCase.java b/DuDoong-Api/src/main/java/band/gosrock/api/order/service/ReadOrderUseCase.java index d0616f07..d2cf1301 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/order/service/ReadOrderUseCase.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/order/service/ReadOrderUseCase.java @@ -1,7 +1,10 @@ package band.gosrock.api.order.service; +import static band.gosrock.api.common.aop.hostRole.FindHostFrom.EVENT_ID; +import static band.gosrock.api.common.aop.hostRole.HostQualification.GUEST; import band.gosrock.api.common.UserUtils; +import band.gosrock.api.common.aop.hostRole.HostRolesAllowed; import band.gosrock.api.common.page.PageResponse; import band.gosrock.api.common.slice.SliceResponse; import band.gosrock.api.order.model.dto.request.AdminOrderTableQueryRequest; @@ -11,9 +14,7 @@ import band.gosrock.api.order.model.mapper.OrderMapper; import band.gosrock.common.annotation.UseCase; import band.gosrock.domain.domains.event.adaptor.EventAdaptor; -import band.gosrock.domain.domains.event.domain.Event; import band.gosrock.domain.domains.host.adaptor.HostAdaptor; -import band.gosrock.domain.domains.host.domain.Host; import band.gosrock.domain.domains.order.adaptor.OrderAdaptor; import band.gosrock.domain.domains.order.domain.Order; import band.gosrock.domain.domains.order.domain.validator.OrderValidator; @@ -63,19 +64,21 @@ public SliceResponse<OrderBriefElement> getMyOrders(Boolean showing, Pageable pa return SliceResponse.of(orderBriefElements); } + @HostRolesAllowed(role = GUEST, findHostFrom = EVENT_ID) public PageResponse<OrderAdminTableElement> getEventOrders( Long eventId, AdminOrderTableQueryRequest adminOrderTableQueryRequest, Pageable pageable) { - Event event = eventAdaptor.findById(eventId); - Host host = hostAdaptor.findById(event.getHostId()); - Long userId = userUtils.getCurrentUserId(); - host.validateHostUser(userId); - Page<Order> orders = orderAdaptor.findEventOrders( adminOrderTableQueryRequest.toCondition(eventId), pageable); return PageResponse.of(orderMapper.toOrderAdminTableElement(orders)); } + + @HostRolesAllowed(role = GUEST, findHostFrom = EVENT_ID) + public OrderResponse getEventOrderDetail(Long eventId, String orderUuid) { + Order order = orderAdaptor.findByOrderUuid(orderUuid); + return orderMapper.toOrderResponse(order); + } } diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/statistic/controller/AdminStatisticController.java b/DuDoong-Api/src/main/java/band/gosrock/api/statistic/controller/AdminStatisticController.java index 37be80ca..947b5cf3 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/statistic/controller/AdminStatisticController.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/statistic/controller/AdminStatisticController.java @@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.RestController; @SecurityRequirement(name = "access-token") -@Tag(name = "어드민 통계관련") +@Tag(name = "a2. [이벤트관리] 통계관련") @RestController @RequestMapping("/v1/events/{eventId}/statistics") @RequiredArgsConstructor diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/controller/TicketItemController.java b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/controller/TicketItemController.java index 400c26ab..3c51d335 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/controller/TicketItemController.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/controller/TicketItemController.java @@ -17,7 +17,7 @@ import org.springframework.web.bind.annotation.*; @SecurityRequirement(name = "access-token") -@Tag(name = "티켓 상품 관련 컨트롤러") +@Tag(name = "7-1. [티켓상품]") @RestController @RequestMapping("/v1/events/{eventId}/ticketItems") @RequiredArgsConstructor diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/controller/TicketOptionController.java b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/controller/TicketOptionController.java index 0b240eec..57b938d8 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/controller/TicketOptionController.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/controller/TicketOptionController.java @@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.*; @SecurityRequirement(name = "access-token") -@Tag(name = "티켓상품 옵션 관련 컨트롤러") +@Tag(name = "7-2. [티켓상품옵션]") @RestController @RequestMapping("/v1/events/{eventId}/ticketOptions") @RequiredArgsConstructor diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/user/controller/UserController.java b/DuDoong-Api/src/main/java/band/gosrock/api/user/controller/UserController.java index 42738cfb..8760f79b 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/user/controller/UserController.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/user/controller/UserController.java @@ -17,7 +17,7 @@ @SecurityRequirement(name = "access-token") @RequiredArgsConstructor @Slf4j -@Tag(name = "유저 관련 컨트롤러") +@Tag(name = "2. [유저]") public class UserController { private final ReadUserUseCase readUserUseCase; diff --git a/DuDoong-Api/src/main/resources/application.yml b/DuDoong-Api/src/main/resources/application.yml index 8f9b0e45..f545cd21 100644 --- a/DuDoong-Api/src/main/resources/application.yml +++ b/DuDoong-Api/src/main/resources/application.yml @@ -12,6 +12,8 @@ spring: springdoc: default-produces-media-type: application/json default-consumes-media-type: application/json + swagger-ui: + tags-sorter: alpha server: servlet: diff --git a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTickets.java b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTickets.java index eb33be8b..f34add66 100644 --- a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTickets.java +++ b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTickets.java @@ -21,11 +21,6 @@ public List<String> getNos() { return this.issuedTickets.stream().map(IssuedTicket::getIssuedTicketNo).toList(); } - public String getItemName() { - IssuedTicket issuedTicket = issuedTickets.stream().findFirst().orElseThrow(); - return issuedTicket.getItemInfo().getTicketName(); - } - public int getTotalQuantity() { return issuedTickets.size(); } @@ -40,6 +35,7 @@ public String getTicketNoName() { } public IssuedTicketsStage getIssuedTicketsStage() { + if (getTotalQuantity() == 0) return IssuedTicketsStage.APPROVE_WAITING; List<IssuedTicketStatus> issuedTicketStatuses = getIssuedTicketStatuses(); if (isCanceled(issuedTicketStatuses)) { return IssuedTicketsStage.CANCELED; diff --git a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketsStage.java b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketsStage.java index 662d31f8..2fad0cee 100644 --- a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketsStage.java +++ b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketsStage.java @@ -8,6 +8,7 @@ @Getter @AllArgsConstructor public enum IssuedTicketsStage { + APPROVE_WAITING("APPROVE_WAITING", "승인대기"), // 입장완료 AFTER_ENTRANCE("AFTER_ENTRANCE", "입장완료"), // 관람예정 diff --git a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/adaptor/OrderAdaptor.java b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/adaptor/OrderAdaptor.java index 9720782e..0448934a 100644 --- a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/adaptor/OrderAdaptor.java +++ b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/adaptor/OrderAdaptor.java @@ -30,15 +30,13 @@ public Order findById(Long orderId) { } public Order findByOrderUuid(String uuid) { - return orderRepository.findByUuid(uuid).orElseThrow(() -> OrderNotFoundException.EXCEPTION); - } - - public Order find(String uuid) { - return orderRepository.find(uuid).orElseThrow(() -> OrderNotFoundException.EXCEPTION); + return orderRepository + .findByOrderUuid(uuid) + .orElseThrow(() -> OrderNotFoundException.EXCEPTION); } public Optional<Order> findRecentOrderByUserId(Long userId) { - return orderRepository.findFirstByUserIdOrderByIdDesc(userId); + return orderRepository.findRecentOrder(userId); } public Slice<Order> findMyOrders(FindMyPageOrderCondition condition, Pageable pageable) { diff --git a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/repository/OrderCustomRepository.java b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/repository/OrderCustomRepository.java index 33f2420e..6eae0578 100644 --- a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/repository/OrderCustomRepository.java +++ b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/repository/OrderCustomRepository.java @@ -11,9 +11,11 @@ public interface OrderCustomRepository { - Optional<Order> find(String orderUuid); + Optional<Order> findByOrderUuid(String orderUuid); Slice<Order> findMyOrders(FindMyPageOrderCondition condition, Pageable pageable); Page<Order> findEventOrders(FindEventOrdersCondition condition, Pageable pageable); + + Optional<Order> findRecentOrder(Long userId); } diff --git a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/repository/OrderCustomRepositoryImpl.java b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/repository/OrderCustomRepositoryImpl.java index 4b8386d2..7f31bc64 100644 --- a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/repository/OrderCustomRepositoryImpl.java +++ b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/repository/OrderCustomRepositoryImpl.java @@ -7,6 +7,7 @@ import band.gosrock.domain.common.util.SliceUtil; import band.gosrock.domain.domains.order.domain.Order; +import band.gosrock.domain.domains.order.domain.OrderStatus; import band.gosrock.domain.domains.order.repository.condition.FindEventOrdersCondition; import band.gosrock.domain.domains.order.repository.condition.FindMyPageOrderCondition; import com.querydsl.core.types.dsl.BooleanExpression; @@ -29,7 +30,7 @@ public class OrderCustomRepositoryImpl implements OrderCustomRepository { private final JPAQueryFactory queryFactory; @Override - public Optional<Order> find(String orderUuid) { + public Optional<Order> findByOrderUuid(String orderUuid) { Order find = queryFactory .selectFrom(order) @@ -50,7 +51,12 @@ public Slice<Order> findMyOrders(FindMyPageOrderCondition condition, Pageable pa .on(order.eventId.eq(event.id)) .where( eqUserId(condition.getUserId()), - openingState(condition.getShowing())) + openingState(condition.getShowing()), + order.orderStatus.notIn( + OrderStatus.FAILED, + OrderStatus.PENDING_PAYMENT, + OrderStatus.READY, + OrderStatus.OUTDATED)) .orderBy(order.id.desc()) .offset(pageable.getOffset()) .limit(pageable.getPageSize() + 1) @@ -89,6 +95,22 @@ public Page<Order> findEventOrders(FindEventOrdersCondition condition, Pageable return PageableExecutionUtils.getPage(orders, pageable, countQuery::fetchOne); } + @Override + public Optional<Order> findRecentOrder(Long userId) { + Order findOrder = + queryFactory + .selectFrom(order) + .where( + eqUserId(userId), + order.orderStatus.in( + OrderStatus.PENDING_APPROVE, + OrderStatus.APPROVED, + OrderStatus.CONFIRM)) + .orderBy(order.id.desc()) + .fetchFirst(); + return Optional.ofNullable(findOrder); + } + private BooleanExpression eqUserId(Long userId) { return userId == null ? null : order.userId.eq(userId); } diff --git a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/repository/OrderRepository.java b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/repository/OrderRepository.java index 7e984c2e..52c9b8ec 100644 --- a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/repository/OrderRepository.java +++ b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/repository/OrderRepository.java @@ -2,12 +2,6 @@ import band.gosrock.domain.domains.order.domain.Order; -import java.util.Optional; import org.springframework.data.repository.CrudRepository; -public interface OrderRepository extends CrudRepository<Order, Long>, OrderCustomRepository { - - Optional<Order> findByUuid(String uuid); - - Optional<Order> findFirstByUserIdOrderByIdDesc(Long userId); -} +public interface OrderRepository extends CrudRepository<Order, Long>, OrderCustomRepository {} diff --git a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/repository/condition/FindEventOrdersCondition.java b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/repository/condition/FindEventOrdersCondition.java index 456a56ea..31563a77 100644 --- a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/repository/condition/FindEventOrdersCondition.java +++ b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/repository/condition/FindEventOrdersCondition.java @@ -22,7 +22,7 @@ public FindEventOrdersCondition( AdminTableSearchType searchType, AdminTableOrderFilterType filterType) { this.eventId = eventId; - this.searchString = searchString; + this.searchString = searchString != null ? searchString : ""; this.searchType = searchType; this.filterType = filterType; }