Changeset cfc16a3 for src/main/java
- Timestamp:
- 03/03/24 10:52:49 (15 months ago)
- Branches:
- main
- Children:
- c63036a
- Parents:
- 75f5086
- Location:
- src/main/java/com/example/rezevirajmasa/demo
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
src/main/java/com/example/rezevirajmasa/demo/model/Reservation.java
r75f5086 rcfc16a3 48 48 // private BigDecimal totalAmount;//rezervacija so depozit ako e 49 49 50 @Column(name = "Pa `ymentStatus", length = 20, nullable = false, columnDefinition = "VARCHAR default 'Unpaid'")50 @Column(name = "PaymentStatus", length = 20, nullable = false, columnDefinition = "VARCHAR default 'Unpaid'") 51 51 private String paymentStatus; 52 52 -
src/main/java/com/example/rezevirajmasa/demo/repository/RestaurantRepository.java
r75f5086 rcfc16a3 4 4 import com.example.rezevirajmasa.demo.model.TableEntity; 5 5 import org.springframework.data.jpa.repository.JpaRepository; 6 import org.springframework.data.jpa.repository.Query; 6 7 7 8 import java.util.List; … … 9 10 public interface RestaurantRepository extends JpaRepository<Restaurant, Long> { 10 11 List<Restaurant> findAllByNameLike(String search); 11 List<Restaurant> findAllByCuisineTypeLike(String search); 12 List<Restaurant> findAllByCuisineTypeContaining(String search); 13 @Query("SELECT DISTINCT r.cuisineType FROM Restaurant r") 14 List<String> findAllCuisineTypes(); 15 List<Restaurant> findAllByCuisineType(String cuisine); 12 16 } -
src/main/java/com/example/rezevirajmasa/demo/repository/TableRepository.java
r75f5086 rcfc16a3 14 14 // @Query("SELECT t FROM TableEntity t JOIN FETCH t.restaurant WHERE t.id = :id") 15 15 // TableEntity findTableEntityByIdWithRestaurant(@Param("id") Long id); 16 List<TableEntity> findAllByTimeSlotsContainingAndCapacity (LocalDateTime timeSlot, Integer partySize);16 List<TableEntity> findAllByTimeSlotsContainingAndCapacityGreaterThanEqual(LocalDateTime timeSlot, Integer partySize); 17 17 } -
src/main/java/com/example/rezevirajmasa/demo/service/RestaurantService.java
r75f5086 rcfc16a3 22 22 public List<Restaurant> findRestaurantsByDateTimeAndPartySize(LocalDateTime dateTime, int partySize, String search); 23 23 public List<Restaurant> findRestaurantsBySearchParams(LocalDateTime dateTime, int partySize, String search); 24 public List<String> findALlCuisineTypes(); 25 List<Restaurant> findRestaurantsByCuisineType(String param); 24 26 } -
src/main/java/com/example/rezevirajmasa/demo/service/impl/RestaurantServiceImpl.java
r75f5086 rcfc16a3 168 168 @Override 169 169 public List<Restaurant> findRestaurantsBySearchParams(LocalDateTime dateTime, int partySize, String search) { 170 if (!search.isEmpty()) { 171 List<Restaurant> restaurantList = null; 172 if (!restaurantRepository.findAllByNameLike(search).isEmpty()) { 173 restaurantList = restaurantRepository.findAllByNameLike(search); 174 } else { 175 restaurantList = restaurantRepository.findAllByCuisineTypeLike(search); 170 if (search == null || search.isEmpty()) { 171 List<TableEntity> tableEntities = tableRepository.findAllByTimeSlotsContainingAndCapacityGreaterThanEqual(dateTime, partySize); 172 return tableEntities.stream() 173 .map(TableEntity::getRestaurant) 174 .distinct() 175 .collect(Collectors.toList()); 176 } else { 177 List<Restaurant> restaurantList = restaurantRepository.findAllByNameLike(search); 178 if (restaurantList.isEmpty()) { 179 restaurantList = restaurantRepository.findAllByCuisineTypeContaining(search); 176 180 } 177 181 return restaurantList; 178 } else {179 List<TableEntity> tableEntities = tableRepository.findAllByTimeSlotsContainingAndCapacity(dateTime, partySize);180 return tableEntities.stream()181 .map(TableEntity::getRestaurant)182 .distinct() // To avoid duplicates in case one restaurant has multiple tables183 .collect(Collectors.toList());184 182 } 185 183 } 184 185 @Override 186 public List<String> findALlCuisineTypes() { 187 return restaurantRepository.findAllCuisineTypes(); 188 } 189 190 @Override 191 public List<Restaurant> findRestaurantsByCuisineType(String param) { 192 return restaurantRepository.findAllByCuisineType(param); 193 } 186 194 } -
src/main/java/com/example/rezevirajmasa/demo/web/rest/testController.java
r75f5086 rcfc16a3 17 17 import java.util.List; 18 18 import java.util.Map; 19 import java.util.Optional; 19 20 20 21 @CrossOrigin(origins = "http://localhost:3000/") … … 52 53 @PostMapping("/api/search") 53 54 public ResponseEntity<List<Restaurant>> searchRestaurants(@RequestBody Map<String, Object> requestData) { 54 String dateTime = (String) requestData.get("dateTime");55 Integer partySize = (Integer) requestData.get("partySize");56 String search = (String) requestData.get("search");55 Optional<String> dateTimeOptional = Optional.ofNullable((String) requestData.get("dateTime")); 56 int partySize = Integer.parseInt(requestData.get("partySize").toString()); 57 Optional<String> searchOptional = Optional.ofNullable((String) requestData.get("search")); 57 58 58 // Now proceed with parsing dateTime and performing the search based on the received parameters 59 String dateTime = dateTimeOptional.orElse(null); 60 String search = searchOptional.orElse(null); 59 61 60 62 LocalDateTime parsedDateTime = null; … … 67 69 68 70 return new ResponseEntity<List<Restaurant>>(filteredRestaurants, HttpStatus.OK); 71 } 72 73 @PostMapping("/api/search/shortcut/{param}") 74 public ResponseEntity<List<Restaurant>> searchByCuisineTypeShortcut(@PathVariable String param) { 75 List<Restaurant> filteredRestaurants; 76 if(param != null && !param.isEmpty()) { 77 filteredRestaurants = restaurantService.findRestaurantsByCuisineType(param); 78 } else { 79 filteredRestaurants = restaurantService.listall(); 80 } 81 return new ResponseEntity<List<Restaurant>>(filteredRestaurants, HttpStatus.OK); 82 } 83 84 @GetMapping("/api/cuisineTypes") 85 public ResponseEntity<List<String>> getAllCuisineTypes() { 86 List<String> cuisineTypes = restaurantService.findALlCuisineTypes(); 87 return new ResponseEntity<>(cuisineTypes, HttpStatus.OK); 69 88 } 70 89
Note:
See TracChangeset
for help on using the changeset viewer.