| | 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 на на ресторанот и потоа се повикува функцијата од сервисот за резервација. |