diff --git a/src/main/java/com/readyvery/readyverydemo/config/RedisConfig.java b/src/main/java/com/readyvery/readyverydemo/config/RedisConfig.java index 74b75c1..5176331 100644 --- a/src/main/java/com/readyvery/readyverydemo/config/RedisConfig.java +++ b/src/main/java/com/readyvery/readyverydemo/config/RedisConfig.java @@ -21,9 +21,7 @@ public class RedisConfig { @Bean public RedisConnectionFactory redisConnectionFactory() { - LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(host, port); - log.info("RedisConfig.redisConnectionFactory() called" + lettuceConnectionFactory); - return lettuceConnectionFactory; + return new LettuceConnectionFactory(host, port); } } diff --git a/src/main/java/com/readyvery/readyverydemo/domain/Order.java b/src/main/java/com/readyvery/readyverydemo/domain/Order.java index 53a4178..ec953b4 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/Order.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/Order.java @@ -36,7 +36,7 @@ public class Order extends BaseTimeEntity { @Column(name = "order_idx") private Long id; - // 총 결제 가격 + // 토스 결제 가격 @Column private Long amount; @@ -52,7 +52,7 @@ public class Order extends BaseTimeEntity { @Column private String orderName; - // 토스 결제 가격 + // 총 결제 가격 @Column private Long totalAmount; diff --git a/src/main/java/com/readyvery/readyverydemo/domain/Progress.java b/src/main/java/com/readyvery/readyverydemo/domain/Progress.java index 432bcfb..956df73 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/Progress.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/Progress.java @@ -12,7 +12,8 @@ public enum Progress { MAKE("MAKE", "음식 제조 중"), COMPLETE("COMPLETE", "제조 완료"), PICKUP("PICKUP", "픽업 완료"), - FAIL("FAIL", "주문 실패"); + FAIL("FAIL", "주문 실패"), + INTEGRATION("INTEGRATION", "통합 주문"); private final String key; private final String value; diff --git a/src/main/java/com/readyvery/readyverydemo/security/customlogin/handler/LoginFailureHandler.java b/src/main/java/com/readyvery/readyverydemo/security/customlogin/handler/LoginFailureHandler.java index 9385efb..858d339 100644 --- a/src/main/java/com/readyvery/readyverydemo/security/customlogin/handler/LoginFailureHandler.java +++ b/src/main/java/com/readyvery/readyverydemo/security/customlogin/handler/LoginFailureHandler.java @@ -38,7 +38,7 @@ public void onAuthenticationFailure(HttpServletRequest request, HttpServletRespo log.error("응답 작성 중 에러 발생", e); } - log.info("로그인에 실패했습니다. 메시지: {}", exception.getMessage()); + } } diff --git a/src/main/java/com/readyvery/readyverydemo/security/jwt/filter/JwtAuthenticationProcessingFilter.java b/src/main/java/com/readyvery/readyverydemo/security/jwt/filter/JwtAuthenticationProcessingFilter.java index dec4427..2f6b10c 100644 --- a/src/main/java/com/readyvery/readyverydemo/security/jwt/filter/JwtAuthenticationProcessingFilter.java +++ b/src/main/java/com/readyvery/readyverydemo/security/jwt/filter/JwtAuthenticationProcessingFilter.java @@ -57,7 +57,7 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse // RefreshToken까지 보낸 것이므로 리프레시 토큰이 DB의 리프레시 토큰과 일치하는지 판단 후, // 일치한다면 AccessToken을 재발급해준다. if (refreshToken != null) { - log.info("refreshToken이 존재합니다."); + checkRefreshTokenAndReIssueAccessToken(response, refreshToken); // 이줄이 문제 return; // RefreshToken을 보낸 경우에는 AccessToken을 재발급 하고 인증 처리는 하지 않게 하기위해 바로 return으로 필터 진행 막기 } diff --git a/src/main/java/com/readyvery/readyverydemo/security/jwt/service/JwtServiceImpl.java b/src/main/java/com/readyvery/readyverydemo/security/jwt/service/JwtServiceImpl.java index c17488b..3e83d38 100644 --- a/src/main/java/com/readyvery/readyverydemo/security/jwt/service/JwtServiceImpl.java +++ b/src/main/java/com/readyvery/readyverydemo/security/jwt/service/JwtServiceImpl.java @@ -64,7 +64,7 @@ public void sendAccessAndRefreshToken(HttpServletResponse response, String acces jwtTokenizer.addAccessRefreshTokenResponseBody(response, accessToken, refreshToken, role); jwtTokenizer.addAccessTokenCookie(response, accessToken); jwtTokenizer.addRefreshTokenCookie(response, refreshToken); - log.info("Access Token, Refresh Token 헤더 설정 완료"); + } /** @@ -106,7 +106,7 @@ public Optional extractEmail(String accessToken) { // 토큰 유효성 검사하는 데에 사용할 알고리즘이 있는 JWT verifier builder 반환 return jwtTokenizer.verifyAccessToken(accessToken); } catch (Exception e) { - log.error("액세스 토큰이 유효하지 않습니다."); + return Optional.empty(); } } diff --git a/src/main/java/com/readyvery/readyverydemo/security/oauth2/handler/OAuth2LoginFailureHandler.java b/src/main/java/com/readyvery/readyverydemo/security/oauth2/handler/OAuth2LoginFailureHandler.java index dd747ff..e1e5964 100644 --- a/src/main/java/com/readyvery/readyverydemo/security/oauth2/handler/OAuth2LoginFailureHandler.java +++ b/src/main/java/com/readyvery/readyverydemo/security/oauth2/handler/OAuth2LoginFailureHandler.java @@ -20,7 +20,7 @@ public void onAuthenticationFailure(HttpServletRequest request, HttpServletRespo ServletException { response.setStatus(HttpServletResponse.SC_BAD_REQUEST); response.getWriter().write("소셜 로그인 실패! 서버 로그를 확인해주세요."); - log.info("소셜 로그인에 실패했습니다. 에러 메시지 : {}", exception.getMessage()); + } } diff --git a/src/main/java/com/readyvery/readyverydemo/src/order/OrderController.java b/src/main/java/com/readyvery/readyverydemo/src/order/OrderController.java index d4ae58d..f7bfd02 100644 --- a/src/main/java/com/readyvery/readyverydemo/src/order/OrderController.java +++ b/src/main/java/com/readyvery/readyverydemo/src/order/OrderController.java @@ -32,7 +32,7 @@ public class OrderController { }) @GetMapping("/order") public OrderRegisterRes getOrder(@AuthenticationPrincipal CustomUserDetails userDetails, - @RequestParam(required = false) Progress status) { + @RequestParam Progress status) { return orderServiceImpl.getOrders(userDetails.getId(), status); } diff --git a/src/main/java/com/readyvery/readyverydemo/src/order/OrderServiceImpl.java b/src/main/java/com/readyvery/readyverydemo/src/order/OrderServiceImpl.java index 7d07bb7..f5195bc 100644 --- a/src/main/java/com/readyvery/readyverydemo/src/order/OrderServiceImpl.java +++ b/src/main/java/com/readyvery/readyverydemo/src/order/OrderServiceImpl.java @@ -63,15 +63,19 @@ public OrderRegisterRes getOrders(Long id, Progress progress) { } LocalDateTime startOfDay = LocalDate.now().atStartOfDay(); LocalDateTime endOfDay = startOfDay.plusDays(1).minusNanos(1); - List orders = orderRepository.findAllByProgressAndStoreIdAndCreatedAtBetween( - progress, ceoInfo.getStore().getId(), startOfDay, endOfDay); - if (orders.isEmpty()) { - return OrderRegisterRes.builder() - .orders(Collections.emptyList()) - .build(); + if (progress == Progress.INTEGRATION) { + List waitOrders = orderRepository.findAllByProgressAndStoreIdAndCreatedAtBetween( + Progress.ORDER, ceoInfo.getStore().getId(), startOfDay, endOfDay); + List makeOrders = orderRepository.findAllByProgressAndStoreIdAndCreatedAtBetween( + Progress.MAKE, ceoInfo.getStore().getId(), startOfDay, endOfDay); + + return orderMapper.orderToOrderRegisterRes(ceoInfo.getStore().getId(), waitOrders, makeOrders); } - return orderMapper.orderToOrderRegisterRes(orders); + + List orders = orderRepository.findAllByProgressAndStoreIdAndCreatedAtBetween( + progress, ceoInfo.getStore().getId(), startOfDay, endOfDay); + return orderMapper.orderToOrderRegisterRes(ceoInfo.getStore().getId(), orders, Collections.emptyList()); } @Override @@ -202,20 +206,69 @@ public void cancelTossPayment(Order order, OrderStatusUpdateReq request) { } private void verifyPostProgress(Order order, OrderStatusUpdateReq request) { - if (order.getProgress() == Progress.ORDER && request.getStatus() == Progress.MAKE) { // 주문 -> 제조 - if (request.getTime() == null) { - throw new BusinessLogicException(ExceptionCode.NOT_FOUND_TIME); - } - order.orderTime(request.getTime()); - } else if (order.getProgress() == Progress.ORDER && request.getStatus() == Progress.CANCEL) { - if (request.getRejectReason() == null) { - throw new BusinessLogicException(ExceptionCode.NOT_FOUND_REJECT_REASON); - } - cancelTossPayment(order, request); - } else if (order.getProgress() == Progress.MAKE && request.getStatus() == Progress.COMPLETE) { // 제조 -> 완료 - } else if (order.getProgress() == Progress.COMPLETE && request.getStatus() == Progress.PICKUP) { // 완료 -> 픽업 - } else { - throw new BusinessLogicException(ExceptionCode.NOT_CHANGE_ORDER); + + switch (order.getProgress()) { + case ORDER: + if (request.getStatus() == Progress.MAKE) { + checkEstimatedTime(request.getTime()); + order.orderTime(request.getTime()); + break; + } else if (request.getStatus() == Progress.CANCEL) { + checkRejectReason(request.getRejectReason()); + cancelTossPayment(order, request); + break; + } + case MAKE: + if (request.getStatus() == Progress.COMPLETE) { + break; + } + + case COMPLETE: + if (request.getStatus() == Progress.PICKUP) { + break; + } + default: + throw new BusinessLogicException(ExceptionCode.NOT_CHANGE_ORDER); + } + + // if (order.getProgress() == Progress.ORDER && request.getStatus() == Progress.MAKE) { // 주문 -> 제조 + // if (request.getTime() == null) { + // throw new BusinessLogicException(ExceptionCode.NOT_FOUND_TIME); + // } + // order.orderTime(request.getTime()); + // } else if (order.getProgress() == Progress.ORDER && request.getStatus() == Progress.CANCEL) { + // if (request.getRejectReason() == null) { + // throw new BusinessLogicException(ExceptionCode.NOT_FOUND_REJECT_REASON); + // } + // cancelTossPayment(order, request); + // } else if (order.getProgress() == Progress.MAKE && request.getStatus() == Progress.COMPLETE) { // 제조 -> 완료 + // } else if (order.getProgress() == Progress.COMPLETE && request.getStatus() == Progress.PICKUP) { // 완료 -> 픽업 + // } else { + // throw new BusinessLogicException(ExceptionCode.NOT_CHANGE_ORDER); + // } + } + + /** + * 주문 취소시 estimatedTime이 정당한 값인지 확인 + * + * @param estimatedTime + * @throws BusinessLogicException + */ + private void checkEstimatedTime(Long estimatedTime) throws BusinessLogicException { + if (estimatedTime == null) { + throw new BusinessLogicException(ExceptionCode.NOT_FOUND_TIME); + } + } + + /** + * 주문 취소시 rejectReason이 정당한 값인지 확인 + * + * @param rejectReason + * @throws BusinessLogicException + */ + private void checkRejectReason(String rejectReason) throws BusinessLogicException { + if (rejectReason == null) { + throw new BusinessLogicException(ExceptionCode.NOT_FOUND_REJECT_REASON); } } diff --git a/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderMapper.java b/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderMapper.java index 02b6469..ae43449 100644 --- a/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderMapper.java +++ b/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderMapper.java @@ -1,5 +1,6 @@ package com.readyvery.readyverydemo.src.order.dto; +import java.util.Collections; import java.util.List; import org.springframework.stereotype.Component; @@ -11,13 +12,19 @@ @Component public class OrderMapper { - public OrderRegisterRes orderToOrderRegisterRes(List order) { - if (order.isEmpty()) { - return OrderRegisterRes.builder() - .build(); - } + public OrderRegisterRes orderToOrderRegisterRes(Long storeIdx, List order, + List integrationMakeOrder) { + + List integratedMakeOrderDtos = integrationMakeOrder.isEmpty() ? Collections.emptyList() : + integrationMakeOrder.stream().map(this::toOrderDto).toList(); + + List orderDtos = order.isEmpty() ? Collections.emptyList() : + order.stream().map(this::toOrderDto).toList(); + return OrderRegisterRes.builder() - .orders(order.stream().map(this::toOrderDto).toList()) + .storeIdx(storeIdx) + .integrationMakeOrders(integratedMakeOrderDtos) + .orders(orderDtos) .build(); } diff --git a/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderRegisterRes.java b/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderRegisterRes.java index d6a3708..dd1c569 100644 --- a/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderRegisterRes.java +++ b/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderRegisterRes.java @@ -8,6 +8,9 @@ @Getter @Builder public class OrderRegisterRes { - + private Long storeIdx; private List orders; + + private List integrationMakeOrders; + } diff --git a/src/main/java/com/readyvery/readyverydemo/src/smsauthentication/MessageSendingService.java b/src/main/java/com/readyvery/readyverydemo/src/smsauthentication/MessageSendingService.java index 1d55d9d..4736c88 100644 --- a/src/main/java/com/readyvery/readyverydemo/src/smsauthentication/MessageSendingService.java +++ b/src/main/java/com/readyvery/readyverydemo/src/smsauthentication/MessageSendingService.java @@ -25,10 +25,10 @@ public boolean sendMessage(String to, String from, String content) { messageService.send(message); return true; } catch (NurigoMessageNotReceivedException exception) { - log.error(exception.getFailedMessageList().toString()); + return false; } catch (Exception exception) { - log.error(exception.getMessage()); + return false; } } diff --git a/src/main/java/com/readyvery/readyverydemo/src/smsauthentication/SmsServiceImpl.java b/src/main/java/com/readyvery/readyverydemo/src/smsauthentication/SmsServiceImpl.java index 926ba13..9f57972 100644 --- a/src/main/java/com/readyvery/readyverydemo/src/smsauthentication/SmsServiceImpl.java +++ b/src/main/java/com/readyvery/readyverydemo/src/smsauthentication/SmsServiceImpl.java @@ -40,7 +40,7 @@ public SmsSendRes sendSmsFromSolApi(String phoneNumber, String code) { .smsMessage("인증번호가 발송되었습니다.") .build(); } else { - log.error("Message sending failed."); + return SmsSendRes.builder() .isSuccess(false) .smsMessage("메시지 발송에 실패하였습니다.")