Changes between Version 5 and Version 6 of UseCaseImplementations


Ignore:
Timestamp:
02/04/24 00:12:17 (5 months ago)
Author:
211255
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCaseImplementations

    v5 v6  
    338338----
    339339[[Image(RegisterBusinessForm.png)]]
    340 
     340{{{#!java
     341    public void createBusiness(Business business) {
     342        em.persist(business);
     343    }
     344}}}
     345Се креира нов бизнис во база
     346{{{#!java
     347    public void createBusiness(Business business, long userId) {
     348        User u = usersManager.findUserByID(userId);
     349        business.setUser(u);
     350        businessDao.createBusiness(business);
     351    }
     352}}}
     353Креирање бизнис во сервисот, каде што се наоѓа корисникот кој сака да го креира
     354{{{#!java
     355@PostMapping(path = "/business/add")
     356    public void addBusiness(@RequestBody Business business, @RequestParam(name = "userId") long userId)
     357    {
     358        businessManager.createBusiness(business, userId);
     359    }
     360}}}
     361Контролерот каде се зима цел објект бизнис од Frontend, па се повикува функцијата од сервисот
    341362=== Додава хотел
    342363
     
    347368----
    348369[[Image(myResourcesHotel1.png)]]
    349 
     370{{{#!java
     371public void createHotel(Hotels hotel) {
     372        em.persist(hotel);
     373    }
     374}}}
     375Се креира нов хотел во база
     376{{{#!java
     377public void createHotel(Hotels hotels, long userId) {
     378        User u = usersManager.findUserByID(userId);
     379        hotels.setOwner(u);
     380        hotelDao.createHotel(hotels);
     381    }
     382}}}
     383Во сервисот се наоѓа корисникот кој сака да отвори хотел, и истиот се сетира за поседител на хотелот
     384{{{#!java
     385@PostMapping(path = "/hotel/add")
     386    public void add(@RequestBody Hotels hotel, @RequestParam(name = "userId") long userId) {
     387        hotelManager.createHotel(hotel, userId);
     388    }
     389}}}
     390Хотелот се зима како цел објект преку frontend и се зима id на user и се повикува функцијата од сервисот
    350391==== Додава соба во хотел
    351 '''За секој хотел се додаваат различни типови на соби, во нашиот случај се додава соба 'Single Room' и од таков тип хотелот има 10 соби. По креирање на собата може истата да се измени, и да се види, од кој до кој датум колку слободни соби има од конкретниот тип.'''
    352 ----
    353392[[Image(MyResourcesHotelRooms.png)]]
    354393----
     
    356395----
    357396[[Image(HotelRoom.png)]]
     397{{{#!java
     398public void createRoom(HotelRoom hotelRoom) {
     399        em.persist(hotelRoom);
     400    }
     401}}}
     402Се крериа нова соба за одреден хотел
     403{{{#!java
     404public void createRoom(Long hotel, String hotelRoomDescription, String hotelRoomName, Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price, int numOfBeds) {
     405        Hotel hotel = findHotelByID(hotel);
     406        HotelRoom hotelRoom = new HotelRoom(hotel, hotelRoomDescription, hotelRoomName, kitchenAvailable, airConditioning, balcony, price, numOfBeds);
     407        hotelDao.createRoom(hotelRoom);
     408    }
     409}}}
     410Се креира нова соба во сервисот притоа што се зима id на хотелот на кој ќе се креира новата соба
     411{{{#!java
     412@PostMapping(path = "/hotel/rooms/add")
     413    public void addRoom(@RequestBody HotelRoom room,
     414                        @RequestParam(name = "hotelId") long hotelId) {
     415        hotelManager.createRoom(hotelId, room.getHotelRoomDescription(), room.getHotelRoomName(), room.getKitchenAvailable(), room.getAirConditioning(), room.getBalcony(), room.getPrice(), room.getNumOfBeds());
     416    }
     417}}}
     418Во контролерот се зима цел објект HotelRoom и се зима id на хотелот и се повикува функцијата за креирање соба од сервисот
    358419----
    359420[[Image(HotelRoomFreeDates.png)]]
     421{{{#!java
     422public void createRoomAvailible(HotelRoomAvailable hra) {
     423        em.persist(hra);
     424    }
     425}}}
     426Се креира слободна соба за хотелот во база
     427{{{#!java
     428public void createRoomAvailible(Long id, Date dateFrom, Date dateTo, int numberOfBeds) {
     429        HotelRoom hotelRoom = findRoomById(id);
     430        HotelRoomAvailable hra = new HotelRoomAvailable(hotelRoom, dateFrom, dateTo, numberOfBeds);
     431        hotelDao.createRoomAvailible(hra);
     432    }
     433}}}
     434Во сервисот се зима претходно креирана соба и се креира нов објект од тип HotelRoomAVailable кој чува за која соба од кога до кога е слободна
     435{{{#!java
     436@PostMapping(path = "/hotel/rooms/available/{id}/add")
     437    public void addRoomAvailible(@RequestBody HotelRoomAvailable hotelRoomAvailable,
     438                                 @PathVariable long id)
     439    {
     440        hotelManager.createRoomAvailible(id, hotelRoomAvailable.getDateFrom(), hotelRoomAvailable.getDateTo(), hotelRoomAvailable.getNumberOfBeds());
     441    }
     442}}}
     443Во контролерот се повикува функцијата од сервисот за креирање на соба, а прима цел објект од типот преку frontend и id за која соба станува збор
    360444----
    361445[[Image(HotelRoomEdit.png)]]
    362 ----
    363 '''Покрај додавање на соби има и опција да се листаат резервациите кои се резервирани од страна на корисници заедно со нивните детали.'''
     446{{{#!java
     447public void editRoomAvailible(long hotelRoomAvailableId, HotelRoom hotelRoom, Date dateFrom, Date dateTo, int numberOfBeds) {
     448        HotelRoomAvailable hr = findAvailibleRoomById(hotelRoomAvailableId);
     449        hr.setHotelRoom(hotelRoom);
     450        hr.setDateFrom(dateFrom);
     451        hr.setDateTo(dateTo);
     452        hr.setNumberOfBeds(numberOfBeds);
     453        hotelDao.createRoomAvailible(hr);
     454    }
     455}}}
     456Креирањето и менувањето во база е исто затоа не се наведува, а во сервисот се менуваат сите ново наведени детали за самата соба
     457{{{#!java
     458@PostMapping(path = "/hotel/rooms/available/edit")
     459    public void editRoomAvailible(@RequestBody HotelRoomAvailable hotelRoomAvailable)
     460    {
     461        hotelManager.editRoomAvailible(hotelRoomAvailable.getHotelRoomAvailableId(), hotelRoomAvailable.getHotelRoom(), hotelRoomAvailable.getDateFrom(), hotelRoomAvailable.getDateTo(), hotelRoomAvailable.getNumberOfBeds());
     462    }
     463}}}
     464Во Котнтролерот се зима цел објект за слободната соба и таа се повикува функцијата од сервисот
    364465----
    365466[[Image(HotelReservation.png)]]
    366 
     467{{{#!java
     468public List<HotelRoomReservations> findReservationByHotel(Hotels hotel) {
     469        List<HotelRoom> hotelRooms = getRoomsOfHotel(hotel);
     470        return em.createQuery("select hr from HotelRoomReservations hr where hr.hotelRoom.hotel = :hotel").setParameter("hotel", hotel).getResultList();
     471    }
     472}}}
     473Се зимаат сите резервации за одреден хотел од база
     474{{{#!java
     475public List<HotelReservationDto> findVaidReseravtionsByHotel(Long hotelId) {
     476        Hotels hotel = findHotelByID(hotelId);
     477        List<HotelRoomReservations> reservations = hotelDao.findReservationByHotel(hotel);
     478        return reservations.stream()
     479                .map(x -> new HotelReservationDto(
     480                        x.getUser(),
     481                        x.getHotelRoom(),
     482                        x.getDateFrom(),
     483                        x.getDateTo(),
     484                        x.getNumberOfBeds()
     485                )).toList();
     486    }
     487}}}
     488Исто како и претходно се користи Dto со кој се па се враќаат сите резервации за одреден хотел
     489{{{#!java
     490@GetMapping(path = "/hotel/{id}/reservations/active")
     491    public List<HotelReservationDto> getActiveReservationsForHotel(@PathVariable Long id)
     492    {
     493        return hotelManager.findVaidReseravtionsByHotel(id);
     494    }
     495}}}
     496Се праќа само id на хотелот и во сервисот се прави логиката.
    367497=== Менува хотел
    368 '''За секој хотел што го имаме може да пристапиме до неговите информации и да ги измениме по потреба.'''
    369498----
    370499[[Image(MyResourcesHotelEdit.png)]]
     500{{{#!java
     501public void editHotel(long hotelId, String hotelName, String hotelDescripiton, String hotelLocation, String hotelEDBS, Boolean parking, Boolean petFriendly, Boolean internetAvailable) {
     502        Hotels hotel = hotelDao.findHotelByID(hotelId);
     503        hotel.setHotelName(hotelName);
     504        hotel.setHotelDescripiton(hotelDescripiton);
     505        hotel.setHotelLocation(hotelLocation);
     506        hotel.setHotelEDBS(hotelEDBS);
     507        hotel.setParking(parking);
     508        hotel.setPetFriendly(petFriendly);
     509        hotel.setInternetAvailable(internetAvailable);
     510        hotelDao.editHotel(hotel);
     511    }
     512}}}
     513Зачувување во база е исто како и креирање притоа што не го покажуваме, а менувањето на хотел во сервисот ги менува сите потребни детали за истиот
     514{{{#!java
     515@PostMapping(path = "/hotel/edit")
     516    public void edit(@RequestBody Hotels hotel)
     517    {
     518        hotelManager.editHotel(hotel.getHotelId(), hotel.getHotelName(), hotel.getHotelDescripiton(), hotel.getHotelLocation(), hotel.getHotelEDBS(), hotel.getParking(), hotel.getPetFriendly(), hotel.getInternetAvailable());
     519    }
     520}}}
     521Во контролерот се зима цел објект преку frontend и истиот се препраќа во функцијата од сервисот
    371522
    372523=== Додава ресторан
    373 '''При додавање на ресторан, има форма во која може да се внесат детали за ресторанот. За него може да се додаваат слики што би се листале при разгледување на истиот од страна на корисник'''
    374524----
    375525[[Image(MyResourcesRestaurant.png)]]
    376526----
    377527[[Image(MyResourcesRestaurantAdd.png)]]
     528{{{#!java
     529public void createRestaurant(Restaurant restaurant) {
     530        em.persist(restaurant);
     531    }
     532}}}
     533Се креира ресторан во базата
     534{{{#!java
     535public void createRestaurant(Restaurant restaurant, long userId) {
     536        User u = usersManager.findUserByID(userId);
     537        Restaurant r = new Restaurant(restaurant.getRestaurantName(), restaurant.getRestaurantLocation(), restaurant.getCousineType(), restaurant.getRestaurantDescription(), restaurant.getRestaurantEdbs(), u);
     538        restaurantDao.createRestaurant(r);
     539    }
     540}}}
     541Во сервисот се наоѓа корисникот кој го креира и се става ресторанот под негово име
     542{{{#!java
     543@PostMapping(path = "/restaurant/add")
     544    public List<Restaurant> add(@RequestBody Restaurant restaurant, @RequestParam(name = "userId") long userId) {
     545
     546        restaurantManager.createRestaurant(restaurant, userId);
     547        return restaurantManager.getRestaurants();
     548    }
     549}}}
     550Во контролерот се зима ресторанот како цел објект и id на корисникот кој го креира, па се повикува функцијата за креирање ресторан од сервисот
    378551
    379552=== Менува ресторан
    380 '''Секој корисник кој поседува ресторан ја има опцијата на истиот да прави измени'''
    381 ----
    382553[[Image(RestaurantEdit.png)]]
     554{{{#!java
     555public void editRestaurant(long restaurantID, String restaurantName, String restaurantLocation, String cousineType, String restaurantDescription, String restaurantEdbs, User restaurantOwner) {
     556        Restaurant res = findRestaurantByID(restaurantID);
     557        res.setRestaurantName(restaurantName);
     558        res.setRestaurantLocation(restaurantLocation);
     559        res.setRestaurantEdbs(restaurantEdbs);
     560        res.setRestaurantDescription(restaurantDescription);
     561        res.setRestaurantOwner(restaurantOwner);
     562        res.setCousineType(cousineType);
     563        restaurantDao.createRestaurant(res);
     564    }
     565}}}
     566Исто е креирање и менување на ресторан во база, затоа не го покажуваме. Во сервисот се зима ресторанот и се менуваат сите негови детали што поседителот ги изменил
     567{{{#!java
     568@PostMapping(path = "/restaurant/edit")
     569    public List<Restaurant> edit(@RequestBody Restaurant restaurant) {
     570        restaurantManager.editRestaurant(restaurant.getRestaurantID(), restaurant.getRestaurantName(), restaurant.getRestaurantLocation(), restaurant.getCousineType(), restaurant.getRestaurantDescription(), restaurant.getRestaurantEdbs(), restaurant.getRestaurantOwner());
     571        return restaurantManager.getRestaurants();
     572    }
     573}}}
     574Во контролерот се зима целиот ресторан како објект од frontend и тој се препраќа во сервисот
    383575
    384576==== Додава мени
    385 '''За секој ресторан се додаваат различни оброци во менито. Менито може да се изменува, да се додаваат нови и да се менуваат стари ставки. За истите може да се додаваат слики кои корисниците ќе може да ги гледаат во деталите за ресторанот.'''
     577
    386578----
    387579[[Image(RestaurantMenuAdd.png)]]
    388580----
    389581[[Image(RestaurantMenu.png)]]
     582{{{#!java
     583public void addMenuToRestaurant(Menu menu) {
     584        em.persist(menu);
     585    }
     586}}}
     587Менито се зачувува во база
     588{{{#!java
     589public void addMenuToRestaurant(long restaurantId, Menu menu) {
     590        Restaurant r = findRestaurantByID(restaurantId);
     591        menu.setRestaurant(r);
     592        restaurantDao.addMenuToRestaurant(menu);
     593    }
     594}}}
     595Во сервисот се ноѓа ресторанот на кого ќе се додава нова ставка од менито и истото се додава
     596{{{#!java
     597@PostMapping(path = "/restaurant/{id}/menu/add")
     598    public void addMenu(@PathVariable(name = "id") long restaurantId, @RequestBody Menu menu) {
     599        restaurantManager.addMenuToRestaurant(restaurantId, menu);
     600    }
     601}}}
     602Во котрнолерот се зима id на ресторан и цел објект од менито, и истото се препраќа на сервисот да ја прави логиката
    390603----
    391604[[Image(RestaurantMenuEdit.png)]]
     605{{{#!java
     606public void editMenu(long menuId, String name, String ingredients, double price) {
     607        Menu menu = findMenuById(menuId);
     608        menu.setName(name);
     609        menu.setIngredients(ingredients);
     610        menu.setPrice(price);
     611        menuDao.editMenu(menu);
     612    }
     613}}}
     614Повторно дека менување и креирање е исто не се покажува тој дел. Во сервисот се зима менито според id и истото се менува според новите детали кои се внесени
     615{{{#!java
     616@PostMapping(path = "/menu/{id}/edit")
     617    public void editMenu(@PathVariable Long id,
     618                         @RequestParam String name,
     619                         @RequestParam String ingredients,
     620                         @RequestParam double price)
     621    {
     622        menuManager.editMenu(id, name, ingredients, price);
     623    }
     624}}}
     625Контролерот прима id од менито и негови нови детали кои ги предава на сервисот да ја доврши логиката
    392626
    393627==== Додава маси
    394 '''Покрај оброци се додаваат и маси кои ги поседува ресторанот. За масата се знае колку луѓе може да има на неа и истата може да се изменува и да се види достапност од-до во табелата.'''
    395 ----
    396628[[Image(RestaurantTablesAdd.png)]]
    397629----