- Timestamp:
- 02/28/24 18:44:19 (15 months ago)
- Branches:
- main
- Children:
- 75f5086
- Parents:
- d24f17c
- Location:
- src/main/java/com/example/rezevirajmasa/demo
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
src/main/java/com/example/rezevirajmasa/demo/repository/RestaurantRepository.java
rd24f17c r65b6638 8 8 9 9 public interface RestaurantRepository extends JpaRepository<Restaurant, Long> { 10 11 10 12 } -
src/main/java/com/example/rezevirajmasa/demo/service/RestaurantService.java
rd24f17c r65b6638 2 2 3 3 import com.example.rezevirajmasa.demo.model.Restaurant; 4 import com.example.rezevirajmasa.demo.model.TableEntity; 4 5 5 6 import java.math.BigDecimal; 6 7 import java.time.LocalDate; 8 import java.time.LocalDateTime; 7 9 import java.util.List; 8 10 … … 18 20 List<Restaurant> listRestaurantBy(String search); 19 21 List<Restaurant> getRestaurantsWithAvailableTimeSlotsForToday(); 22 public List<Restaurant> findRestaurantsByDateTimeAndPartySize(LocalDateTime dateTime, int partySize, String search); 20 23 } -
src/main/java/com/example/rezevirajmasa/demo/service/impl/RestaurantServiceImpl.java
rd24f17c r65b6638 143 143 return restaurantsWithAvailableTimeSlots; 144 144 } 145 146 @Override 147 public List<Restaurant> findRestaurantsByDateTimeAndPartySize(LocalDateTime dateTime, int partySize, String search) { 148 List<Restaurant> allRestaurants = restaurantRepository.findAll(); 149 return allRestaurants.stream() 150 .filter(restaurant -> hasAvailableTable(restaurant, dateTime, partySize)) 151 .filter(restaurant -> isMatch(restaurant, search)) 152 .collect(Collectors.toList()); 153 } 154 155 private boolean hasAvailableTable(Restaurant restaurant, LocalDateTime dateTime, int partySize) { 156 for (TableEntity table : restaurant.getTablesList()) { 157 if (table.isAvailable(dateTime) && table.getCapacity() >= partySize) { 158 return true; 159 } 160 } 161 return false; 162 } 163 164 private boolean isMatch(Restaurant restaurant, String name) { 165 return name == null || name.isEmpty() || restaurant.getName().contains(name); 166 } 145 167 } -
src/main/java/com/example/rezevirajmasa/demo/web/rest/testController.java
rd24f17c r65b6638 6 6 import com.example.rezevirajmasa.demo.service.RestaurantService; 7 7 import com.example.rezevirajmasa.demo.service.TableService; 8 import jdk.jfr.consumer.RecordingStream; 8 9 import org.apache.coyote.Response; 10 import org.springframework.format.annotation.DateTimeFormat; 9 11 import org.springframework.http.HttpStatus; 10 12 import org.springframework.http.ResponseEntity; … … 12 14 13 15 import java.time.LocalDateTime; 16 import java.time.format.DateTimeFormatter; 14 17 import java.util.List; 18 import java.util.Map; 15 19 16 20 @CrossOrigin(origins = "http://localhost:3000/") … … 34 38 } 35 39 40 //restaurants 41 36 42 @RequestMapping("/api/restaurants") 37 43 public ResponseEntity<List<Restaurant>> getAllRestaurants() { … … 42 48 public ResponseEntity<Restaurant> getRestaurantById(@PathVariable Long restaurantId) { 43 49 return new ResponseEntity<Restaurant>(restaurantService.findById(restaurantId), HttpStatus.OK); 50 } 51 52 @PostMapping("/api/search") 53 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"); 57 58 // Now proceed with parsing dateTime and performing the search based on the received parameters 59 60 LocalDateTime parsedDateTime = null; 61 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); 62 if (dateTime != null) { 63 parsedDateTime = LocalDateTime.parse(dateTime, formatter); 64 } 65 66 List<Restaurant> filteredRestaurants = restaurantService.findRestaurantsByDateTimeAndPartySize(parsedDateTime, partySize, search); 67 68 return new ResponseEntity<List<Restaurant>>(filteredRestaurants, HttpStatus.OK); 44 69 } 45 70
Note:
See TracChangeset
for help on using the changeset viewer.