Ignore:
Timestamp:
05/07/25 18:34:01 (11 days ago)
Author:
Aleksandar Panovski <apano77@…>
Branches:
main
Parents:
b67dfd3
Message:

Final version for DB

Location:
src/main/java/com/example/rezevirajmasa/demo/service/impl
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/com/example/rezevirajmasa/demo/service/impl/MenuServiceImpl.java

    rb67dfd3 re48199a  
    22
    33import com.example.rezevirajmasa.demo.model.Menu;
     4import com.example.rezevirajmasa.demo.model.PriceHistory;
    45import com.example.rezevirajmasa.demo.model.Restaurant;
    56import com.example.rezevirajmasa.demo.repository.MenuRepository;
     7import com.example.rezevirajmasa.demo.repository.PriceHistoryRepository;
    68import com.example.rezevirajmasa.demo.service.MenuService;
    79import com.example.rezevirajmasa.demo.service.RestaurantService;
     10import org.openqa.selenium.InvalidArgumentException;
    811import org.springframework.stereotype.Service;
    912
     13import java.math.BigDecimal;
     14import java.time.LocalDateTime;
    1015import java.util.List;
    1116
     
    1520    private final RestaurantService restaurantService;
    1621
    17     public MenuServiceImpl(MenuRepository menuRepository, RestaurantService restaurantService) {
     22    private final PriceHistoryRepository priceHistoryRepository;
     23
     24    public MenuServiceImpl(MenuRepository menuRepository, RestaurantService restaurantService, PriceHistoryRepository priceHistoryRepository) {
    1825        this.menuRepository = menuRepository;
    1926        this.restaurantService = restaurantService;
     27        this.priceHistoryRepository = priceHistoryRepository;
    2028    }
    2129
     
    2533        return menuRepository.findAllByRestaurant(restaurant);
    2634    }
     35
     36    @Override
     37    public void updateMenuPrice(Long menuId, BigDecimal newPrice) {
     38        Menu menu = menuRepository.findById(menuId)
     39                .orElseThrow(() -> new IllegalArgumentException("Menu not found"));
     40
     41        if (menu.getPrice() != null && !menu.getPrice().equals(newPrice)) {
     42            PriceHistory priceHistory = new PriceHistory(menu, menu.getPrice(), LocalDateTime.now());
     43            priceHistoryRepository.save(priceHistory);
     44        }
     45
     46        menu.setPrice(newPrice);
     47        menuRepository.save(menu);
     48    }
     49
     50    @Override
     51    public Menu getMenuById(Long id) {
     52        return menuRepository.findById(id)
     53                .orElseThrow(()->new InvalidArgumentException("Invalid id sent: " + id));
     54    }
    2755}
  • src/main/java/com/example/rezevirajmasa/demo/service/impl/ReservationImpl.java

    rb67dfd3 re48199a  
    11package com.example.rezevirajmasa.demo.service.impl;
    22
     3import com.example.rezevirajmasa.demo.dto.PreorderedItemDto;
    34import com.example.rezevirajmasa.demo.dto.ReservationDTO;
    45import com.example.rezevirajmasa.demo.mappers.UserMapper;
     
    89import com.example.rezevirajmasa.demo.repository.ReservationRepository;
    910import com.example.rezevirajmasa.demo.repository.TableRepository;
     11import com.example.rezevirajmasa.demo.service.MenuService;
    1012import com.example.rezevirajmasa.demo.service.ReservationHistoryService;
    1113import com.example.rezevirajmasa.demo.service.ReservationService;
    1214import com.example.rezevirajmasa.demo.service.UserService;
    1315import org.springframework.beans.factory.annotation.Autowired;
     16import org.springframework.context.annotation.Lazy;
    1417import org.springframework.stereotype.Service;
    1518
     
    3134    @Autowired
    3235    private ReservationRepository reservationRepository;
     36    @Autowired
     37    @Lazy
     38    private MenuService menuService;
    3339
    3440    public ReservationImpl(UserMapper userMapper) {
     
    8288            List<PreorderedItem> preOrderedItems = new ArrayList<>();
    8389
    84             for (PreorderedItem dtoItem : reservationDTO.getPreOrderedItems()) {
     90            for (PreorderedItemDto dtoItem : reservationDTO.getPreOrderedItems()) {
    8591                PreorderedItem item = new PreorderedItem();
    8692                item.setPreorderedItemName(dtoItem.getPreorderedItemName());
     
    8894                item.setPrice(dtoItem.getPrice());
    8995                item.setReservation(reservation);
     96
     97                Menu menu = menuService.getMenuById(dtoItem.getMenuID());
     98                item.setMenu(menu);
    9099
    91100                preOrderedItems.add(item);
Note: See TracChangeset for help on using the changeset viewer.