Update stock management in orders and rename save methods
This commit is contained in:
@@ -81,7 +81,7 @@ public class OrderController {
|
|||||||
}
|
}
|
||||||
order.setId(null);
|
order.setId(null);
|
||||||
order.getOrderItems().forEach(orderItem -> orderItem.setId(null));
|
order.getOrderItems().forEach(orderItem -> orderItem.setId(null));
|
||||||
Order saved = orderService.save(order);
|
Order saved = orderService.saveNew(order);
|
||||||
return ResponseEntity.ok(saved != null);
|
return ResponseEntity.ok(saved != null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -104,7 +104,7 @@ public class OrderController {
|
|||||||
return ResponseEntity.notFound().build();
|
return ResponseEntity.notFound().build();
|
||||||
}
|
}
|
||||||
order.setStatus(status);
|
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")
|
@RequestMapping(path = ORDER_BASE, method = RequestMethod.DELETE, produces = "application/json")
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ public class Article {
|
|||||||
@Column(name = "uuid", nullable = false, unique = true)
|
@Column(name = "uuid", nullable = false, unique = true)
|
||||||
private UUID uuid;
|
private UUID uuid;
|
||||||
|
|
||||||
@Min(0)
|
|
||||||
@Column(name = "stock", nullable = false)
|
@Column(name = "stock", nullable = false)
|
||||||
private Integer stock;
|
private Integer stock;
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package de.htwsaar.webshop.service;
|
|||||||
import de.htwsaar.webshop.model.ArticleModel;
|
import de.htwsaar.webshop.model.ArticleModel;
|
||||||
import de.htwsaar.webshop.model.ArticleWithImageModel;
|
import de.htwsaar.webshop.model.ArticleWithImageModel;
|
||||||
import de.htwsaar.webshop.repository.entities.Article;
|
import de.htwsaar.webshop.repository.entities.Article;
|
||||||
|
import de.htwsaar.webshop.repository.entities.OrderItem;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@@ -25,6 +26,8 @@ public interface ArticleService {
|
|||||||
|
|
||||||
Article update(Article article);
|
Article update(Article article);
|
||||||
|
|
||||||
|
void diffStock(OrderItem orderItem);
|
||||||
|
|
||||||
double getRating(Long id);
|
double getRating(Long id);
|
||||||
|
|
||||||
double getRating(UUID uuid);
|
double getRating(UUID uuid);
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ import java.util.Map;
|
|||||||
public interface OrderService {
|
public interface OrderService {
|
||||||
List<Order> findAll();
|
List<Order> findAll();
|
||||||
|
|
||||||
Order save(Order order);
|
Order saveNew(Order order);
|
||||||
|
|
||||||
Order save(OrderModel model);
|
Order saveNew(OrderModel model);
|
||||||
|
|
||||||
void delete(Long orderId);
|
void delete(Long orderId);
|
||||||
|
|
||||||
|
|||||||
@@ -76,4 +76,6 @@ public class AccountServiceImpl implements AccountService {
|
|||||||
public boolean existsWithEmail(String email) {
|
public boolean existsWithEmail(String email) {
|
||||||
return accountRepository.existsAccountByEmail(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.ImageRepository;
|
||||||
import de.htwsaar.webshop.repository.ReviewRepository;
|
import de.htwsaar.webshop.repository.ReviewRepository;
|
||||||
import de.htwsaar.webshop.repository.entities.Article;
|
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.repository.entities.Review;
|
||||||
import de.htwsaar.webshop.service.ArticleService;
|
import de.htwsaar.webshop.service.ArticleService;
|
||||||
import de.htwsaar.webshop.service.ImageService;
|
|
||||||
import jakarta.transaction.Transactional;
|
import jakarta.transaction.Transactional;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -75,6 +75,17 @@ public class ArticleServiceImpl implements ArticleService {
|
|||||||
return articleRepository.save(article);
|
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
|
@Override
|
||||||
public double getRating(Long id) {
|
public double getRating(Long id) {
|
||||||
return reviewRepository.streamReviewsByArticleId(id)
|
return reviewRepository.streamReviewsByArticleId(id)
|
||||||
|
|||||||
@@ -41,13 +41,13 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Order save(Order order) {
|
public Order saveNew(Order order) {
|
||||||
return orderRepository.save(order);
|
return orderRepository.save(order);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Order save(OrderModel model) {
|
public Order saveNew(OrderModel model) {
|
||||||
Order order = save(new Order(
|
Order order = saveNew(new Order(
|
||||||
model.getId(),
|
model.getId(),
|
||||||
customerService.findById(model.getCustomerId()),
|
customerService.findById(model.getCustomerId()),
|
||||||
model.getTime(),
|
model.getTime(),
|
||||||
@@ -64,6 +64,7 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
);
|
);
|
||||||
log.info("Created Order from Model: {}", order);
|
log.info("Created Order from Model: {}", order);
|
||||||
orderItemRepository.saveAll(order.getOrderItems());
|
orderItemRepository.saveAll(order.getOrderItems());
|
||||||
|
order.getOrderItems().forEach(articleService::diffStock);
|
||||||
return order;
|
return order;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user