From d72a153728856881852af6e8827e0aa9d8a4bd66 Mon Sep 17 00:00:00 2001 From: qwerty1434 Date: Mon, 15 Jan 2024 11:13:22 +0900 Subject: [PATCH 1/9] =?UTF-8?q?:adhesive=5Fbandage:=20=EB=A9=94=EC=84=9C?= =?UTF-8?q?=EB=93=9C=EB=AA=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/subscription/handler/SubscriptionReader.java | 2 +- .../domain/subscription/repository/SubscriptionRepository.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/kr/bb/orderquery/domain/subscription/handler/SubscriptionReader.java b/src/main/java/kr/bb/orderquery/domain/subscription/handler/SubscriptionReader.java index bcef87e..64a6525 100644 --- a/src/main/java/kr/bb/orderquery/domain/subscription/handler/SubscriptionReader.java +++ b/src/main/java/kr/bb/orderquery/domain/subscription/handler/SubscriptionReader.java @@ -26,6 +26,6 @@ public Subscription read(String subscriptionId) { } public List readByStoreId(Long storeId) { - return subscriptionRepository.findByStoreId(storeId); + return subscriptionRepository.findAllByStoreId(storeId); } } diff --git a/src/main/java/kr/bb/orderquery/domain/subscription/repository/SubscriptionRepository.java b/src/main/java/kr/bb/orderquery/domain/subscription/repository/SubscriptionRepository.java index 67f36be..1f32d5c 100644 --- a/src/main/java/kr/bb/orderquery/domain/subscription/repository/SubscriptionRepository.java +++ b/src/main/java/kr/bb/orderquery/domain/subscription/repository/SubscriptionRepository.java @@ -8,7 +8,7 @@ @EnableScan public interface SubscriptionRepository extends CrudRepository { - List findByStoreId(Long storeId); + List findAllByStoreId(Long storeId); List findAllByUserIdOrderByNextPaymentDateDesc(Long userId); List findAllByStoreIdAndNextDeliveryDate(Long storeId, String nextDeliveryDate); } From adcb91827fbfa2c05ac62950fbc983a83cf0d474 Mon Sep 17 00:00:00 2001 From: qwerty1434 Date: Mon, 15 Jan 2024 16:52:21 +0900 Subject: [PATCH 2/9] =?UTF-8?q?:pencil2:=20=ED=94=BD=EC=97=85=EC=98=88?= =?UTF-8?q?=EC=95=BD=20=EC=83=81=ED=83=9C=EB=B3=80=EA=B2=BD=20=EC=8B=9C=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=ED=95=98=EB=8A=94=20Dto=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- .../bb/orderquery/domain/pickup/entity/Pickup.java | 13 +++++++++++++ .../domain/pickup/facade/PickupFacade.java | 6 ++++-- .../domain/pickup/handler/PickupCreator.java | 1 + .../domain/pickup/handler/PickupManager.java | 4 ++-- .../domain/pickup/service/PickupService.java | 9 +++++---- 6 files changed, 26 insertions(+), 9 deletions(-) diff --git a/build.gradle b/build.gradle index 02675f5..5c2721d 100644 --- a/build.gradle +++ b/build.gradle @@ -56,7 +56,7 @@ dependencies { testImplementation "org.junit.jupiter:junit-jupiter:5.8.1" testImplementation "org.testcontainers:junit-jupiter:1.16.3" - implementation group: 'io.github.lotteon-maven', name: 'blooming-blooms-utils', version: '202401080033' + implementation group: 'io.github.lotteon-maven', name: 'blooming-blooms-utils', version: '202401150717' } dependencyManagement { diff --git a/src/main/java/kr/bb/orderquery/domain/pickup/entity/Pickup.java b/src/main/java/kr/bb/orderquery/domain/pickup/entity/Pickup.java index ee8a5ee..62a1713 100644 --- a/src/main/java/kr/bb/orderquery/domain/pickup/entity/Pickup.java +++ b/src/main/java/kr/bb/orderquery/domain/pickup/entity/Pickup.java @@ -93,8 +93,21 @@ public class Pickup implements Comparable{ @DynamoDBAttribute(attributeName = "product_id") private String productId; + @DynamoDBAttribute(attributeName = "is_canceled") + @DynamoDBTyped(DynamoDBMapperFieldModel.DynamoDBAttributeType.BOOL) + private Boolean isCanceled; + @Override public int compareTo(@NotNull Pickup o) { return this.getPickupDateTime().compareTo(o.getPickupDateTime()); } + + public void updateStatus(String reservationStatus, String cardStatus, String reviewStatus) { + this.reservationStatus = reservationStatus; + if("CANCELED".equals(reservationStatus)) { + isCanceled = true; + } + this.cardStatus = cardStatus; + this.reviewStatus = reviewStatus; + } } diff --git a/src/main/java/kr/bb/orderquery/domain/pickup/facade/PickupFacade.java b/src/main/java/kr/bb/orderquery/domain/pickup/facade/PickupFacade.java index e9cb032..37b5881 100644 --- a/src/main/java/kr/bb/orderquery/domain/pickup/facade/PickupFacade.java +++ b/src/main/java/kr/bb/orderquery/domain/pickup/facade/PickupFacade.java @@ -1,6 +1,7 @@ package kr.bb.orderquery.domain.pickup.facade; import bloomingblooms.domain.StatusChangeDto; +import bloomingblooms.domain.order.PickupStatusChangeDto; import bloomingblooms.domain.pickup.PickupCreateDto; import bloomingblooms.domain.store.StoreNameAndAddressDto; import com.fasterxml.jackson.core.JsonProcessingException; @@ -43,8 +44,9 @@ public void create(PickupCreateDto pickupCreateDto) { } @KafkaListener(topics = "pickup-status-update", groupId = "pick-update") - public void updateReservationStatus(StatusChangeDto statusChangeDto) { - pickupService.updateReservationStatus(statusChangeDto.getId(), statusChangeDto.getStatus()); + public void updateReservationStatus(PickupStatusChangeDto pickupStatusChangeDto) { + pickupService.updateReservationStatus(pickupStatusChangeDto.getOrderId(), pickupStatusChangeDto.getPickupStatus(), + pickupStatusChangeDto.getCardStatus(), pickupStatusChangeDto.getReviewStatus()); } @SqsListener( diff --git a/src/main/java/kr/bb/orderquery/domain/pickup/handler/PickupCreator.java b/src/main/java/kr/bb/orderquery/domain/pickup/handler/PickupCreator.java index ce33bcc..91609ad 100644 --- a/src/main/java/kr/bb/orderquery/domain/pickup/handler/PickupCreator.java +++ b/src/main/java/kr/bb/orderquery/domain/pickup/handler/PickupCreator.java @@ -44,6 +44,7 @@ public Pickup create(StoreNameAndAddressDto storeAddress, PickupCreateDto pickup .reviewStatus(pickupCreateDto.getReviewStatus()) .cardStatus(pickupCreateDto.getCardStatus()) .productId(pickupCreateDto.getProductId()) + .isCanceled(false) .build(); return pickupRepository.save(pickup); diff --git a/src/main/java/kr/bb/orderquery/domain/pickup/handler/PickupManager.java b/src/main/java/kr/bb/orderquery/domain/pickup/handler/PickupManager.java index bcde254..b14ed7f 100644 --- a/src/main/java/kr/bb/orderquery/domain/pickup/handler/PickupManager.java +++ b/src/main/java/kr/bb/orderquery/domain/pickup/handler/PickupManager.java @@ -20,8 +20,8 @@ public void changeReviewStatus(Pickup pickup, String reviewStatus) { pickupRepository.save(pickup); } - public void changeReservationStatus(Pickup pickup, String reservationStatus) { - pickup.setReviewStatus(reservationStatus); + public void changeReservationStatus(Pickup pickup, String reservationStatus, String cardStatus, String reviewStatus) { + pickup.updateStatus(reservationStatus, cardStatus, reviewStatus); pickupRepository.save(pickup); } diff --git a/src/main/java/kr/bb/orderquery/domain/pickup/service/PickupService.java b/src/main/java/kr/bb/orderquery/domain/pickup/service/PickupService.java index 2d6b829..5b0fdda 100644 --- a/src/main/java/kr/bb/orderquery/domain/pickup/service/PickupService.java +++ b/src/main/java/kr/bb/orderquery/domain/pickup/service/PickupService.java @@ -1,6 +1,8 @@ package kr.bb.orderquery.domain.pickup.service; +import bloomingblooms.domain.card.CardStatus; import bloomingblooms.domain.pickup.PickupCreateDto; +import bloomingblooms.domain.review.ReviewStatus; import bloomingblooms.domain.store.StoreNameAndAddressDto; import kr.bb.orderquery.domain.pickup.dto.PickupDetailDto; import kr.bb.orderquery.domain.pickup.dto.PickupsForDateDto; @@ -34,8 +36,6 @@ public Pickup createPickup(StoreNameAndAddressDto storeAddress, PickupCreateDto return pickupCreator.create(storeAddress, pickupCreateDto); } - - public Page getPickupsForUser(Long userId, Pageable pageable, LocalDateTime now) { List contents = pickupReader.readByUserId(userId); List sortedPickups = sortAroundToday(contents, now); @@ -74,9 +74,10 @@ public void updateReviewStatus(String subscriptionId, String reviewStatus) { pickupManager.changeReviewStatus(pickup, reviewStatus); } - public void updateReservationStatus(String subscriptionId, String reservationStatus) { + public void updateReservationStatus(String subscriptionId, String reservationStatus, + CardStatus cardStatus, ReviewStatus reviewStatus) { Pickup pickup = pickupReader.read(subscriptionId); - pickupManager.changeReservationStatus(pickup, reservationStatus); + pickupManager.changeReservationStatus(pickup, reservationStatus, cardStatus.toString(), reviewStatus.toString()); } /* From 093b748ff9a003d761336795b62fe054bdac5ef1 Mon Sep 17 00:00:00 2001 From: qwerty1434 Date: Mon, 15 Jan 2024 17:01:53 +0900 Subject: [PATCH 3/9] =?UTF-8?q?:pencil2:=20=EC=B7=A8=EC=86=8C=EB=90=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EC=9D=80=20=ED=94=BD=EC=97=85=EC=98=88?= =?UTF-8?q?=EC=95=BD=EB=A7=8C=20=EC=A1=B0=ED=9A=8C=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/pickup/handler/PickupReader.java | 3 --- .../domain/pickup/service/PickupService.java | 14 +++++++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/kr/bb/orderquery/domain/pickup/handler/PickupReader.java b/src/main/java/kr/bb/orderquery/domain/pickup/handler/PickupReader.java index 144729c..c789ba1 100644 --- a/src/main/java/kr/bb/orderquery/domain/pickup/handler/PickupReader.java +++ b/src/main/java/kr/bb/orderquery/domain/pickup/handler/PickupReader.java @@ -19,9 +19,6 @@ public class PickupReader { public List readByUserId(Long userId) { return pickupRepository.findAllByUserId(userId); } - public Long userPickupCount() { - return pickupRepository.count(); - } public List readByStoreIdAndPickupDate(Long storeId, String pickupDate) { return pickupRepository.findAllByStoreIdAndPickupDate(storeId, pickupDate); diff --git a/src/main/java/kr/bb/orderquery/domain/pickup/service/PickupService.java b/src/main/java/kr/bb/orderquery/domain/pickup/service/PickupService.java index 5b0fdda..1289ee8 100644 --- a/src/main/java/kr/bb/orderquery/domain/pickup/service/PickupService.java +++ b/src/main/java/kr/bb/orderquery/domain/pickup/service/PickupService.java @@ -20,6 +20,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; +import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -38,9 +39,12 @@ public Pickup createPickup(StoreNameAndAddressDto storeAddress, PickupCreateDto public Page getPickupsForUser(Long userId, Pageable pageable, LocalDateTime now) { List contents = pickupReader.readByUserId(userId); - List sortedPickups = sortAroundToday(contents, now); + List validPickups = contents.stream() + .filter(Predicate.not(Pickup::getIsCanceled)) + .collect(Collectors.toList()); + List sortedPickups = sortAroundToday(validPickups, now); List slicedPickups = sliceList(sortedPickups, pageable); - Long count = pickupReader.userPickupCount(); + long count = validPickups.size(); List pickupsInMyPageDtos = slicedPickups.stream() .map(PickupsInMypageDto::fromEntity) @@ -51,6 +55,7 @@ public Page getPickupsForUser(Long userId, Pageable pageable public List getPickupsForDate(Long storeId, String pickupDate) { return pickupReader.readByStoreIdAndPickupDate(storeId, pickupDate) .stream() + .filter(Predicate.not(Pickup::getIsCanceled)) .sorted(Comparator.comparing(Pickup::getPickupDateTime)) .map(PickupsForDateDto::fromEntity) .collect(Collectors.toList()); @@ -61,7 +66,10 @@ public PickupDetailDto getPickup(String pickupReservationId) { } public List getPickupByStoreId(Long storeId) { - return pickupReader.readByStoreId(storeId); + return pickupReader.readByStoreId(storeId) + .stream() + .filter(Predicate.not(Pickup::getIsCanceled)) + .collect(Collectors.toList()); } public void updateCardStatus(String subscriptionId, String cardStatus) { From 32c4f1dca1249628b25d9cb6ad5a8c2ec0112377 Mon Sep 17 00:00:00 2001 From: qwerty1434 Date: Mon, 15 Jan 2024 17:05:10 +0900 Subject: [PATCH 4/9] =?UTF-8?q?:pencil2:=20=EB=A6=AC=EB=B7=B0=EC=99=80=20?= =?UTF-8?q?=EC=B9=B4=EB=93=9C=EB=8A=94=20=EA=B0=81=EA=B0=81=20sqs=EC=9D=91?= =?UTF-8?q?=EB=8B=B5=20=EC=8B=9C=20status=EB=A5=BC=20DONE=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../orderquery/domain/pickup/facade/PickupFacade.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/kr/bb/orderquery/domain/pickup/facade/PickupFacade.java b/src/main/java/kr/bb/orderquery/domain/pickup/facade/PickupFacade.java index 37b5881..e9e7cc8 100644 --- a/src/main/java/kr/bb/orderquery/domain/pickup/facade/PickupFacade.java +++ b/src/main/java/kr/bb/orderquery/domain/pickup/facade/PickupFacade.java @@ -1,6 +1,7 @@ package kr.bb.orderquery.domain.pickup.facade; import bloomingblooms.domain.StatusChangeDto; +import bloomingblooms.domain.card.CardStatus; import bloomingblooms.domain.order.PickupStatusChangeDto; import bloomingblooms.domain.pickup.PickupCreateDto; import bloomingblooms.domain.store.StoreNameAndAddressDto; @@ -24,7 +25,6 @@ import org.springframework.messaging.handler.annotation.Payload; import org.springframework.stereotype.Component; -import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; @@ -53,9 +53,9 @@ public void updateReservationStatus(PickupStatusChangeDto pickupStatusChangeDto) value = "${cloud.aws.sqs.pickup-card-status-queue.name}", deletionPolicy = SqsMessageDeletionPolicy.NEVER ) - public void updateCardStatus(@Payload String message, Acknowledgment ack) throws JsonProcessingException { + public void doneCardStatus(@Payload String message, Acknowledgment ack) throws JsonProcessingException { StatusChangeDto statusChangeDto = objectMapper.readValue(message, StatusChangeDto.class); - pickupService.updateCardStatus(statusChangeDto.getId(), statusChangeDto.getStatus()); + pickupService.updateCardStatus(statusChangeDto.getId(), CardStatus.DONE.toString()); ack.acknowledge(); } @@ -63,9 +63,9 @@ public void updateCardStatus(@Payload String message, Acknowledgment ack) throws value = "${cloud.aws.sqs.pickup-review-status-queue.name}", deletionPolicy = SqsMessageDeletionPolicy.NEVER ) - public void updateReviewStatus(@Payload String message, Acknowledgment ack) throws JsonProcessingException { + public void doneReviewStatus(@Payload String message, Acknowledgment ack) throws JsonProcessingException { StatusChangeDto statusChangeDto = objectMapper.readValue(message, StatusChangeDto.class); - pickupService.updateReviewStatus(statusChangeDto.getId(), statusChangeDto.getStatus()); + pickupService.updateReviewStatus(statusChangeDto.getId(), CardStatus.DONE.toString()); ack.acknowledge(); } From c09088972b74230506cad7d5ac8c274912db1bf8 Mon Sep 17 00:00:00 2001 From: qwerty1434 Date: Mon, 15 Jan 2024 17:06:07 +0900 Subject: [PATCH 5/9] =?UTF-8?q?:pencil2:=20=EB=A6=AC=EB=B7=B0=20sqs?= =?UTF-8?q?=EC=9D=91=EB=8B=B5=20=EC=8B=9C=20status=EB=A5=BC=20DONE?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/subscription/facade/SubscriptionFacade.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/kr/bb/orderquery/domain/subscription/facade/SubscriptionFacade.java b/src/main/java/kr/bb/orderquery/domain/subscription/facade/SubscriptionFacade.java index aba490e..fee11ed 100644 --- a/src/main/java/kr/bb/orderquery/domain/subscription/facade/SubscriptionFacade.java +++ b/src/main/java/kr/bb/orderquery/domain/subscription/facade/SubscriptionFacade.java @@ -1,6 +1,7 @@ package kr.bb.orderquery.domain.subscription.facade; import bloomingblooms.domain.StatusChangeDto; +import bloomingblooms.domain.review.ReviewStatus; import bloomingblooms.domain.subscription.SubscriptionCreateDto; import bloomingblooms.domain.subscription.SubscriptionDateDtoList; import com.fasterxml.jackson.core.JsonProcessingException; @@ -49,7 +50,7 @@ public void unSubscribe(String subscriptionId) { ) public void updateReviewStatus(@Payload String message, Acknowledgment ack) throws JsonProcessingException { StatusChangeDto statusChangeDto = objectMapper.readValue(message, StatusChangeDto.class); - subscriptionService.updateReviewStatus(statusChangeDto.getId(), statusChangeDto.getStatus()); + subscriptionService.updateReviewStatus(statusChangeDto.getId(), ReviewStatus.DONE.toString()); ack.acknowledge(); } From 3fd4ce744a00345d8ff3352182ba82bd1fc8e9d8 Mon Sep 17 00:00:00 2001 From: qwerty1434 Date: Mon, 15 Jan 2024 17:23:41 +0900 Subject: [PATCH 6/9] =?UTF-8?q?:pencil2:=20Order=EA=B0=80=20=EB=84=98?= =?UTF-8?q?=EA=B2=A8=EC=A4=80=20=EB=8D=B0=EC=9D=B4=ED=84=B0=EB=A1=9C=20?= =?UTF-8?q?=EA=B5=AC=EB=8F=85=20=EC=83=81=ED=83=9C=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bb/orderquery/domain/pickup/entity/Pickup.java | 2 +- .../domain/subscription/entity/Subscription.java | 7 +++++++ .../subscription/facade/SubscriptionFacade.java | 12 +++++++----- .../subscription/handler/SubscriptionManager.java | 4 ++-- .../subscription/service/SubscriptionService.java | 5 +++-- 5 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/main/java/kr/bb/orderquery/domain/pickup/entity/Pickup.java b/src/main/java/kr/bb/orderquery/domain/pickup/entity/Pickup.java index 62a1713..cd4d42a 100644 --- a/src/main/java/kr/bb/orderquery/domain/pickup/entity/Pickup.java +++ b/src/main/java/kr/bb/orderquery/domain/pickup/entity/Pickup.java @@ -105,7 +105,7 @@ public int compareTo(@NotNull Pickup o) { public void updateStatus(String reservationStatus, String cardStatus, String reviewStatus) { this.reservationStatus = reservationStatus; if("CANCELED".equals(reservationStatus)) { - isCanceled = true; + this.isCanceled = true; } this.cardStatus = cardStatus; this.reviewStatus = reviewStatus; diff --git a/src/main/java/kr/bb/orderquery/domain/subscription/entity/Subscription.java b/src/main/java/kr/bb/orderquery/domain/subscription/entity/Subscription.java index d8a904a..9010986 100644 --- a/src/main/java/kr/bb/orderquery/domain/subscription/entity/Subscription.java +++ b/src/main/java/kr/bb/orderquery/domain/subscription/entity/Subscription.java @@ -106,4 +106,11 @@ public class Subscription { @DynamoDBAttribute(attributeName = "product_id") private String productId; + public void updateStatus(String subscriptionStatus, String reviewStatus) { + if ("CANCELED".equals(subscriptionStatus)) { + this.isUnsubscribed = true; + } + this.reviewStatus = reviewStatus; + } + } diff --git a/src/main/java/kr/bb/orderquery/domain/subscription/facade/SubscriptionFacade.java b/src/main/java/kr/bb/orderquery/domain/subscription/facade/SubscriptionFacade.java index fee11ed..f993bf4 100644 --- a/src/main/java/kr/bb/orderquery/domain/subscription/facade/SubscriptionFacade.java +++ b/src/main/java/kr/bb/orderquery/domain/subscription/facade/SubscriptionFacade.java @@ -1,6 +1,7 @@ package kr.bb.orderquery.domain.subscription.facade; import bloomingblooms.domain.StatusChangeDto; +import bloomingblooms.domain.order.SubscriptionStatusChangeDto; import bloomingblooms.domain.review.ReviewStatus; import bloomingblooms.domain.subscription.SubscriptionCreateDto; import bloomingblooms.domain.subscription.SubscriptionDateDtoList; @@ -32,23 +33,24 @@ public void create(SubscriptionCreateDto subscriptionCreateDto) { subscriptionService.createSubscription(subscriptionCreateDto); } - @KafkaListener(topics = "subscription-date-update", groupId = "sub-update") + @KafkaListener(topics = "subscription-date-update", groupId = "sub-date-update") public void updateSubscriptionDate(SubscriptionDateDtoList subscriptionDateDtoList) { subscriptionDateDtoList.getSubscriptionDateDtoList() .forEach(subscriptionDateDto -> subscriptionService.updateSubscriptionDate(subscriptionDateDto.getSubscriptionId(), subscriptionDateDto.getNextDeliveryDate(), subscriptionDateDto.getNextPaymentDate())); } - @KafkaListener(topics= "unsubscribe", groupId = "unsub") - public void unSubscribe(String subscriptionId) { - subscriptionService.unSubscribe(subscriptionId); + @KafkaListener(topics = "subscription-status-update", groupId = "sub-update") + public void updateSubscriptionStatus(SubscriptionStatusChangeDto statusChangeDto) { + subscriptionService.updateSubscriptionStatus(statusChangeDto.getOrderId(), statusChangeDto.getSubscriptionStatus(), + statusChangeDto.getReviewStatus()); } @SqsListener( value = "${cloud.aws.sqs.subscription-review-status-queue.name}", deletionPolicy = SqsMessageDeletionPolicy.NEVER ) - public void updateReviewStatus(@Payload String message, Acknowledgment ack) throws JsonProcessingException { + public void doneReviewStatus(@Payload String message, Acknowledgment ack) throws JsonProcessingException { StatusChangeDto statusChangeDto = objectMapper.readValue(message, StatusChangeDto.class); subscriptionService.updateReviewStatus(statusChangeDto.getId(), ReviewStatus.DONE.toString()); ack.acknowledge(); diff --git a/src/main/java/kr/bb/orderquery/domain/subscription/handler/SubscriptionManager.java b/src/main/java/kr/bb/orderquery/domain/subscription/handler/SubscriptionManager.java index 9c25c70..a3688c8 100644 --- a/src/main/java/kr/bb/orderquery/domain/subscription/handler/SubscriptionManager.java +++ b/src/main/java/kr/bb/orderquery/domain/subscription/handler/SubscriptionManager.java @@ -18,8 +18,8 @@ public void updateNextDeliveryDate(Subscription subscription, LocalDate nextDeli subscriptionRepository.save(subscription); } - public void unSubscribe(Subscription subscription) { - subscription.setIsUnsubscribed(true); + public void changeSubscriptionStatus(Subscription subscription, String subscriptionStatus, String reviewStatus) { + subscription.updateStatus(subscriptionStatus, reviewStatus); subscriptionRepository.save(subscription); } diff --git a/src/main/java/kr/bb/orderquery/domain/subscription/service/SubscriptionService.java b/src/main/java/kr/bb/orderquery/domain/subscription/service/SubscriptionService.java index 99d0fae..e7b0efd 100644 --- a/src/main/java/kr/bb/orderquery/domain/subscription/service/SubscriptionService.java +++ b/src/main/java/kr/bb/orderquery/domain/subscription/service/SubscriptionService.java @@ -1,5 +1,6 @@ package kr.bb.orderquery.domain.subscription.service; +import bloomingblooms.domain.review.ReviewStatus; import bloomingblooms.domain.subscription.SubscriptionCreateDto; import kr.bb.orderquery.domain.subscription.dto.SubscriptionDetailDto; import kr.bb.orderquery.domain.subscription.dto.SubscriptionForDateDto; @@ -56,9 +57,9 @@ public void updateSubscriptionDate(String subscriptionId, LocalDate nextDelivery subscriptionManager.updateNextDeliveryDate(subscription, nextDeliveryDate, nextPaymentDate); } - public void unSubscribe(String subscriptionId) { + public void updateSubscriptionStatus(String subscriptionId, String subscriptionStatus, ReviewStatus reviewStatus) { Subscription subscription = subscriptionReader.read(subscriptionId); - subscriptionManager.unSubscribe(subscription); + subscriptionManager.changeSubscriptionStatus(subscription, subscriptionStatus, reviewStatus.toString()); } public void updateReviewStatus(String subscriptionId, String reviewStatus) { From 55a83ecc9041550e440a3e2e6dac72b31bc3fb5b Mon Sep 17 00:00:00 2001 From: qwerty1434 Date: Mon, 15 Jan 2024 17:35:51 +0900 Subject: [PATCH 7/9] =?UTF-8?q?:white=5Fcheck=5Fmark:=20=ED=94=BD=EC=97=85?= =?UTF-8?q?=20=EC=83=9D=EC=84=B1=20=EB=A9=94=EC=84=9C=EB=93=9C=EC=97=90=20?= =?UTF-8?q?isCanceled=EB=B3=80=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bb/orderquery/domain/pickup/facade/PickupFacadeTest.java | 1 + .../orderquery/domain/pickup/service/PickupServiceTest.java | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/test/java/kr/bb/orderquery/domain/pickup/facade/PickupFacadeTest.java b/src/test/java/kr/bb/orderquery/domain/pickup/facade/PickupFacadeTest.java index 3fb7d8b..095fb4d 100644 --- a/src/test/java/kr/bb/orderquery/domain/pickup/facade/PickupFacadeTest.java +++ b/src/test/java/kr/bb/orderquery/domain/pickup/facade/PickupFacadeTest.java @@ -158,6 +158,7 @@ private Pickup createPickupWithStoreIdAndPickupDate(Long storeId, LocalDate pick .reviewStatus("REVIEW_READY") .cardStatus("CARD_READY") .productId("p1") + .isCanceled(false) .build(); } diff --git a/src/test/java/kr/bb/orderquery/domain/pickup/service/PickupServiceTest.java b/src/test/java/kr/bb/orderquery/domain/pickup/service/PickupServiceTest.java index 5ff1f20..26de07a 100644 --- a/src/test/java/kr/bb/orderquery/domain/pickup/service/PickupServiceTest.java +++ b/src/test/java/kr/bb/orderquery/domain/pickup/service/PickupServiceTest.java @@ -267,6 +267,7 @@ private Pickup createPickupWithUserId(Long userId) { .reservationStatus("RESERVATION_READY") .reviewStatus("REVIEW_READY") .cardStatus("CARD_READY") + .isCanceled(false) .build(); } private Pickup createPickupWithId(String pickupId) { @@ -294,6 +295,7 @@ private Pickup createPickupWithId(String pickupId) { .reservationStatus("RESERVATION_READY") .reviewStatus("REVIEW_READY") .cardStatus("CARD_READY") + .isCanceled(false) .build(); } @@ -322,6 +324,7 @@ private Pickup createPickupWithPickupDate(Long userId, LocalDateTime pickupDateT .reservationStatus("RESERVATION_READY") .reviewStatus("REVIEW_READY") .cardStatus("CARD_READY") + .isCanceled(false) .build(); } @@ -350,6 +353,7 @@ private Pickup createPickupWithPickupTime(Long userId, String pickupTime) { .reservationStatus("RESERVATION_READY") .reviewStatus("REVIEW_READY") .cardStatus("CARD_READY") + .isCanceled(false) .build(); } @@ -379,6 +383,7 @@ private Pickup createPickupWithStoreIdAndPickupDate(Long storeId, LocalDate pick .reservationStatus("RESERVATION_READY") .reviewStatus("REVIEW_READY") .cardStatus("CARD_READY") + .isCanceled(false) .build(); } From ffe19f7543cbf93e34c3716fa103f0291d586d8e Mon Sep 17 00:00:00 2001 From: qwerty1434 Date: Tue, 16 Jan 2024 11:06:04 +0900 Subject: [PATCH 8/9] =?UTF-8?q?:bug:=20=EA=B5=AC=EB=8F=85=EC=9D=80=20?= =?UTF-8?q?=EC=B7=A8=EC=86=8C=ED=96=88=EC=96=B4=EB=8F=84=20=EC=9D=B4?= =?UTF-8?q?=EB=B2=88=EB=8B=AC=20=EB=B0=B0=EC=86=A1=EC=9D=BC=20=EC=A0=84?= =?UTF-8?q?=EA=B9=8C=EC=A7=80=EB=8A=94=20=EC=9C=A0=EC=A0=80=EC=97=90?= =?UTF-8?q?=EA=B2=8C=20=EB=85=B8=EC=B6=9C=EB=90=98=EB=A9=B0=20=EC=9D=B4?= =?UTF-8?q?=EB=95=8C=20=EC=83=81=ED=83=9C=EB=A5=BC=20=ED=95=A8=EA=BB=98=20?= =?UTF-8?q?=EB=B3=BC=20=EC=88=98=20=EC=9E=88=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/subscription/dto/SubscriptionDetailDto.java | 2 ++ .../domain/subscription/service/SubscriptionService.java | 6 +++++- .../subscription/service/SubscriptionServiceTest.java | 3 +-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/kr/bb/orderquery/domain/subscription/dto/SubscriptionDetailDto.java b/src/main/java/kr/bb/orderquery/domain/subscription/dto/SubscriptionDetailDto.java index 7de5d27..6942a84 100644 --- a/src/main/java/kr/bb/orderquery/domain/subscription/dto/SubscriptionDetailDto.java +++ b/src/main/java/kr/bb/orderquery/domain/subscription/dto/SubscriptionDetailDto.java @@ -38,6 +38,7 @@ public class SubscriptionDetailDto { private LocalDate nextDeliveryDate; private String deliveryRequest; private String productId; + private Boolean isUnsubscribed; public static SubscriptionDetailDto fromEntity(Subscription subscription) { @@ -66,6 +67,7 @@ public static SubscriptionDetailDto fromEntity(Subscription subscription) { .nextDeliveryDate(LocalDate.parse(subscription.getNextDeliveryDate())) .deliveryRequest(subscription.getDeliveryRequest()) .productId(subscription.getProductId()) + .isUnsubscribed(subscription.getIsUnsubscribed()) .build(); } } diff --git a/src/main/java/kr/bb/orderquery/domain/subscription/service/SubscriptionService.java b/src/main/java/kr/bb/orderquery/domain/subscription/service/SubscriptionService.java index e7b0efd..750abd8 100644 --- a/src/main/java/kr/bb/orderquery/domain/subscription/service/SubscriptionService.java +++ b/src/main/java/kr/bb/orderquery/domain/subscription/service/SubscriptionService.java @@ -32,7 +32,11 @@ public Subscription createSubscription(SubscriptionCreateDto subscriptionCreateD public List getSubscriptionsOfUser(Long userId) { return subscriptionReader.readByUserId(userId) .stream() - .filter(Predicate.not(Subscription::getIsUnsubscribed)) + .filter(Predicate.not(subscription -> { + LocalDate now = LocalDate.now(); + LocalDate nextDeliveryDate = LocalDate.parse(subscription.getNextDeliveryDate()); + return subscription.getIsUnsubscribed() && now.isAfter(nextDeliveryDate); + })) .map(SubscriptionForUserDto::fromEntity) .collect(Collectors.toList()); } diff --git a/src/test/java/kr/bb/orderquery/domain/subscription/service/SubscriptionServiceTest.java b/src/test/java/kr/bb/orderquery/domain/subscription/service/SubscriptionServiceTest.java index 856d56f..b5ce067 100644 --- a/src/test/java/kr/bb/orderquery/domain/subscription/service/SubscriptionServiceTest.java +++ b/src/test/java/kr/bb/orderquery/domain/subscription/service/SubscriptionServiceTest.java @@ -98,7 +98,6 @@ void getSubscriptionsOfUser() { Long userId = 1L; Subscription s1 = createSubscriptionWithUserId(userId); Subscription s2 = createSubscriptionWithUserId(userId); - s2.setIsUnsubscribed(true); Subscription s3 = createSubscriptionWithUserId(2L); Subscription s4 = createSubscriptionWithUserId(3L); subscriptionRepository.saveAll(List.of(s1,s2,s3,s4)); @@ -107,7 +106,7 @@ void getSubscriptionsOfUser() { List subscriptionsOfUser = subscriptionService.getSubscriptionsOfUser(userId); // then - assertThat(subscriptionsOfUser).hasSize(1); + assertThat(subscriptionsOfUser).hasSize(2); } @DisplayName("특정 가게의 특정 날짜에 예정되어 있는 구독 목록을 가져온다") From dffaad11a57a97bf79dca8cc31b16e32c4e37816 Mon Sep 17 00:00:00 2001 From: qwerty1434 Date: Tue, 16 Jan 2024 13:41:59 +0900 Subject: [PATCH 9/9] =?UTF-8?q?:pencil2:=20Pickup=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=EC=97=90=20orderProductId=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- .../kr/bb/orderquery/domain/pickup/dto/PickupDetailDto.java | 2 ++ .../java/kr/bb/orderquery/domain/pickup/entity/Pickup.java | 3 +++ .../kr/bb/orderquery/domain/pickup/handler/PickupCreator.java | 2 ++ 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 5c2721d..7785b67 100644 --- a/build.gradle +++ b/build.gradle @@ -56,7 +56,7 @@ dependencies { testImplementation "org.junit.jupiter:junit-jupiter:5.8.1" testImplementation "org.testcontainers:junit-jupiter:1.16.3" - implementation group: 'io.github.lotteon-maven', name: 'blooming-blooms-utils', version: '202401150717' + implementation group: 'io.github.lotteon-maven', name: 'blooming-blooms-utils', version: '202401160417' } dependencyManagement { diff --git a/src/main/java/kr/bb/orderquery/domain/pickup/dto/PickupDetailDto.java b/src/main/java/kr/bb/orderquery/domain/pickup/dto/PickupDetailDto.java index 98457ab..e6fe0d9 100644 --- a/src/main/java/kr/bb/orderquery/domain/pickup/dto/PickupDetailDto.java +++ b/src/main/java/kr/bb/orderquery/domain/pickup/dto/PickupDetailDto.java @@ -34,6 +34,7 @@ public class PickupDetailDto { private LocalDate pickupDate; private String pickupTime; private String productId; + private Long orderProductId; public static PickupDetailDto fromEntity(Pickup pickup) { return PickupDetailDto.builder() @@ -57,6 +58,7 @@ public static PickupDetailDto fromEntity(Pickup pickup) { .pickupDate(LocalDate.parse(pickup.getPickupDate())) .pickupTime(pickup.getPickupTime()) .productId(pickup.getProductId()) + .orderProductId(pickup.getOrderProductId()) .build(); } diff --git a/src/main/java/kr/bb/orderquery/domain/pickup/entity/Pickup.java b/src/main/java/kr/bb/orderquery/domain/pickup/entity/Pickup.java index cd4d42a..646dafc 100644 --- a/src/main/java/kr/bb/orderquery/domain/pickup/entity/Pickup.java +++ b/src/main/java/kr/bb/orderquery/domain/pickup/entity/Pickup.java @@ -97,6 +97,9 @@ public class Pickup implements Comparable{ @DynamoDBTyped(DynamoDBMapperFieldModel.DynamoDBAttributeType.BOOL) private Boolean isCanceled; + @DynamoDBAttribute(attributeName = "order_product_id") + private Long orderProductId; + @Override public int compareTo(@NotNull Pickup o) { return this.getPickupDateTime().compareTo(o.getPickupDateTime()); diff --git a/src/main/java/kr/bb/orderquery/domain/pickup/handler/PickupCreator.java b/src/main/java/kr/bb/orderquery/domain/pickup/handler/PickupCreator.java index 91609ad..ad0240f 100644 --- a/src/main/java/kr/bb/orderquery/domain/pickup/handler/PickupCreator.java +++ b/src/main/java/kr/bb/orderquery/domain/pickup/handler/PickupCreator.java @@ -1,5 +1,6 @@ package kr.bb.orderquery.domain.pickup.handler; + import bloomingblooms.domain.pickup.PickupCreateDto; import bloomingblooms.domain.store.StoreNameAndAddressDto; import kr.bb.orderquery.domain.pickup.entity.Pickup; @@ -45,6 +46,7 @@ public Pickup create(StoreNameAndAddressDto storeAddress, PickupCreateDto pickup .cardStatus(pickupCreateDto.getCardStatus()) .productId(pickupCreateDto.getProductId()) .isCanceled(false) + .orderProductId(pickupCreateDto.getOrderProductId()) .build(); return pickupRepository.save(pickup);