diff --git a/nowait-app-admin-api/build.gradle b/nowait-app-admin-api/build.gradle index 0f5b4c6..970728d 100644 --- a/nowait-app-admin-api/build.gradle +++ b/nowait-app-admin-api/build.gradle @@ -12,6 +12,7 @@ bootJar { group = 'com.nowait' version = '0.0.1-SNAPSHOT' + repositories { mavenCentral() maven { url 'https://jitpack.io' } @@ -29,11 +30,11 @@ dependencyManagement { dependencies { implementation project(':nowait-common') - implementation project(':nowait-infra') + implementation project(':nowait-infra') // 사용자 관련 도메인 implementation project(':nowait-domain:domain-admin-rdb') implementation project(':nowait-domain:domain-core-rdb') implementation project(':nowait-domain:domain-redis') - implementation project(':nowait-event') + implementation project(":nowait-event") // Spring Boot Starter implementation 'org.springframework.boot:spring-boot-starter-web' @@ -42,23 +43,27 @@ dependencies { // SPRING SECURITY implementation 'org.springframework.boot:spring-boot-starter-security' testImplementation 'org.springframework.boot:spring-boot-starter-test' - implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' // jwt implementation 'io.jsonwebtoken:jjwt-api:0.12.3' implementation 'io.jsonwebtoken:jjwt-impl:0.12.3' implementation 'io.jsonwebtoken:jjwt-jackson:0.12.3' - // redis - implementation 'org.springframework.boot:spring-boot-starter-data-redis' - - // SWAGGER - implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0' + // OAUTH2 + implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' + implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server' + implementation 'jakarta.servlet:jakarta.servlet-api:6.0.0' // DB implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.mysql:mysql-connector-j' + // SWAGGER + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0' + + // Redis + implementation 'org.springframework.boot:spring-boot-starter-data-redis' + // 디스코드 웹훅 implementation 'com.github.napstr:logback-discord-appender:1.0.0' @@ -78,12 +83,14 @@ dependencies { // test testImplementation 'org.springframework.boot:spring-boot-starter-test' - testImplementation platform("org.testcontainers:testcontainers-bom:1.20.1") - testImplementation "org.testcontainers:junit-jupiter" - testImplementation "org.testcontainers:testcontainers" - + testImplementation 'org.junit.jupiter:junit-jupiter-api' + testImplementation 'org.junit.jupiter:junit-jupiter-engine' + testImplementation 'org.mockito:mockito-core' + testImplementation 'org.mockito:mockito-junit-jupiter' + testImplementation 'org.testcontainers:junit-jupiter' + testImplementation 'com.redis:testcontainers-redis:2.2.4' } test { useJUnitPlatform() -} +} \ No newline at end of file diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/menu/service/MenuService.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/menu/service/MenuService.java index 50805e1..a877a5f 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/menu/service/MenuService.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/menu/service/MenuService.java @@ -47,7 +47,7 @@ public class MenuService { @Transactional public MenuCreateResponse createMenu(MenuCreateRequest request, MemberDetails memberDetails) { // 사용자 정보 가져오기 - User user = getUser(memberDetails); + User user = memberDetails.getUser(); // 사용자 역할이 SUPER_ADMIN이거나, storeId가 일치하는지 확인 validateViewAuthorization(user, request.getStoreId()); @@ -61,7 +61,7 @@ public MenuCreateResponse createMenu(MenuCreateRequest request, MemberDetails me @Transactional(readOnly = true) public MenuReadResponse getAllMenusByStoreId(Long storeId, MemberDetails memberDetails) { // 사용자 정보 가져오기 - User user = getUser(memberDetails); + User user = memberDetails.getUser(); // 사용자 역할이 SUPER_ADMIN이거나, storeId가 일치하는지 확인 validateViewAuthorization(user, storeId); @@ -86,7 +86,7 @@ public MenuReadDto getMenuById(Long storeId, Long menuId, MemberDetails memberDe throw new MenuParamEmptyException(); } // 사용자 정보 가져오기 - User user = getUser(memberDetails); + User user = memberDetails.getUser(); Menu menu = getMenu(menuId); // 사용자 역할이 SUPER_ADMIN이거나, storeId가 일치하는지 확인 validateViewAuthorization(user, menu.getStoreId()); @@ -102,7 +102,7 @@ public MenuReadDto getMenuById(Long storeId, Long menuId, MemberDetails memberDe @Transactional public MenuReadDto updateMenu(Long menuId, MenuUpdateRequest request, MemberDetails memberDetails) { - User user = getUser(memberDetails); + User user = memberDetails.getUser(); Menu menu = getMenu(menuId); validateUpdateAuthorization(user, menu.getStoreId()); @@ -168,7 +168,7 @@ public String updateMenuSortOrder(List requests, MemberDe @Transactional public String deleteMenu(Long menuId, MemberDetails memberDetails) { - User user = getUser(memberDetails); + User user = memberDetails.getUser(); Menu menu = getMenu(menuId); validateDeleteAuthorization(user, menu.getStoreId()); @@ -210,9 +210,9 @@ private void validateDeleteAuthorization(User user, Long storeId) { } } - private User getUser(MemberDetails memberDetails) { - return userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); - } + // private User getUser(MemberDetails memberDetails) { + // return userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); + // } private Menu getMenu(Long menuId) { return menuRepository.findByIdAndDeletedFalse(menuId) diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/order/service/OrderService.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/order/service/OrderService.java index 0ef84e7..5ba8872 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/order/service/OrderService.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/order/service/OrderService.java @@ -34,9 +34,11 @@ import com.nowait.nowaitevent.order.event.OrderCancelledEvent; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; @Service @RequiredArgsConstructor +@Slf4j public class OrderService { private final OrderRepository orderRepository; private final StatisticCustomRepository statisticCustomRepository; @@ -46,24 +48,29 @@ public class OrderService { @Transactional(readOnly = true) public List findAllOrders(Long storeId, MemberDetails memberDetails) { - User user = getUser(memberDetails); + log.info("getUser 호출 전"); + User user = memberDetails.getUser(); + log.info("getUser 호출 완료"); storeRepository.findByStoreIdAndDeletedFalse(storeId).orElseThrow(StoreNotFoundException::new); + log.info("Store 조회 완료"); validateViewAuthorization(user, storeId); LocalDate today = LocalDate.now(ZoneId.of("Asia/Seoul")); LocalDateTime startDateTime = today.atStartOfDay(); LocalDateTime endDateTime = today.plusDays(1).atStartOfDay(); - return orderRepository.findAllByStore_StoreIdAndCreatedAtBetween(storeId, startDateTime, endDateTime) + List order = orderRepository.findAllByStore_StoreIdAndCreatedAtBetween(storeId, startDateTime, endDateTime) .stream() .map(OrderResponseDto::fromEntity) .collect(Collectors.toList()); + log.info("Order 조회 완료"); + return order; } @Transactional public OrderStatusUpdateResponseDto updateOrderStatus(Long orderId, OrderStatus newStatus, MemberDetails memberDetails) { - User user = getUser(memberDetails); + User user = memberDetails.getUser(); UserOrder userOrder = orderRepository.findById(orderId).orElseThrow(OrderNotFoundException::new); Long storeId = userOrder.getStore().getStoreId(); @@ -92,7 +99,7 @@ public OrderStatusUpdateResponseDto updateOrderStatus(Long orderId, OrderStatus @Transactional public OrderStatusUpdateResponseDto cancelOrder(Long orderId, CancelOrderRequest cancelOrderRequest, MemberDetails memberDetails) { - User user = getUser(memberDetails); + User user = memberDetails.getUser(); UserOrder userOrder = orderRepository.findById(orderId).orElseThrow(OrderNotFoundException::new); validateUpdateAuthorization(user, userOrder.getStore().getStoreId()); @@ -113,7 +120,7 @@ public OrderStatusUpdateResponseDto cancelOrder(Long orderId, CancelOrderRequest @Transactional(readOnly = true) public OrderSalesSumDetail getSaleSumByStoreId(MemberDetails memberDetails, LocalDate date) { - User user = getUser(memberDetails); + User user = memberDetails.getUser(); Long storeId = user.getStoreId(); validateViewAuthorization(user, storeId); @@ -124,7 +131,7 @@ public OrderSalesSumDetail getSaleSumByStoreId(MemberDetails memberDetails, Loca // 현재는 사용하지 않음. 향후 관리자 통계 페이지 확장 시 활용 가능 @Transactional(readOnly = true) public List getTop5StoresBySalesToday(MemberDetails memberDetails) { - User user = getUser(memberDetails); + User user = memberDetails.getUser(); Long storeId = user.getStoreId(); validateUpdateAuthorization(user, storeId); @@ -146,10 +153,11 @@ private void validateUpdateAuthorization(User user, Long storeId) { } } - private User getUser(MemberDetails memberDetails) { - if (memberDetails == null) { - throw new OrderViewUnauthorizedException(); - } - return userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); - } + // private User getUser(MemberDetails memberDetails) { + // if (memberDetails == null) { + // throw new OrderViewUnauthorizedException(); + // } + // // findById로 Select 쿼리 나가는 것을 getReferenceById로 변경하여 방지 + // return userRepository.getReferenceById(memberDetails.getId()); + // } } diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/reservation/service/ReservationService.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/reservation/service/ReservationService.java index b2a0040..42a54d5 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/reservation/service/ReservationService.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/reservation/service/ReservationService.java @@ -61,7 +61,7 @@ public class ReservationService { //TODO 성능 비교를 위해 남겨둔 로직 @Transactional(readOnly = true) public ReservationStatusSummaryDto getReservationListByStoreId(Long storeId, MemberDetails memberDetails) { - User user = getUser(memberDetails); + User user = memberDetails.getUser(); validateViewAuthorization(user, storeId); List reservations = reservationRepository.findAllByStore_StoreIdOrderByRequestedAtAsc(storeId); @@ -96,7 +96,7 @@ public ReservationStatusSummaryDto getReservationListByStoreId(Long storeId, Mem @Transactional public CallGetResponseDto updateReservationStatus(Long reservationId, ReservationStatusUpdateRequestDto requestDto, MemberDetails memberDetails) { - User user = getUser(memberDetails); + User user = memberDetails.getUser(); Reservation reservation = reservationRepository.findById(reservationId) .orElseThrow(ReservationNotFoundException::new); validateUpdateAuthorization(user, reservation.getStore().getStoreId()); @@ -195,7 +195,7 @@ public List getAllWaitingUserDetails(Long storeId) { // 완료 or 취소 처리된 대기 리스트 조회 @Transactional(readOnly = true) public List getCompletedWaitingUserDetails(Long storeId, MemberDetails memberDetails) { - User user = getUser(memberDetails); + User user = memberDetails.getUser(); validateViewAuthorization(user, storeId); List reservations = findTodayWaiting(storeId); @@ -214,7 +214,7 @@ public List getCompletedWaitingUserDetails(Long storeId, Me public EntryStatusResponseDto processEntryStatus(Long storeId, String userId, MemberDetails member, ReservationStatus newStatus) { - User user = getUser(member); + User user = member.getUser(); validateUpdateAuthorization(user, storeId); if (userId == null || userId.isBlank()) { @@ -364,7 +364,7 @@ public EntryStatusResponseDto processEntryStatus(Long storeId, String userId, Me public EntryStatusResponseDto processEntryStatusByReservationNumber(Long storeId, String reservationNumber, MemberDetails member, ReservationStatus newStatus) { - User user = getUser(member); + User user = member.getUser(); validateUpdateAuthorization(user, storeId); if (reservationNumber == null || reservationNumber.isBlank()) { @@ -542,11 +542,11 @@ private void validateUpdateAuthorization(User user, Long storeId) { } } - private User getUser(MemberDetails memberDetails) { - if (memberDetails == null) { - throw new ReservationViewUnauthorizedException(); - } - return userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); - } + // private User getUser(MemberDetails memberDetails) { + // if (memberDetails == null) { + // throw new ReservationViewUnauthorizedException(); + // } + // return userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); + // } } diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/store/service/StoreServiceImpl.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/store/service/StoreServiceImpl.java index da356da..55354ed 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/store/service/StoreServiceImpl.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/store/service/StoreServiceImpl.java @@ -59,7 +59,7 @@ public StoreCreateResponse createStore(StoreCreateRequest request) { @Transactional(readOnly = true) public StoreDetailReadResponse getStoreByStoreId(Long storeId, MemberDetails memberDetails) { if (storeId == null) throw new StoreParamEmptyException(); - User user = getUser(memberDetails); + User user = memberDetails.getUser(); validateViewAuthorization(user, storeId); Store store = storeRepository.findByStoreIdAndDeletedFalse(storeId) @@ -82,7 +82,7 @@ public StoreDetailReadResponse getStoreByStoreId(Long storeId, MemberDetails mem public StoreReadDto updateStore(Long storeId, StoreUpdateRequest request, MemberDetails memberDetails) { if (storeId == null || request == null) throw new StoreParamEmptyException(); - User user = getUser(memberDetails); + User user = memberDetails.getUser(); validateUpdateAuthorization(user, storeId); Store store = storeRepository.findByStoreIdAndDeletedFalse(storeId) @@ -115,7 +115,7 @@ public String deleteStore(Long storeId, MemberDetails memberDetails) { throw new StoreParamEmptyException(); } - User user = getUser(memberDetails); + User user = memberDetails.getUser(); validateUpdateAuthorization(user, storeId); Store store = storeRepository.findByStoreIdAndDeletedFalse(storeId) @@ -150,10 +150,10 @@ private void validateUpdateAuthorization(User user, Long storeId) { } } - private User getUser(MemberDetails memberDetails) { - if (memberDetails == null) { - throw new StoreViewUnauthorizedException(); - } - return userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); - } + // private User getUser(MemberDetails memberDetails) { + // if (memberDetails == null) { + // throw new StoreViewUnauthorizedException(); + // } + // return userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); + // } } diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/controller/StorePaymentController.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/controller/StorePaymentController.java index 203aea7..d832525 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/controller/StorePaymentController.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/controller/StorePaymentController.java @@ -5,7 +5,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.core.annotation.AuthenticationPrincipal; -import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PatchMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -13,11 +12,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import com.nowait.applicationadmin.storePayment.service.StorePaymentService; import com.nowait.applicationadmin.storepayment.dto.StorePaymentCreateRequest; import com.nowait.applicationadmin.storepayment.dto.StorePaymentCreateResponse; import com.nowait.applicationadmin.storepayment.dto.StorePaymentReadDto; import com.nowait.applicationadmin.storepayment.dto.StorePaymentUpdateRequest; -import com.nowait.applicationadmin.storepayment.service.StorePaymentService; import com.nowait.common.api.ApiUtils; import com.nowait.domaincorerdb.user.entity.MemberDetails; diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentService.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentService.java index 7dad2fe..3429ba7 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentService.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentService.java @@ -1,4 +1,4 @@ -package com.nowait.applicationadmin.storepayment.service; +package com.nowait.applicationadmin.storePayment.service; import java.util.Optional; diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java index 95aab0e..91e8037 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java @@ -5,6 +5,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import com.nowait.applicationadmin.storePayment.service.StorePaymentService; import com.nowait.applicationadmin.storepayment.dto.StorePaymentCreateRequest; import com.nowait.applicationadmin.storepayment.dto.StorePaymentCreateResponse; import com.nowait.applicationadmin.storepayment.dto.StorePaymentReadDto; @@ -21,7 +22,6 @@ import com.nowait.domaincorerdb.storepayment.repository.StorePaymentRepository; import com.nowait.domaincorerdb.user.entity.MemberDetails; import com.nowait.domaincorerdb.user.entity.User; -import com.nowait.domaincorerdb.user.exception.UserNotFoundException; import com.nowait.domaincorerdb.user.repository.UserRepository; import lombok.RequiredArgsConstructor; @@ -38,7 +38,7 @@ public class StorePaymentServiceImpl implements StorePaymentService { public StorePaymentCreateResponse createStorePayment(StorePaymentCreateRequest request, MemberDetails memberDetails) { if (request == null) throw new StorePaymentParamEmptyException(); - User user = getUser(memberDetails); + User user = memberDetails.getUser(); Long storeId = user.getStoreId(); if (storePaymentRepository.findByStoreId(storeId).isPresent()) { throw new StorePaymentAlreadyExistsException(); @@ -56,7 +56,7 @@ public StorePaymentCreateResponse createStorePayment(StorePaymentCreateRequest r public Optional getStorePaymentByStoreId(MemberDetails memberDetails) { if (memberDetails == null) throw new StorePaymentParamEmptyException(); - User user = getUser(memberDetails); + User user = memberDetails.getUser(); Long storeId = user.getStoreId(); validateViewAuthorization(user, storeId); @@ -69,7 +69,7 @@ public Optional getStorePaymentByStoreId(MemberDetails memb public StorePaymentReadDto updateStorePayment(StorePaymentUpdateRequest request, MemberDetails memberDetails) { if (request == null) throw new StorePaymentParamEmptyException(); - User user = getUser(memberDetails); + User user = memberDetails.getUser(); Long storeId = user.getStoreId(); validateUpdateAuthorization(user, storeId); StorePayment storePayment = storePaymentRepository.findByStoreId(storeId) @@ -86,9 +86,9 @@ public StorePaymentReadDto updateStorePayment(StorePaymentUpdateRequest request, return StorePaymentReadDto.fromEntity(storePayment); } - private User getUser(MemberDetails memberDetails) { - return userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); - } + // private User getUser(MemberDetails memberDetails) { + // return userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); + // } private void validateViewAuthorization(User user, Long storeId) { if (!(Role.SUPER_ADMIN.equals(user.getRole()) || user.getStoreId().equals(storeId))) { diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/user/dto/ManagerSignupRequestDto.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/user/dto/ManagerSignupRequestDto.java index 0dd4fbc..7cadbf2 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/user/dto/ManagerSignupRequestDto.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/user/dto/ManagerSignupRequestDto.java @@ -36,15 +36,23 @@ public class ManagerSignupRequestDto { @Schema(description = "로그인타입", example = "LOCAL") private String socialType; + @Schema(description = "마케팅 수신 동의", example = "true") + private boolean isMarketingAgree; + + @Schema(description = "폰 번호 입력 여부", example = "true") + private boolean phoneEntered; public User toEntity() { return User.builder() + .profileImage("no") .email(email) .phoneNumber("") .password(password) .nickname(nickname) .socialType(SocialType.LOCAL) .role(Role.MANAGER) + .isMarketingAgree(isMarketingAgree) + .phoneEntered(false) .createdAt(LocalDateTime.now()) .updatedAt(LocalDateTime.now()) .build(); diff --git a/nowait-app-user-api/build.gradle b/nowait-app-user-api/build.gradle index ab3af0b..a8cafc7 100644 --- a/nowait-app-user-api/build.gradle +++ b/nowait-app-user-api/build.gradle @@ -12,7 +12,6 @@ bootJar { group = 'com.nowait' version = '0.0.1-SNAPSHOT' - repositories { mavenCentral() maven { url 'https://jitpack.io' } @@ -29,11 +28,11 @@ dependencyManagement { } dependencies { - implementation project(':nowait-common') - implementation project(':nowait-infra') // 사용자 관련 도메인 - implementation project(':nowait-domain:domain-user-rdb') - implementation project(':nowait-domain:domain-core-rdb') - implementation project(':nowait-domain:domain-redis') + implementation project(":nowait-common") + implementation project(":nowait-domain:domain-core-rdb") + implementation project(":nowait-domain:domain-user-rdb") + implementation project(":nowait-domain:domain-redis") + implementation project(":nowait-infra") // Spring Boot Starter implementation 'org.springframework.boot:spring-boot-starter-web' @@ -42,26 +41,22 @@ dependencies { // SPRING SECURITY implementation 'org.springframework.boot:spring-boot-starter-security' testImplementation 'org.springframework.boot:spring-boot-starter-test' + implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' // jwt implementation 'io.jsonwebtoken:jjwt-api:0.12.3' implementation 'io.jsonwebtoken:jjwt-impl:0.12.3' implementation 'io.jsonwebtoken:jjwt-jackson:0.12.3' - // OAUTH2 - implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' - implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server' - implementation 'jakarta.servlet:jakarta.servlet-api:6.0.0' - - // DB - implementation 'org.springframework.boot:spring-boot-starter-data-jpa' - runtimeOnly 'com.mysql:mysql-connector-j' + // redis + implementation 'org.springframework.boot:spring-boot-starter-data-redis' // SWAGGER implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0' - // Redis - implementation 'org.springframework.boot:spring-boot-starter-data-redis' + // DB + implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + runtimeOnly 'com.mysql:mysql-connector-j' // 디스코드 웹훅 implementation 'com.github.napstr:logback-discord-appender:1.0.0' @@ -75,21 +70,19 @@ dependencies { annotationProcessor 'org.projectlombok:lombok' // actuator - implementation 'org.springframework.boot:spring-boot-starter-actuator' + implementation 'org.springframework.boot:spring-boot-starter-actuator' - // prometheus + // prometheus implementation 'io.micrometer:micrometer-registry-prometheus' // test testImplementation 'org.springframework.boot:spring-boot-starter-test' - testImplementation 'org.junit.jupiter:junit-jupiter-api' - testImplementation 'org.junit.jupiter:junit-jupiter-engine' - testImplementation 'org.mockito:mockito-core' - testImplementation 'org.mockito:mockito-junit-jupiter' - testImplementation 'org.testcontainers:junit-jupiter' - testImplementation 'com.redis:testcontainers-redis:2.2.4' + testImplementation platform("org.testcontainers:testcontainers-bom:1.20.1") + testImplementation "org.testcontainers:junit-jupiter" + testImplementation "org.testcontainers:testcontainers" + } test { useJUnitPlatform() -} +} \ No newline at end of file diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/order/repository/OrderRepository.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/order/repository/OrderRepository.java index d5bb6bf..05da4d7 100644 --- a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/order/repository/OrderRepository.java +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/order/repository/OrderRepository.java @@ -13,6 +13,7 @@ public interface OrderRepository extends JpaRepository { boolean existsBySignatureAndCreatedAtAfter(String signature, LocalDateTime createdAt); + @EntityGraph(attributePaths = {"store", "orderItems", "orderItems.menu"}) List findByStore_PublicCodeAndTableIdAndSessionId(String publicCode, Long tableId, String sessionId); @EntityGraph(attributePaths = {"orderItems", "orderItems.menu"}) diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/user/entity/MemberDetails.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/user/entity/MemberDetails.java index f9bc7b3..9a50fab 100644 --- a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/user/entity/MemberDetails.java +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/user/entity/MemberDetails.java @@ -16,6 +16,7 @@ public class MemberDetails implements UserDetails { private final String email; private final String password; private final Collection authorities; + private final User user; public static MemberDetails create(User user) { return MemberDetails.builder() @@ -23,9 +24,14 @@ public static MemberDetails create(User user) { .email(user.getEmail()) .password(user.getPassword()) .authorities(List.of(new SimpleGrantedAuthority("ROLE_" + user.getRole().name()))) + .user(user) .build(); } + public User getUser() { + return user; + } + public Long getId() { return id; } @Override