Changes between Version 3 and Version 4 of UseCaseImplementations


Ignore:
Timestamp:
02/03/24 22:16:55 (10 months ago)
Author:
211255
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCaseImplementations

    v3 v4  
    137137
    138138== Корисник со основни привилегии
    139 '''Корисникот има опција да листа сместувања, ресторани или превоз. Со внесување на критериуми се добива листа од истите кои одговараат на критериумите. После листањето корисникот има опција сортира
    140 по цена и име во растечки или опаѓачки редослед'''
    141139=== Листа сместувања
    142 
     140{{{#!java
     141public List<HotelDto> getRoomsAvailibilityByDateAndLocation(String hotelLocation, Date dateFrom, Date dateTo, int numberOfBeds, Boolean flexible) {
     142        long numberOfNights = Duration.between(dateFrom.toInstant(), dateTo.toInstant()).toDays();
     143        List<HotelRoomAvailable> roomsAvailible = hotelDao.getRoomsAvailibilityByDateAndLocation(hotelLocation, dateFrom, dateTo, numberOfBeds, flexible);
     144        Map<Hotels, List<HotelRoomAvailable>> roomsByHotels = roomsAvailible.stream().collect(Collectors.groupingBy(x -> x.getHotelRoom().getHotel()));
     145        List<HotelDto> hotelsList = roomsByHotels.keySet().stream()
     146                .map(x -> new HotelDto(
     147                        x.getHotelId(),
     148                        x.getHotelName(),
     149                        x.getHotelDescripiton(),
     150                        x.getHotelLocation(),
     151                        x.getHotelEDBS(),
     152                        x.getParking(),
     153                        x.getPetFriendly(),
     154                        x.getInternetAvailable(),
     155                        roomsByHotels.get(x).stream().mapToDouble(y -> y.getHotelRoom().getPrice()).min().getAsDouble() * numberOfNights,
     156                        roomsByHotels.get(x),
     157                        getReviewsForHotel(x.getHotelId()),
     158                        getReviewsForHotel(x.getHotelId()).stream().mapToDouble(Reviews::getNumStar).average().orElse(0),
     159                        getHotelImages(x.getHotelId())
     160                )).toList();
     161        return hotelsList;
     162    }
     163}}}
     164Во сервисот за да не ги користиме сите податоци од вистинската класа користиме класа HotelDto односно data transfer object. Со ова овозможуваме да за пренос на податоци меѓу backend и  frontend. Во функцијата ги листаме сите слободни соби од сите хотели со наведените криетриуми.
     165{{{#!java
     166@GetMapping(path = "/hotel/search")
     167    public List<HotelDto> searchAvailibleRooms(@RequestParam(name = "hotelLocation") String hotelLocation,
     168                                               @RequestParam(name = "dateFrom") @DateTimeFormat(pattern = "yyyy-MM-dd") Date dateFrom,
     169                                               @RequestParam(name = "dateTo") @DateTimeFormat(pattern = "yyyy-MM-dd") Date dateTo,
     170                                               @RequestParam(name = "numBeds") int numBeds,
     171                                               @RequestParam(name = "flexible") Boolean flexible)
     172    {
     173        return hotelManager.getRoomsAvailibilityByDateAndLocation(hotelLocation, dateFrom, dateTo, numBeds, flexible);
     174    }
     175}}}
     176Контролерот ги прима потребните податоци и ја повикува функцијата од сервисот.
     177----
    143178[[Image(SearchHotel.png)]]
    144179=== Листа ресторани
     
    149184
    150185== Најавен давател на услуги
    151 '''Најпрвин корисникот мора да регистрира бизнис. Откога ќе биде одобрен од страна на администраторот тогаш корисникот има опција за додавање на хотел, ресторан и транспорт'''
    152186=== Регистра бизнис
    153187[[Image(registerBusiness.png)]]
     
    156190
    157191=== Додава хотел
    158 '''При додавање на хотел, има форма во која може да се внесат детали за хотелот. За тој хотел може да се додаваат слики што би се листале при разгледување на истиот од страна на корисник'''
     192
    159193----
    160194[[Image(MyResources1.png)]]