From bdc40b2a60c16fd159db8d452d41c2264c40b472 Mon Sep 17 00:00:00 2001 From: ayaZouity <aya.zouity@marketingconfort.com> Date: Thu, 6 Mar 2025 12:52:57 +0000 Subject: [PATCH] Add delete item functionality in back office and display sale session ID --- CHANGELOG.md | 2 ++ pom.xml | 2 +- .../mydressin/dtos/ProductDetailsCartDTO.java | 3 +++ .../mydressin/mappers/CartMapper.java | 7 +------ .../mydressin/repositories/CartRepository.java | 2 +- .../repositories/SessionOrderRepository.java | 1 + .../mydressin/services/impl/CartServiceImp.java | 13 +++++++++++-- 7 files changed, 20 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f5bee3..45c4b44 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ ## [1.0.73-RELEASE] ### Added - MYD-739/Fix List with sale sessions stats +- Add delete item functionality in back office and display sale session ID + ### Changed - Changes in existing functionality. diff --git a/pom.xml b/pom.xml index 479dafb..5f723b4 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ <dependency> <groupId>com.marketingconfort</groupId> <artifactId>mydressin-common</artifactId> - <version>1.0.206-RELEASE</version> + <version>1.0.212-RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> diff --git a/src/main/java/com/marketingconfort/mydressin/dtos/ProductDetailsCartDTO.java b/src/main/java/com/marketingconfort/mydressin/dtos/ProductDetailsCartDTO.java index 9c05b5c..429bb82 100644 --- a/src/main/java/com/marketingconfort/mydressin/dtos/ProductDetailsCartDTO.java +++ b/src/main/java/com/marketingconfort/mydressin/dtos/ProductDetailsCartDTO.java @@ -1,6 +1,7 @@ package com.marketingconfort.mydressin.dtos; import com.marketingconfort.mydressin.common.cart.dtos.ProductCartDTO; +import com.marketingconfort.mydressin.common.cart.enumurations.ItemCartStatus; import com.marketingconfort.mydressin.common.cart.enumurations.ItemSource; import lombok.*; @@ -16,4 +17,6 @@ public class ProductDetailsCartDTO { private long quantity; private double totalPrice; private ItemSource source; + private ItemCartStatus status; + private Long sessionOrderId; } diff --git a/src/main/java/com/marketingconfort/mydressin/mappers/CartMapper.java b/src/main/java/com/marketingconfort/mydressin/mappers/CartMapper.java index 45412e4..95855ca 100644 --- a/src/main/java/com/marketingconfort/mydressin/mappers/CartMapper.java +++ b/src/main/java/com/marketingconfort/mydressin/mappers/CartMapper.java @@ -60,14 +60,9 @@ public class CartMapper { public ClientCartDTO cartToClientCartDTO(Cart cart) { - List<ItemCart> itemCarts = cart.getItems() - .stream() - .filter(itemCart -> itemCart.getStatus()!=ItemCartStatus.DELETED_SITE && itemCart.getStatus()!=ItemCartStatus.DELETED_BO ) - .toList(); - ClientCartDTO clientCartDTO = new ClientCartDTO(); clientCartDTO.setId(cart.getId()); - clientCartDTO.setItemsCount(itemCarts.size()); + clientCartDTO.setItemsCount(cart.getItems().size()); return clientCartDTO; } diff --git a/src/main/java/com/marketingconfort/mydressin/repositories/CartRepository.java b/src/main/java/com/marketingconfort/mydressin/repositories/CartRepository.java index a73c5d9..867f4b4 100644 --- a/src/main/java/com/marketingconfort/mydressin/repositories/CartRepository.java +++ b/src/main/java/com/marketingconfort/mydressin/repositories/CartRepository.java @@ -78,7 +78,7 @@ public interface CartRepository extends JpaRepository<Cart, Long>, JpaSpecificat ItemSource source); @Query("SELECT c FROM Cart c " + - "WHERE EXISTS (SELECT ic1 FROM c.items ic1 WHERE ic1.status != 'DELETED_SITE' AND ic1.status != 'DELETED_BO' ) " + + "WHERE EXISTS (SELECT ic1 FROM c.items ic1) " + " AND LOWER(c.status) = 'open' " + " AND ((-1L) in :clientIds OR c.clientId IN :clientIds) " + " AND ((-1L) in :productIds OR EXISTS (SELECT ic2 FROM c.items ic2 WHERE ic2.productId IN :productIds))") diff --git a/src/main/java/com/marketingconfort/mydressin/repositories/SessionOrderRepository.java b/src/main/java/com/marketingconfort/mydressin/repositories/SessionOrderRepository.java index 06ea98b..3e8ae6c 100644 --- a/src/main/java/com/marketingconfort/mydressin/repositories/SessionOrderRepository.java +++ b/src/main/java/com/marketingconfort/mydressin/repositories/SessionOrderRepository.java @@ -21,4 +21,5 @@ public interface SessionOrderRepository extends JpaRepository<SessionOrder,Long> void updateItemCartExpirationDateBySaleSessionId(@Param("sessionId") Long sessionId, @Param("expirationDate") LocalDateTime expirationDate); List<SessionOrder> findAll(); + SessionOrder findSessionOrderByItemCart_Id(Long id); } diff --git a/src/main/java/com/marketingconfort/mydressin/services/impl/CartServiceImp.java b/src/main/java/com/marketingconfort/mydressin/services/impl/CartServiceImp.java index 5f374ac..ecce6f0 100644 --- a/src/main/java/com/marketingconfort/mydressin/services/impl/CartServiceImp.java +++ b/src/main/java/com/marketingconfort/mydressin/services/impl/CartServiceImp.java @@ -16,6 +16,7 @@ import com.marketingconfort.mydressin.common.cart.enumurations.OrderStatus; import com.marketingconfort.mydressin.common.cart.enumurations.Status; import com.marketingconfort.mydressin.common.cart.models.Cart; import com.marketingconfort.mydressin.common.cart.models.ItemCart; +import com.marketingconfort.mydressin.common.cart.models.SessionOrder; import com.marketingconfort.mydressin.common.constant.urlServiceConstant.NameUri; import com.marketingconfort.mydressin.common.constant.urlServiceConstant.NameUrl; import com.marketingconfort.mydressin.common.constant.urlServiceConstant.Path.AddonsServicePath; @@ -29,6 +30,7 @@ import com.marketingconfort.mydressin.exceptions.InsufficientBalanceException; import com.marketingconfort.mydressin.mappers.CartMapper; import com.marketingconfort.mydressin.mappers.ProductDTOMapper; import com.marketingconfort.mydressin.repositories.CartRepository; +import com.marketingconfort.mydressin.repositories.SessionOrderRepository; import com.marketingconfort.mydressin.services.*; import com.marketingconfort.starter.core.exceptions.TechnicalException; import com.marketingconfort.starter.core.services.MCRestTemplateService; @@ -64,9 +66,10 @@ public class CartServiceImp implements CartService { private final NameUrl nameUrl; private final ExternalApiService externalApiService; private final PromoCodeUtilService promoCodeUtilService; + private final SessionOrderRepository sessionOrderRepository; public CartServiceImp(CartRepository cartRepository, ProductStockService productStockService, CartMapper cartMapper, CartCountConfigService cartCountConfigService, - MCRestTemplateService mcRestTemplateService, NameUrl nameUrl, ExternalApiService externalApiService, PromoCodeUtilService promoCodeUtilService) { + MCRestTemplateService mcRestTemplateService, NameUrl nameUrl, ExternalApiService externalApiService, PromoCodeUtilService promoCodeUtilService, SessionOrderRepository sessionOrderRepository) { this.cartRepository = cartRepository; this.productStockService = productStockService; this.cartMapper = cartMapper; @@ -75,6 +78,7 @@ public class CartServiceImp implements CartService { this.nameUrl = nameUrl; this.externalApiService = externalApiService; this.promoCodeUtilService = promoCodeUtilService; + this.sessionOrderRepository = sessionOrderRepository; } @@ -1059,11 +1063,16 @@ public class CartServiceImp implements CartService { ? productCart.getPromoPrice() * item.getQuantity() : productCart.getRegularPrice() * item.getQuantity(); ProductDetailsCartDTO detailsDTO = new ProductDetailsCartDTO(); - detailsDTO.setItemId(item.getProductId()); + detailsDTO.setItemId(item.getId()); detailsDTO.setQuantity(item.getQuantity()); detailsDTO.setSource(item.getSource()); detailsDTO.setTotalPrice(price); detailsDTO.setProductCartDTOS(productCart); + detailsDTO.setStatus(item.getStatus()); + SessionOrder sessionOrderByItemCartId = sessionOrderRepository.findSessionOrderByItemCart_Id(item.getId()); + if(sessionOrderByItemCartId!=null){ + detailsDTO.setSessionOrderId(sessionOrderByItemCartId.getSaleSession().getId()); + } return detailsDTO; } -- GitLab