Prečítajte kód a zvýraznite chyby /** * Klient s kúpeným lístkom môže za dodatočný poplatok vybrať konkrétne miesto. * Základná cena miest sa určuje tarifami (vonkajší servis). * Pre klientov s určitými tarifami (PREMIUM, ULTRA) je potrebné urobiť zľavu pri platbe. * Pri rezervácii je klientovi vystavená faktúra na platbu. Správa platby sa vykonáva v externom servise. */ @Service public class SeatBookingService { @Autowired private SeatBookingRepository seatBookingRepository; @Autowired private TicketRepository ticketRepository; @Autowired private TariffClient tariffClient; @Autowired private CustomerClient customerClient; @Autowired private PaymentClient paymentClient; /** * Rezervácia. * @param seatCode kód miesta (napríklad 19A) * @param ticketId ID lístka */ @Transactional public void bookSeat(String seatCode, UUID ticketId) { var ticket = ticketRepository.findById(ticketId); //rezervujeme var seatBooking = new SeatBooking(seatCode, ticket.get().getFlightId(), ticketId, BookingStatus.BOOKED); seatBookingRepository.save(seatBooking); //hľadáme základnú cenu pre vybrané miesto v lietadle var basePrice = tariffClient.getBasePrice(ticket.get().getPlaneModel(), seatCode); //hľadáme údaje o klientovi Long userId = (Long) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); var userData = customerClient.getCustomer(userId); System.out.println("Nájdený používateľ " + userData.getFio() + " číslo dokladu " + userData.getDocument()); var price = basePrice; if (userData.getTariff() == "PREMIUM") { //zľava 50% price = basePrice * 0.5d; } if (userData.getTariff() == "ULTRA") { //zľava 20% price = basePrice * 0.8d; } var invoice = new Invoice(price, ticketId, userId); //vystavujeme faktúru paymentClient.sendInvoice(invoice); System.out.println("Faktúra vystavená"); } @Data @Table("seat_booking") public class SeatBooking { @Column private String seatCode; @Column private UUID flightId; @Column private UUID ticketId; @Column private BookingStatus status; } public enum BookingStatus { BOOKED, PAID; }
Java
Môžeš uviesť hlavné analytické funkcie používané v SQL na analýzu dát?
Čím sa líšia sekcie dependency a dependencyManagement v konfiguračnom súbore Maven?
Prečo sú ArrayList a pole hlavné dátové štruktúry v Jave?
Ako zavolať uloženú procedúru v Jave?
Ako vytvoriť kontrolér v Spring?
Ako zaregistrovať ovládač JDBC?
V čom sa líšia cykly v Jave?
Zúčastnili ste sa nastavenia alebo práce s prostredím stage na testovanie alebo nasadenie?
Čo je DTD (Definícia typu dokumentu) a akú úlohu zohráva v XML?
Popíšte všeobecné praktické princípy práce s JavaServer Pages (JSP).
Povedz mi o tom projekte, na ktorý si obzvlášť hrdý, a vysvetli, prečo má pre teba význam.
Majú List a Set niečo spoločné?
Čo je metóda finalize v Jave?
Je štandardný kontajner Vector v C++ bezpečný pre prístup z viacerých vlákien súčasne?
Zúčastnili ste sa náboru a vykonali pohovory? Máte v tíme QA vedúceho?
V ktorých situáciách môže byť použitie DTO nevhodné alebo neželané?
Aký výsledok vracia objekt metódy Callable v Jave?
Aká metóda v rámci objektu je podľa vás najdôležitejšia a najčastejšie používaná?
Uveďte príklad použitia vlastných tagov v Jave.