| 630 | {{{#!java |
| 631 | public void saveTable(RestaurantsTable resTable) { |
| 632 | em.persist(resTable); |
| 633 | } |
| 634 | }}} |
| 635 | Додавање на нова маса во базата |
| 636 | {{{#!java |
| 637 | public void createTable(Long restaurantId, int noSeats) { |
| 638 | Restaurant r = restaurantDao.findRestaurantByID(restaurantId); |
| 639 | RestaurantsTable restaurantsTable = new RestaurantsTable(r, noSeats); |
| 640 | restaurantDao.saveTable(restaurantsTable); |
| 641 | } |
| 642 | }}} |
| 643 | Во сервисот се зима ресторанот на кој ќе се додава новата маса, за неа се внесуваат број на седишта |
| 644 | {{{#!java |
| 645 | @PostMapping(path = "/restaurant/table/{id}/add") |
| 646 | public void addTable(@PathVariable Long id, @RequestParam Integer noSeats) { |
| 647 | restaurantManager.createTable(id, noSeats); |
| 648 | } |
| 649 | }}} |
| 650 | Се зима id на ресторанот и бројот за колку луѓе е наменета масата, па се повикува функцијата од сервисот за понатамошна логика |
| 653 | {{{#!java |
| 654 | public void saveTableAvailable(RestaurantsAvailible ra){ |
| 655 | em.persist(ra); |
| 656 | } |
| 657 | }}} |
| 658 | Се зачувува слободната маса во база |
| 659 | {{{#!java |
| 660 | public void createTableAvailable(Long rt, Date hourFrom, Date hourTo, int numTables) { |
| 661 | RestaurantsTable rtabl = findTableById(rt); |
| 662 | RestaurantsAvailible ra = new RestaurantsAvailible(rtabl, hourFrom, hourTo, numTables); |
| 663 | restaurantDao.saveTableAvailable(ra); |
| 664 | } |
| 665 | }}} |
| 666 | Во сервисот се зима масата преку id и се прави нов објект од расположливост на маси и се сетира од кога до кога и колку такви маси има на располагање |
| 667 | {{{#!java |
| 668 | @PostMapping(path = "/restaurant/table/{id}/available/add") |
| 669 | public void addTableAvailable(@RequestBody RestaurantsAvailible restaurantsAvailible, |
| 670 | @PathVariable Long id) { |
| 671 | restaurantManager.createTableAvailable(id, restaurantsAvailible.getHourFrom(), restaurantsAvailible.getHourTo(), restaurantsAvailible.getNumTables()); |
| 672 | } |
| 673 | }}} |
| 674 | За додавање на расположливост во контролерот се зима објект од RestaurantsAvailable и се зима id од која маса |
635 | | ---- |
636 | | '''Исто како и кај хотел така и тука може да се прегледуваат резервациите за самиот ресторан.''' |
| 677 | {{{#!java |
| 678 | public void editTable(Restaurant restaurant, long tableId, int noSeats) { |
| 679 | RestaurantsTable resTable = findTableById(tableId); |
| 680 | resTable.setRestaurant(restaurant); |
| 681 | resTable.setNoSeats(noSeats); |
| 682 | restaurantDao.saveTable(resTable); |
| 683 | } |
| 684 | }}} |
| 685 | Се наоѓа масата преку id и на истата се додава се менуваат потребните детали. Зачувувањето во база е исто па не се покажува |
| 686 | {{{#!java |
| 687 | @PostMapping(path = "/restaurant/table/edit") |
| 688 | public void editTable(@RequestBody RestaurantsTable restaurantsTable) { |
| 689 | restaurantManager.editTable(restaurantsTable.getRestaurant(), restaurantsTable.getTableId(), restaurantsTable.getNoSeats()); |
| 690 | } |
| 691 | }}} |
| 692 | Се зима цел објект од масата и за истата се пропушта на сервисот за логиката |
| 693 | |
652 | | |
| 710 | {{{#!java |
| 711 | public List<RestaurantReservations> findReservationByRestaurant(Restaurant restaurant) { |
| 712 | return em.createQuery("select rr from RestaurantReservations rr where rr.table.restaurant = :rest").setParameter("rest", restaurant).getResultList(); |
| 713 | } |
| 714 | }}} |
| 715 | Се листаат сите резервации кои се резервирани на ресторанот |
| 716 | {{{#!java |
| 717 | public List<RestaurantReservationDto> findReservationByRestaurant(Long restaurant) { |
| 718 | Restaurant r = findRestaurantByID(restaurant); |
| 719 | List<RestaurantReservations> res = restaurantDao.findReservationByRestaurant(r); |
| 720 | return res.stream().map(x -> new RestaurantReservationDto( |
| 721 | x.getUser(), |
| 722 | x.getTable(), |
| 723 | x.getTimeFrom(), |
| 724 | x.getTimeTo() |
| 725 | )).collect(Collectors.toList()); |
| 726 | } |
| 727 | }}} |
| 728 | Исто како и горе се прави Dto и се ноѓаат сите резервации од конкретниот ресторан и истите се враќаат како резултатна листа |
| 729 | {{{#!java |
| 730 | @GetMapping(path = "/restaurant/{id}/reservations/active") |
| 731 | public List<RestaurantReservationDto> getActiveReservationsForRestaurant(@PathVariable Long id) |
| 732 | { |
| 733 | return restaurantManager.findReservationByRestaurant(id); |
| 734 | } |
| 735 | }}} |
| 736 | Преку контролерот се зимаат податоци за id на на ресторанот и потоа се повикува функцијата од сервисот за резервација. |