Changes between Version 8 and Version 9 of UseCaseImplementations


Ignore:
Timestamp:
02/04/24 01:39:27 (10 months ago)
Author:
211255
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCaseImplementations

    v8 v9  
    189189    }
    190190}}}
    191 Ова е кверито од кое се зимаат хотелите по криетриум, каде што првиот дел е додека флексибилноста од 3 дена има вредност true, па тогаш се листаат +/- (1,2,3) дена од бараните критериуми, а доколку има вредност false тогаш се листаат според точните дати кои се внесени.
     191Ова е кверито од кое се земаат хотелите по криетриум, каде што првиот дел е додека флексибилноста од 3 дена има вредност true, па тогаш се листаат +/- (1,2,3) дена од бараните критериуми, а доколку има вредност false тогаш се листаат според точните дати кои се внесени.
    192192{{{#!java
    193193public List<HotelDto> getRoomsAvailibilityByDateAndLocation(String hotelLocation, Date dateFrom, Date dateTo, int numberOfBeds, Boolean flexible) {
     
    319319    }
    320320}}}
    321 Исто како и останатите имаме Dto и ги листаме сите слобдони транспорти со наведените критериуми. Притоа што доколку се внесе некој град кој е попатен во некоја рута се листа и таа со тоа што се зима главната рута на тој град.
     321Исто како и останатите имаме Dto и ги листаме сите слобдони транспорти со наведените критериуми. Притоа што доколку се внесе некој град кој е попатен во некоја рута се листа и таа со тоа што се зема главната рута на тој град.
    322322{{{#!comment
    323323Не знам дали вака види
     
    359359    }
    360360}}}
    361 Контролерот каде се зима цел објект бизнис од Frontend, па се повикува функцијата од сервисот
     361Контролерот каде се зема цел објект бизнис од Frontend, па се повикува функцијата од сервисот
    362362=== Додава хотел
    363363
     
    388388    }
    389389}}}
    390 Хотелот се зима како цел објект преку frontend и се зима id на user и се повикува функцијата од сервисот
     390Хотелот се зема како цел објект преку frontend и се зема id на user и се повикува функцијата од сервисот
    391391==== Додава соба во хотел
    392392[[Image(MyResourcesHotelRooms.png)]]
     
    408408    }
    409409}}}
    410 Се креира нова соба во сервисот притоа што се зима id на хотелот на кој ќе се креира новата соба
     410Се креира нова соба во сервисот притоа што се зема id на хотелот на кој ќе се креира новата соба
    411411{{{#!java
    412412@PostMapping(path = "/hotel/rooms/add")
     
    416416    }
    417417}}}
    418 Во контролерот се зима цел објект HotelRoom и се зима id на хотелот и се повикува функцијата за креирање соба од сервисот
     418Во контролерот се зема цел објект HotelRoom и се зема id на хотелот и се повикува функцијата за креирање соба од сервисот
    419419----
    420420[[Image(HotelRoomFreeDates.png)]]
     
    432432    }
    433433}}}
    434 Во сервисот се зима претходно креирана соба и се креира нов објект од тип HotelRoomAVailable кој чува за која соба од кога до кога е слободна
     434Во сервисот се зема претходно креирана соба и се креира нов објект од тип HotelRoomAVailable кој чува за која соба од кога до кога е слободна
    435435{{{#!java
    436436@PostMapping(path = "/hotel/rooms/available/{id}/add")
     
    462462    }
    463463}}}
    464 Во Котнтролерот се зима цел објект за слободната соба и таа се повикува функцијата од сервисот
     464Во Котнтролерот се зема цел објект за слободната соба и таа се повикува функцијата од сервисот
    465465----
    466466[[Image(HotelReservation.png)]]
     
    471471    }
    472472}}}
    473 Се зимаат сите резервации за одреден хотел од база
     473Се земаат сите резервации за одреден хотел од база
    474474{{{#!java
    475475public List<HotelReservationDto> findVaidReseravtionsByHotel(Long hotelId) {
     
    519519    }
    520520}}}
    521 Во контролерот се зима цел објект преку frontend и истиот се препраќа во функцијата од сервисот
     521Во контролерот се зема цел објект преку frontend и истиот се препраќа во функцијата од сервисот
    522522
    523523=== Додава ресторан
     
    547547    }
    548548}}}
    549 Во контролерот се зима ресторанот како цел објект и id на корисникот кој го креира, па се повикува функцијата за креирање ресторан од сервисот
     549Во контролерот се зема ресторанот како цел објект и id на корисникот кој го креира, па се повикува функцијата за креирање ресторан од сервисот
    550550
    551551=== Менува ресторан
     
    563563    }
    564564}}}
    565 Исто е креирање и менување на ресторан во база, затоа не го покажуваме. Во сервисот се зима ресторанот и се менуваат сите негови детали што поседителот ги изменил
     565Исто е креирање и менување на ресторан во база, затоа не го покажуваме. Во сервисот се зема ресторанот и се менуваат сите негови детали што поседителот ги изменил
    566566{{{#!java
    567567@PostMapping(path = "/restaurant/edit")
     
    571571    }
    572572}}}
    573 Во контролерот се зима целиот ресторан како објект од frontend и тој се препраќа во сервисот
     573Во контролерот се зема целиот ресторан како објект од frontend и тој се препраќа во сервисот
    574574
    575575==== Додава мени
     
    599599    }
    600600}}}
    601 Во котрнолерот се зима id на ресторан и цел објект од менито, и истото се препраќа на сервисот да ја прави логиката
     601Во котрнолерот се зема id на ресторан и цел објект од менито, и истото се препраќа на сервисот да ја прави логиката
    602602----
    603603[[Image(RestaurantMenuEdit.png)]]
     
    611611    }
    612612}}}
    613 Повторно дека менување и креирање е исто не се покажува тој дел. Во сервисот се зима менито според id и истото се менува според новите детали кои се внесени
     613Повторно дека менување и креирање е исто не се покажува тој дел. Во сервисот се зема менито според id и истото се менува според новите детали кои се внесени
    614614{{{#!java
    615615@PostMapping(path = "/menu/{id}/edit")
     
    641641    }
    642642}}}
    643 Во сервисот се зима ресторанот на кој ќе се додава новата маса, за неа се внесуваат број на седишта
     643Во сервисот се зема ресторанот на кој ќе се додава новата маса, за неа се внесуваат број на седишта
    644644{{{#!java
    645645@PostMapping(path = "/restaurant/table/{id}/add")
     
    648648    }
    649649}}}
    650 Се зима id на ресторанот и бројот за колку луѓе е наменета масата, па се повикува функцијата од сервисот за понатамошна логика
     650Се зема id на ресторанот и бројот за колку луѓе е наменета масата, па се повикува функцијата од сервисот за понатамошна логика
    651651----
    652652[[Image(RestaurantTableAvailable.png)]]
     
    664664    }
    665665}}}
    666 Во сервисот се зима масата преку id и се прави нов објект од расположливост на маси и се сетира од кога до кога и колку такви маси има на располагање
     666Во сервисот се зема масата преку id и се прави нов објект од расположливост на маси и се сетира од кога до кога и колку такви маси има на располагање
    667667{{{#!java
    668668@PostMapping(path = "/restaurant/table/{id}/available/add")
     
    672672    }
    673673}}}
    674 За додавање на расположливост во контролерот се зима објект од RestaurantsAvailable и се зима id од која маса
     674За додавање на расположливост во контролерот се зема објект од RestaurantsAvailable и се зема id од која маса
    675675----
    676676[[Image(RestaurantTableEdit.png)]]
     
    690690    }
    691691}}}
    692 Се зима цел објект од масата и за истата се пропушта на сервисот за логиката
     692Се зема цел објект од масата и за истата се пропушта на сервисот за логиката
    693693
    694694----
     
    720720    }
    721721}}}
    722 Преку контролерот се зимаат податоци за id на на ресторанот и потоа се повикува функцијата од сервисот за резервација.
     722Преку контролерот се земаат податоци за id на на ресторанот и потоа се повикува функцијата од сервисот за резервација.
    723723
    724724=== Додава транспорт
    725 '''При додавање на транспорт, има форма во која може да се внесат детали за транпосртот.'''
    726 ----
    727725[[Image(MyResourcesTransport.png)]]
    728726----
     
    730728----
    731729[[Image(MyResourcesTransport1.png)]]
    732 ----
    733 '''Истиот тој транспорт може да се изменува по потреба'''
     730{{{#!java
     731public void createTransport(Transport t) {
     732        em.persist(t);
     733    }
     734}}}
     735Зачувување на траспорт во база
     736{{{#!java
     737public void createTransport(String transportName, String carBrand, String carType, int carManufacturedYear, int noPassengers, int noBags, long EMBG, Long userId, String carPlate) {
     738        User u = usersManager.findUserByID(userId);
     739        Transport t = new Transport(transportName,carBrand,carType,carManufacturedYear,noPassengers,noBags,EMBG,u,carPlate);
     740        transportDao.createTransport(t);
     741    }
     742}}}
     743Во сервисот се зема корисникот преку id и притоа се креира нов транпсорт на негово име
     744{{{#!java
     745@PostMapping(path = "/transport/add/{userId}")
     746    public void add(@RequestBody Transport transport,
     747                    @PathVariable Long userId) {
     748        transportManager.createTransport(transport.getTransportName(), transport.getCarBrand(), transport.getCarType(), transport.getCarManufacturedYear(), transport.getNoPassengers(), transport.getNoBags(), transport.getEMBG(), userId, transport.getCarPlate());
     749    }
     750}}}
     751Преку контролерот се земаат податоци за id на user и се зема цел објект кој се препраќа во сервисот
    734752----
    735753[[Image(transportEdit.png)]]
    736 
     754{{{#!java
     755public void editTransport(long transportID, String transportName, String carBrand, String carType, int carManufacturedYear, int noPassengers, int noBags, long EMBG, User owner, String carPlate) {
     756        Transport t=getTransportById(transportID);
     757        t.setTransportName(transportName);
     758        t.setCarBrand(carBrand);
     759        t.setCarType(carType);
     760        t.setCarManufacturedYear(carManufacturedYear);
     761        t.setNoPassengers(noPassengers);
     762        t.setNoBags(noBags);
     763        t.setEMBG(EMBG);
     764        t.setOwner(owner);
     765        t.setCarPlate(carPlate);
     766        transportDao.editTransport(t);
     767    }
     768}}}
     769Во сервисот се зема транспортот кој се менува и се менуаат неговите детали. Зачувување во база е исто како и во креирање
     770{{{#!java
     771@PostMapping(path = "/transport/edit")
     772    public void edit(@RequestBody Transport transport) {
     773        transportManager.editTransport(transport.getTransportID(), transport.getTransportName(), transport.getCarBrand(), transport.getCarType(), transport.getCarManufacturedYear(), transport.getNoPassengers(), transport.getNoBags(), transport.getEMBG(), transport.getOwner(), transport.getCarPlate());
     774    }
     775}}}
     776Во контролерот се зема цел објект на транспорт и за истиот се повикува функција од сервис
    737777==== Додава рути
    738 '''Секој транпосрт може да нуди различни рути, од кој до кој град патува патува и попатните градови низ кој поминува. За истите се додава и цена на чинење за секоја релација'''
    739 ----
     778////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     779{{{#!comment
     780ТЕБА ДА СЕ СТАВИ КОД ЗА ОВОЈ ДЕЛ ДОДАВАЊЕ РУТА
     781}}}
    740782[[Image(RouteAdd.png)]]
    741783----
     
    743785----
    744786[[Image(route.png)]]
    745 ----
    746 '''Покрај додавањето има опција и да се прегледуваат резервациите кои ги има одреден транспорт'''
     787
    747788----
    748789[[Image(RouteReservation.png)]]
    749 
     790{{{#!java
     791public List<TransportReservation> getTransportReservations() {
     792        return em.createQuery("from TransportReservation order by reservationID").getResultList();
     793    }
     794}}}
     795Листање на резервациите на одреден транспорт
     796{{{#!java
     797public List<TransportReservation> findTransportReservationByTransportId(long reservationID) {
     798        Transport t = getTransportById(reservationID);
     799        return transportDao.findTransportReservationByTransportId(t);
     800    }
     801}}}
     802Се листаат сите резервации на одреден транспорт со одреден id
     803{{{#!java
     804@GetMapping(path = "/transport/{id}/reservations/active")
     805    public List<TransportReservation> showTransportReservationsByTransport(@PathVariable Long id) {
     806        return transportManager.findTransportReservationByTransportId(id);
     807    }
     808}}}
     809Преку контролерот се зема id на траспортот и се предава на котрнолерот
    750810== Најавен администратор
    751 '''Администраторот има улога да ги управува профилите, односно да ги одборува, а истото важи и за фирмите.'''
    752811=== Управување со профили
    753812[[Image(profiles4.png)]]
     
    757816
    758817== Најавен корисник на услуги
    759 '''Откога корисникот ќе се реши за некоја понуда, тој може да ги види деталите за истата. При резервација на услугата се добива порака за успешна резервација. '''
    760818=== Резеревација ресторан
    761819[[Image(RestaurantDetails1-min.png)]]
     
    764822----
    765823[[Image(RestaurantReservation.png)]]
    766 
     824{{{#!java
     825public void createReservation(RestaurantReservations reservations) {
     826        em.persist(reservations);
     827    }
     828}}}
     829Се зачувува резервацијата во база
     830{{{#!java
     831public void createReservation(Long userId, Long restaurantTableId, Long restaurantAvailibleId, String hourFrom, String hourTo, Date date) {
     832        User u = usersManager.findUserByID(userId);
     833        RestaurantsTable restaurantTable = restaurantDao.findTableById(restaurantTableId);
     834        RestaurantsAvailible restaurantsAvailible = restaurantDao.findAvailableReservationByID(restaurantAvailibleId);
     835        Date dateFrom = date;
     836        Date dateTo = Date.from(date.toInstant());
     837        String[] splittedFrom = hourFrom.split(":");
     838        String[] splittedTo = hourTo.split(":");
     839        dateFrom.setHours(Integer.parseInt(splittedFrom[0]));
     840        dateFrom.setMinutes(Integer.parseInt(splittedFrom[1]));
     841        dateTo.setHours(Integer.parseInt(splittedTo[0]));
     842        dateTo.setMinutes(Integer.parseInt(splittedTo[1]));
     843        RestaurantReservations reservation = new RestaurantReservations(restaurantTable, dateFrom, dateTo, restaurantTable.getNoSeats(), u);
     844        restaurantDao.createReservation(reservation);
     845        editTableAvailability(restaurantsAvailible, restaurantTable, dateFrom, dateTo);
     846    }
     847}}}
     848Во сервисот се зема id на user, на масата и на слободната маса. Времето од-до повторно се зема како текст и тој се средува тука. Притоа што повторно со тоа што има одреден број на слободни маси со резервација тоа се средува на одреден начин во логиката editTableAvailability
     849{{{#!java
     850public void editTableAvailability(RestaurantsAvailible restaurantsAvailible, RestaurantsTable table, Date dateFrom, Date dateTo) {
     851        restaurantsAvailible.setNumTables(restaurantsAvailible.getNumTables() - 1);
     852        RestaurantsAvailible ra1 = new RestaurantsAvailible(table, restaurantsAvailible.getHourFrom(), dateFrom, 1);
     853        RestaurantsAvailible ra2 = new RestaurantsAvailible(table, dateTo, restaurantsAvailible.getHourTo(), 1);
     854
     855        restaurantDao.saveTableAvailable(ra1);
     856        restaurantDao.saveTableAvailable(ra2);
     857    }
     858}}}
     859Логиката е тоа што се намалува една од x слободни маси и се додаваат 2 нови една од почеток на слободната маса до почеток на резервираната и уште една од крај на резервианата до крај на слободната.
     860{{{#!java
     861@PostMapping(path = "/restaurant/reserve")
     862    public void reserveRestaurantTable(@RequestParam(name = "restaurantTableId") Long restaurantTableId,
     863                                       @RequestParam(name = "userId") Long userId,
     864                                       @RequestParam(name = "restaurantAvailibleId") Long restaurantAvailibleId,
     865                                       @RequestParam(name = "hourFrom") String hourFrom,
     866                                       @RequestParam(name = "hourTo") String hourTo,
     867                                       @RequestParam(name = "date") @DateTimeFormat(pattern = "yyyy-MM-dd") Date date) {
     868
     869
     870        restaurantManager.createReservation(userId, restaurantTableId, restaurantAvailibleId, hourFrom, hourTo, date);
     871    }
     872}}}
     873Во контролерот се примаат потребните информации за да се направи резервација и тоа од кој корисник, на која маса и на која слободна маса.
    767874=== Резервира транспорт
    768875[[Image(TransportDetails.png)]]
     
    771878----
    772879[[Image(TransportReservation.png)]]
    773 
     880{{{#!java
     881public void createTransportReservation(TransportReservation transportReservation) {
     882        em.persist(transportReservation);
     883    }
     884}}}
     885Се зачувува резервацијата во база
     886{{{#!java
     887public void createTransportReservation(Long transportRouteId, Long userId, int noSeats) {
     888        TransportRoute transportRoute = transportDao.findTransportRouteById(transportRouteId);
     889        User u = usersManager.findUserByID(userId);
     890        TransportReservation transportReservation = new TransportReservation(transportRoute, noSeats, u);
     891        transportDao.createTransportReservation(transportReservation);
     892    }
     893}}}
     894Во во сервисот се зима транпосрт рутата се зима користникот и се прави резервација на транспортот
     895{{{#!java
     896@PostMapping(path = "/transport/reserve")
     897    public void reserveTransport(@RequestParam(name = "transportRouteId") Long transportRouteId,
     898                                 @RequestParam(name = "userId") Long userId,
     899                                 @RequestParam(name = "numSeats") int numSeats)
     900    {
     901        transportManager.createTransportReservation(transportRouteId, userId, numSeats);
     902    }
     903}}}
     904Се зимаат потребните информации од контролерот и се препраќа кон сервисот за понатамошна логика со резервациите.
    774905=== Резервира хотел
    775906[[Image(HotelDetails1-min.png)]]
    776907----
    777908[[Image(HotelReservationUser-min.png)]]
     909{{{#!java
     910public void  saveReservation(HotelRoomReservations hotelRoomReservations) {
     911        em.persist(hotelRoomReservations);
     912    }
     913}}}
     914Се зачувува резервацијата во база
     915{{{#!java
     916public void createReservation(Long userId, Long hotelRoomId, Long hotelRoomAvailableId, Date dateFrom, Date dateTo, Integer numberOfBeds) {
     917        HotelRoom room = hotelDao.findRoomById(hotelRoomId);
     918        User user = usersDao.findUserByID(userId);
     919        HotelRoomReservations r = new HotelRoomReservations(user, room, dateFrom, dateTo, numberOfBeds);
     920        editRoomAvailibleReservation(hotelRoomAvailableId, hotelRoomId, dateFrom, dateTo, numberOfBeds);
     921        hotelDao.createReservation(r);
     922
     923    }
     924}}}
     925Во сервисот се зема id на корисникот, id на соба и id на слободната соба. Притоа се наоѓаат сите од нив преку соодветните сервиси и се креира нова резервација од-до одреден датум,
     926притоа се прави логика за кои соби ќе бидат слободни по резервацијата
     927{{{#!java
     928public void editRoomAvailibleReservation(Long HotelRoomAvailableId, Long hotelRoomId, Date from, Date to, int numberOfBeds){
     929        HotelRoomAvailable roomAvailable = hotelDao.findAvailibleRoomById(HotelRoomAvailableId);
     930        roomAvailable.setNumberOfBeds(roomAvailable.getNumberOfBeds()-numberOfBeds);
     931        hotelDao.createRoomAvailible(roomAvailable);
     932        HotelRoom room = hotelDao.findRoomById(hotelRoomId);
     933        HotelRoomAvailable hra = new HotelRoomAvailable(room,roomAvailable.getDateFrom(),from,1);
     934        hotelDao.createRoomAvailible(hra);
     935        HotelRoomAvailable hra1 = new HotelRoomAvailable(room,to,roomAvailable.getDateTo(),1);
     936        hotelDao.createRoomAvailible(hra1);
     937    }
     938}}}
     939Логиката е во тоа што од сите х соби од таков тип се менуваа во х-1 а се додаваат две нови слободни и тоа една од од почеток на слободната соба до почеток на резервираната и уште една од крај на резервиранта до крај на слободната.
     940{{{#!java
     941@PostMapping(path = "/hotel/reserve")
     942    public void reserveHotelRoom(@RequestParam(name = "hotelRoomId")Long hotelRoomId,
     943                                 @RequestParam(name = "userId") Long userId,
     944                                 @RequestParam(name = "hotelRoomAvailableId") Long hotelRoomAvailableId,
     945                                 @RequestParam(name = "numberOfBeds") Integer numberOfBeds,
     946                                 @RequestParam(name = "from") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date from,
     947                                 @RequestParam(name = "to") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date to){
     948
     949
     950
     951        hotelManager.createReservation(userId, hotelRoomId, hotelRoomAvailableId, from, to, numberOfBeds);
     952    }
     953}}}
     954Контролерот кој ги прима сите потребни атрибути за да може да се направи резервацијата и тоа од кој корисник за која соба и за кој период.
    778955
    779956=== Откажува услуга
    780 '''Корисникот кој ги закажува резервациите има можност да ги прегледува истите. Има резервации кои се активни, односно што следат, но има и претходни резервации за кои може да остави некакво мислење'''
    781957----
    782958[[Image(ReservationsHotel.png)]]
    783 
     959{{{#!java
     960public void deleteReservation(HotelRoomReservations hr) {
     961        em.remove(hr);
     962    }
     963}}}
     964Се брише резервацијата од база
     965{{{#!java
     966@Override
     967    public void deleteReservation(long hotelRoomReservedId) {
     968        HotelRoomReservations r = findReservationById(hotelRoomReservedId);
     969        HotelRoomAvailable hra = new HotelRoomAvailable(r.getHotelRoom(), r.getDateFrom(), r.getDateTo(), r.getNumberOfBeds());
     970        hotelDao.createRoomAvailible(hra);
     971        hotelDao.deleteReservation(r);
     972    }
     973}}}
     974Во сервисот се зема id на резервацијата се наоѓа и се отстранува и притоа собата што беше зафатена се ослободува
     975{{{#!java
     976@PostMapping("/hotel/{id}/cancel")
     977    public void cancelHotelReservation(@PathVariable Long id){
     978        hotelManager.deleteReservation(id);
     979    }
     980}}}
     981Преку контролерот се зема id на резервацијата и таа се препраќа во сервисот за да ја изврши логиката.