From a92785da593c6dc5dc0646fe9d2242cd3527d02e Mon Sep 17 00:00:00 2001 From: Olivier PARPAILLON Date: Wed, 16 Jul 2025 16:16:52 +0200 Subject: [PATCH] add isRent to stock if location is in progress --- src/main/java/fr/eni/demo/bll/LocationService.java | 1 + .../java/fr/eni/demo/bll/LocationServiceImpl.java | 9 ++++++++- src/main/java/fr/eni/demo/bll/StockService.java | 1 + src/main/java/fr/eni/demo/bll/StockServiceImpl.java | 11 ++++++++++- src/main/java/fr/eni/demo/bo/Stock.java | 3 +++ src/main/java/fr/eni/demo/dal/StockRepository.java | 2 +- 6 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/main/java/fr/eni/demo/bll/LocationService.java b/src/main/java/fr/eni/demo/bll/LocationService.java index ce67a0c..91ff5cf 100644 --- a/src/main/java/fr/eni/demo/bll/LocationService.java +++ b/src/main/java/fr/eni/demo/bll/LocationService.java @@ -4,4 +4,5 @@ import fr.eni.demo.bo.Location; public interface LocationService { void add(Location location); + void update(Location location); } diff --git a/src/main/java/fr/eni/demo/bll/LocationServiceImpl.java b/src/main/java/fr/eni/demo/bll/LocationServiceImpl.java index 6a569dd..52ce5e3 100644 --- a/src/main/java/fr/eni/demo/bll/LocationServiceImpl.java +++ b/src/main/java/fr/eni/demo/bll/LocationServiceImpl.java @@ -2,12 +2,12 @@ package fr.eni.demo.bll; import fr.eni.demo.bo.Location; import fr.eni.demo.dal.LocationRepository; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class LocationServiceImpl implements LocationService { private LocationRepository locationRepository; + private StockService stockService; public LocationServiceImpl(LocationRepository locationRepository) { this.locationRepository = locationRepository; @@ -16,5 +16,12 @@ public class LocationServiceImpl implements LocationService { @Override public void add(Location location) { locationRepository.save(location); + stockService.isRent(location.getStock(), true); + } + + @Override + public void update(Location location) { + locationRepository.save(location); + stockService.isRent(location.getStock(), false); } } diff --git a/src/main/java/fr/eni/demo/bll/StockService.java b/src/main/java/fr/eni/demo/bll/StockService.java index 355c5b4..a4f3910 100644 --- a/src/main/java/fr/eni/demo/bll/StockService.java +++ b/src/main/java/fr/eni/demo/bll/StockService.java @@ -11,5 +11,6 @@ public interface StockService { Optional findById(Long gameId); List findAllByName(String name); Stock findByRef(String ref); + void isRent(Stock stock, boolean value); } diff --git a/src/main/java/fr/eni/demo/bll/StockServiceImpl.java b/src/main/java/fr/eni/demo/bll/StockServiceImpl.java index 14c0053..0228e1a 100644 --- a/src/main/java/fr/eni/demo/bll/StockServiceImpl.java +++ b/src/main/java/fr/eni/demo/bll/StockServiceImpl.java @@ -32,7 +32,7 @@ public class StockServiceImpl implements StockService{ @Override public List findAllByName(String name){ - List stocks = stockRepository.findByNameIsContainingIgnoreCase(name); + List stocks = stockRepository.findByNameIsContainingIgnoreCaseAndIsRentFalse(name); List result = stocks.stream() .collect(Collectors.groupingBy(Stock::getName, Collectors.counting())) .entrySet().stream() @@ -49,4 +49,13 @@ public class StockServiceImpl implements StockService{ } return stock; } + + @Override + public void isRent(Stock stock, boolean value) { + if (stock == null) { + throw new EntityNotFoundException("Stock non valide"); + } + stock.setIsRent(value); + stockRepository.save(stock); + } } diff --git a/src/main/java/fr/eni/demo/bo/Stock.java b/src/main/java/fr/eni/demo/bo/Stock.java index 634f435..9d573a0 100644 --- a/src/main/java/fr/eni/demo/bo/Stock.java +++ b/src/main/java/fr/eni/demo/bo/Stock.java @@ -31,6 +31,9 @@ public class Stock { @Field(name = "GAME_DAILY_PRICE") private Double dailyPrice; + @Field(name = "GAME_IS_RENT") + private Boolean isRent; + @DBRef @Field(name = "GAME_TYPE") private List gameType; diff --git a/src/main/java/fr/eni/demo/dal/StockRepository.java b/src/main/java/fr/eni/demo/dal/StockRepository.java index aab81b2..1ec8e46 100644 --- a/src/main/java/fr/eni/demo/dal/StockRepository.java +++ b/src/main/java/fr/eni/demo/dal/StockRepository.java @@ -8,6 +8,6 @@ import java.util.List; @Repository public interface StockRepository extends MongoRepository { - List findByNameIsContainingIgnoreCase(String name); + List findByNameIsContainingIgnoreCaseAndIsRentFalse(String name); Stock findByRefEQ(String ref); }