- Timestamp:
- 05/07/25 18:34:01 (10 days ago)
- Branches:
- main
- Parents:
- b67dfd3
- Location:
- src/main/java/com/example/rezevirajmasa/demo
- Files:
-
- 3 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
src/main/java/com/example/rezevirajmasa/demo/dto/ReservationDTO.java
rb67dfd3 re48199a 4 4 import com.example.rezevirajmasa.demo.model.Reservation; 5 5 import com.example.rezevirajmasa.demo.model.Restaurant; 6 import lombok.Setter; 6 7 7 8 import java.math.BigDecimal; 8 9 import java.time.LocalDateTime; 9 10 import java.util.List; 11 import java.util.stream.Collectors; 10 12 13 @Setter 11 14 public class ReservationDTO { 12 15 private Long reservationID; … … 21 24 private String specialRequests; 22 25 private String paymentStatus; 23 private List<PreorderedItem > preOrderedItems;26 private List<PreorderedItemDto> preOrderedItems; 24 27 25 28 public ReservationDTO() { … … 29 32 LocalDateTime reservationDateTime, LocalDateTime checkInTime, Long restaurantId, 30 33 int partySize, String reservationStatus, String specialRequests, 31 String paymentStatus, List<PreorderedItem > preOrderedItems) {34 String paymentStatus, List<PreorderedItemDto> preOrderedItems) { 32 35 this.reservationID = reservationID; 33 36 this.userEmail = userEmail; … … 56 59 this.specialRequests = reservation.getSpecialRequests(); 57 60 this.paymentStatus = reservation.getPaymentStatus(); 58 this.preOrderedItems = reservation.getPreOrderedItems(); 61 62 this.preOrderedItems = reservation.getPreOrderedItems().stream() 63 .map(preorderedItem -> new PreorderedItemDto( 64 preorderedItem.getPreorderedItemName(), 65 preorderedItem.getQuantity(), 66 preorderedItem.getPrice(), 67 preorderedItem.getMenu().getMenuID())) 68 .collect(Collectors.toList()); 59 69 } 60 70 … … 63 73 } 64 74 65 public void setReservationID(Long reservationID) {66 this.reservationID = reservationID;67 }68 69 75 public String getUserEmail() { 70 76 return userEmail; 71 }72 73 public void setUserEmail(String userEmail) {74 this.userEmail = userEmail;75 77 } 76 78 … … 79 81 } 80 82 81 public void setRating(BigDecimal rating) {82 this.rating = rating;83 }84 85 83 public Long getTableNumber() { 86 84 return tableNumber; 87 }88 89 public void setTableNumber(Long tableNumber) {90 this.tableNumber = tableNumber;91 85 } 92 86 … … 95 89 } 96 90 97 public void setReservationDateTime(LocalDateTime reservationDateTime) {98 this.reservationDateTime = reservationDateTime;99 }100 101 91 public LocalDateTime getCheckInTime() { 102 92 return checkInTime; 103 }104 105 public void setCheckInTime(LocalDateTime checkInTime) {106 this.checkInTime = checkInTime;107 93 } 108 94 … … 111 97 } 112 98 113 public void setRestaurantId(Long restaurantId) {114 this.restaurantId = restaurantId;115 }116 117 99 public int getPartySize() { 118 100 return partySize; 119 }120 121 public void setPartySize(int partySize) {122 this.partySize = partySize;123 101 } 124 102 … … 127 105 } 128 106 129 public void setReservationStatus(String reservationStatus) {130 this.reservationStatus = reservationStatus;131 }132 133 107 public String getSpecialRequests() { 134 108 return specialRequests; 135 }136 137 public void setSpecialRequests(String specialRequests) {138 this.specialRequests = specialRequests;139 109 } 140 110 … … 143 113 } 144 114 145 public void setPaymentStatus(String paymentStatus) { 146 this.paymentStatus = paymentStatus; 147 } 148 149 public List<PreorderedItem> getPreOrderedItems() { 115 public List<PreorderedItemDto> getPreOrderedItems() { 150 116 return preOrderedItems; 151 117 } 152 118 153 public void setPreOrderedItems(List<PreorderedItem> preOrderedItems) {154 this.preOrderedItems = preOrderedItems;155 }156 119 } -
src/main/java/com/example/rezevirajmasa/demo/model/Menu.java
rb67dfd3 re48199a 38 38 private List<MenuTag> tags = new ArrayList<>(); 39 39 40 @OneToMany(mappedBy = "menu", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY) 41 private List<PriceHistory> priceHistoryList = new ArrayList<>(); 42 40 43 public Menu() { 41 44 } -
src/main/java/com/example/rezevirajmasa/demo/model/PreorderedItem.java
rb67dfd3 re48199a 26 26 private Integer quantity; 27 27 28 @Column(name = "price_at_order", precision = 8, scale = 2, nullable = false) 28 29 private BigDecimal price; 29 30 … … 32 33 @JoinColumn(name = "reservation_id", nullable = false) 33 34 private Reservation reservation; 35 36 @ManyToOne 37 @JoinColumn(name = "menu_id", nullable = false) 38 private Menu menu; 34 39 } -
src/main/java/com/example/rezevirajmasa/demo/model/Reservation.java
rb67dfd3 re48199a 1 1 package com.example.rezevirajmasa.demo.model; 2 2 3 import com.example.rezevirajmasa.demo.dto.PreorderedItemDto; 3 4 import com.fasterxml.jackson.annotation.JsonBackReference; 4 5 import com.fasterxml.jackson.annotation.JsonManagedReference; -
src/main/java/com/example/rezevirajmasa/demo/service/MenuService.java
rb67dfd3 re48199a 3 3 import com.example.rezevirajmasa.demo.model.Menu; 4 4 5 import java.math.BigDecimal; 5 6 import java.util.List; 6 7 7 8 public interface MenuService { 8 9 public List<Menu> getMenuByRestaurantId(Long restaurantId); 10 public void updateMenuPrice(Long menuId, BigDecimal newPrice); 11 public Menu getMenuById(Long id); 9 12 } -
src/main/java/com/example/rezevirajmasa/demo/service/impl/MenuServiceImpl.java
rb67dfd3 re48199a 2 2 3 3 import com.example.rezevirajmasa.demo.model.Menu; 4 import com.example.rezevirajmasa.demo.model.PriceHistory; 4 5 import com.example.rezevirajmasa.demo.model.Restaurant; 5 6 import com.example.rezevirajmasa.demo.repository.MenuRepository; 7 import com.example.rezevirajmasa.demo.repository.PriceHistoryRepository; 6 8 import com.example.rezevirajmasa.demo.service.MenuService; 7 9 import com.example.rezevirajmasa.demo.service.RestaurantService; 10 import org.openqa.selenium.InvalidArgumentException; 8 11 import org.springframework.stereotype.Service; 9 12 13 import java.math.BigDecimal; 14 import java.time.LocalDateTime; 10 15 import java.util.List; 11 16 … … 15 20 private final RestaurantService restaurantService; 16 21 17 public MenuServiceImpl(MenuRepository menuRepository, RestaurantService restaurantService) { 22 private final PriceHistoryRepository priceHistoryRepository; 23 24 public MenuServiceImpl(MenuRepository menuRepository, RestaurantService restaurantService, PriceHistoryRepository priceHistoryRepository) { 18 25 this.menuRepository = menuRepository; 19 26 this.restaurantService = restaurantService; 27 this.priceHistoryRepository = priceHistoryRepository; 20 28 } 21 29 … … 25 33 return menuRepository.findAllByRestaurant(restaurant); 26 34 } 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 } 27 55 } -
src/main/java/com/example/rezevirajmasa/demo/service/impl/ReservationImpl.java
rb67dfd3 re48199a 1 1 package com.example.rezevirajmasa.demo.service.impl; 2 2 3 import com.example.rezevirajmasa.demo.dto.PreorderedItemDto; 3 4 import com.example.rezevirajmasa.demo.dto.ReservationDTO; 4 5 import com.example.rezevirajmasa.demo.mappers.UserMapper; … … 8 9 import com.example.rezevirajmasa.demo.repository.ReservationRepository; 9 10 import com.example.rezevirajmasa.demo.repository.TableRepository; 11 import com.example.rezevirajmasa.demo.service.MenuService; 10 12 import com.example.rezevirajmasa.demo.service.ReservationHistoryService; 11 13 import com.example.rezevirajmasa.demo.service.ReservationService; 12 14 import com.example.rezevirajmasa.demo.service.UserService; 13 15 import org.springframework.beans.factory.annotation.Autowired; 16 import org.springframework.context.annotation.Lazy; 14 17 import org.springframework.stereotype.Service; 15 18 … … 31 34 @Autowired 32 35 private ReservationRepository reservationRepository; 36 @Autowired 37 @Lazy 38 private MenuService menuService; 33 39 34 40 public ReservationImpl(UserMapper userMapper) { … … 82 88 List<PreorderedItem> preOrderedItems = new ArrayList<>(); 83 89 84 for (PreorderedItem dtoItem : reservationDTO.getPreOrderedItems()) {90 for (PreorderedItemDto dtoItem : reservationDTO.getPreOrderedItems()) { 85 91 PreorderedItem item = new PreorderedItem(); 86 92 item.setPreorderedItemName(dtoItem.getPreorderedItemName()); … … 88 94 item.setPrice(dtoItem.getPrice()); 89 95 item.setReservation(reservation); 96 97 Menu menu = menuService.getMenuById(dtoItem.getMenuID()); 98 item.setMenu(menu); 90 99 91 100 preOrderedItems.add(item); -
src/main/java/com/example/rezevirajmasa/demo/web/rest/testController.java
rb67dfd3 re48199a 64 64 @GetMapping("/api/restaurants/{restaurantId}") 65 65 public ResponseEntity<RestaurantDTO> getRestaurantById(@PathVariable Long restaurantId) { 66 return new ResponseEntity<RestaurantDTO>(restaurantService.findById(restaurantId), HttpStatus.OK); 66 RestaurantDTO restaurantDTO = restaurantService.findById(restaurantId); 67 return new ResponseEntity<>(restaurantDTO, HttpStatus.OK); 67 68 } 68 69
Note:
See TracChangeset
for help on using the changeset viewer.