Merge remote-tracking branch 'origin/main'

This commit is contained in:
Laura Dolibois
2025-06-18 20:00:39 +02:00
7 changed files with 25 additions and 9 deletions

View File

@@ -81,7 +81,7 @@ public class OrderController {
}
order.setId(null);
order.getOrderItems().forEach(orderItem -> orderItem.setId(null));
Order saved = orderService.save(order);
Order saved = orderService.saveNew(order);
return ResponseEntity.ok(saved != null);
}
@@ -104,7 +104,7 @@ public class OrderController {
return ResponseEntity.notFound().build();
}
order.setStatus(status);
return ResponseEntity.ok(orderService.save(order) != null);
return ResponseEntity.ok(orderService.saveNew(order) != null);
}
@RequestMapping(path = ORDER_BASE, method = RequestMethod.DELETE, produces = "application/json")

View File

@@ -25,7 +25,6 @@ public class Article {
@Column(name = "uuid", nullable = false, unique = true)
private UUID uuid;
@Min(0)
@Column(name = "stock", nullable = false)
private Integer stock;

View File

@@ -3,6 +3,7 @@ package de.htwsaar.webshop.service;
import de.htwsaar.webshop.model.ArticleModel;
import de.htwsaar.webshop.model.ArticleWithImageModel;
import de.htwsaar.webshop.repository.entities.Article;
import de.htwsaar.webshop.repository.entities.OrderItem;
import java.util.List;
import java.util.UUID;
@@ -25,6 +26,8 @@ public interface ArticleService {
Article update(Article article);
void diffStock(OrderItem orderItem);
double getRating(Long id);
double getRating(UUID uuid);

View File

@@ -9,9 +9,9 @@ import java.util.Map;
public interface OrderService {
List<Order> findAll();
Order save(Order order);
Order saveNew(Order order);
Order save(OrderModel model);
Order saveNew(OrderModel model);
void delete(Long orderId);

View File

@@ -76,4 +76,6 @@ public class AccountServiceImpl implements AccountService {
public boolean existsWithEmail(String email) {
return accountRepository.existsAccountByEmail(email);
}
}

View File

@@ -6,9 +6,9 @@ import de.htwsaar.webshop.repository.ArticleRepository;
import de.htwsaar.webshop.repository.ImageRepository;
import de.htwsaar.webshop.repository.ReviewRepository;
import de.htwsaar.webshop.repository.entities.Article;
import de.htwsaar.webshop.repository.entities.OrderItem;
import de.htwsaar.webshop.repository.entities.Review;
import de.htwsaar.webshop.service.ArticleService;
import de.htwsaar.webshop.service.ImageService;
import jakarta.transaction.Transactional;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -75,6 +75,17 @@ public class ArticleServiceImpl implements ArticleService {
return articleRepository.save(article);
}
@Override
public void diffStock(OrderItem orderItem) {
Article a = orderItem.getArticle();
if (a == null) {
return;
}
log.info("Change Stock {} to {}", a.getStock(), a.getStock() - orderItem.getAmount());
a.setStock(a.getStock() - orderItem.getAmount());
articleRepository.save(a);
}
@Override
public double getRating(Long id) {
return reviewRepository.streamReviewsByArticleId(id)

View File

@@ -41,13 +41,13 @@ public class OrderServiceImpl implements OrderService {
}
@Override
public Order save(Order order) {
public Order saveNew(Order order) {
return orderRepository.save(order);
}
@Override
public Order save(OrderModel model) {
Order order = save(new Order(
public Order saveNew(OrderModel model) {
Order order = saveNew(new Order(
model.getId(),
customerService.findById(model.getCustomerId()),
model.getTime(),
@@ -64,6 +64,7 @@ public class OrderServiceImpl implements OrderService {
);
log.info("Created Order from Model: {}", order);
orderItemRepository.saveAll(order.getOrderItems());
order.getOrderItems().forEach(articleService::diffStock);
return order;
}