|
|
@@ -45,12 +45,14 @@ public class OrderServiceImpl implements OrderService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<OrderVO> getAllOrders(Integer userId) {
|
|
|
+ public List<OrderVO> getAllOrders() {
|
|
|
+ int userId=securityUtil.getCurrentUser().getId();
|
|
|
List<Order> orders = orderRepository.findByUserId(userId);
|
|
|
return orders.stream().map(Order::toVO).collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ //参数可能要加优惠券Id
|
|
|
public Boolean pay(Integer orderId) {
|
|
|
Order order = orderRepository.findById(orderId).orElse(null);
|
|
|
if(order == null){
|
|
|
@@ -60,7 +62,8 @@ public class OrderServiceImpl implements OrderService {
|
|
|
throw BlueWhaleException.orderStatusError();
|
|
|
}
|
|
|
order.setStatus(OrderStatusEnum.UNSEND);
|
|
|
- order.setPaid(1);
|
|
|
+ double price=productRepository.findById(order.getProductId()).get().getPrice();
|
|
|
+ order.setPaid(price*order.getAmount());
|
|
|
orderRepository.save(order);
|
|
|
return true;
|
|
|
}
|
|
|
@@ -74,10 +77,12 @@ public class OrderServiceImpl implements OrderService {
|
|
|
if(order.getStatus() != OrderStatusEnum.UNSEND){
|
|
|
throw BlueWhaleException.orderStatusError();
|
|
|
}
|
|
|
+ Product product = productRepository.findById(order.getProductId()).get();
|
|
|
+ if (product.getStock()<order.getAmount()){
|
|
|
+ throw BlueWhaleException.stockNotEnough();
|
|
|
+ }
|
|
|
order.setStatus(OrderStatusEnum.UNGET);
|
|
|
orderRepository.save(order);
|
|
|
-
|
|
|
- Product product = productRepository.findById(order.getProductId()).orElse(null);
|
|
|
product.setSalesAmount(product.getSalesAmount()+order.getAmount());
|
|
|
product.setStock(product.getStock()-order.getAmount());
|
|
|
productRepository.save(product);
|
|
|
@@ -112,20 +117,14 @@ public class OrderServiceImpl implements OrderService {
|
|
|
order.setStatus(OrderStatusEnum.DONE);
|
|
|
orderRepository.save(order);
|
|
|
|
|
|
- Product product = productRepository.findById(order.getProductId()).orElse(null);
|
|
|
+ Product product = productRepository.findById(order.getProductId()).get();
|
|
|
Double currentProductRating = product.getRating();
|
|
|
- if(currentProductRating == null){
|
|
|
- currentProductRating = 0.0;
|
|
|
- }
|
|
|
product.setRating((currentProductRating*product.getNumber()+rating)/(product.getNumber()+1));
|
|
|
product.setNumber(product.getNumber()+1);
|
|
|
productRepository.save(product);
|
|
|
|
|
|
- Store store = storeRepository.findById(product.getStoreId()).orElse(null);
|
|
|
+ Store store = storeRepository.findById(product.getStoreId()).get();
|
|
|
Double currentStoreRating = store.getRating();
|
|
|
- if(currentStoreRating == null){
|
|
|
- currentStoreRating = 0.0;
|
|
|
- }
|
|
|
store.setRating((currentStoreRating*store.getNumber()+rating)/(store.getNumber()+1));
|
|
|
store.setNumber(store.getNumber()+1);
|
|
|
storeRepository.save(store);
|