Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -76,4 +76,6 @@ public class AccountServiceImpl implements AccountService {
|
||||
public boolean existsWithEmail(String email) {
|
||||
return accountRepository.existsAccountByEmail(email);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user