Ignore:
Timestamp:
02/28/24 18:44:19 (15 months ago)
Author:
Aleksandar Panovski <apano77@…>
Branches:
main
Children:
75f5086
Parents:
d24f17c
Message:

RetaurantServiceImpl problemi
isAvailable od tableEntity...

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

Legend:

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

    rd24f17c r65b6638  
    22
    33import com.example.rezevirajmasa.demo.model.Restaurant;
     4import com.example.rezevirajmasa.demo.model.TableEntity;
    45
    56import java.math.BigDecimal;
    67import java.time.LocalDate;
     8import java.time.LocalDateTime;
    79import java.util.List;
    810
     
    1820    List<Restaurant> listRestaurantBy(String search);
    1921    List<Restaurant> getRestaurantsWithAvailableTimeSlotsForToday();
     22    public List<Restaurant> findRestaurantsByDateTimeAndPartySize(LocalDateTime dateTime, int partySize, String search);
    2023}
  • src/main/java/com/example/rezevirajmasa/demo/service/impl/RestaurantServiceImpl.java

    rd24f17c r65b6638  
    143143        return restaurantsWithAvailableTimeSlots;
    144144    }
     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    }
    145167}
Note: See TracChangeset for help on using the changeset viewer.