diff --git a/src/main/java/com/xs/ai/controller/OpenAiController.java b/src/main/java/com/xs/ai/controller/OpenAiController.java index c0f962a..e8c3bde 100644 --- a/src/main/java/com/xs/ai/controller/OpenAiController.java +++ b/src/main/java/com/xs/ai/controller/OpenAiController.java @@ -50,7 +50,7 @@ public class OpenAiController { //每一次对话拦截后,搜索附加上后再给大模型 //new QuestionAnswerAdvisor(vectorStore, SearchRequest.defaults()), // RAG new LoggingAdvisor()) - .defaultFunctions("getBookingDetails", "changeBooking", "cancelBooking") // FUNCTION CALLING + .defaultFunctions("getBookingDetails", "changeBooking", "cancelBooking","deleteBooking") // FUNCTION CALLING .build(); diff --git a/src/main/java/com/xs/ai/services/BookingTools.java b/src/main/java/com/xs/ai/services/BookingTools.java index 1c284cc..148875c 100644 --- a/src/main/java/com/xs/ai/services/BookingTools.java +++ b/src/main/java/com/xs/ai/services/BookingTools.java @@ -69,4 +69,13 @@ public class BookingTools { }; } + @Bean + @Description("删除机票预定") + public Function deleteBooking() { + return request -> { + flightBookingService.deleteBooking(request.bookingNumber(), request.name()); + return ""; + }; + } + } diff --git a/src/main/java/com/xs/ai/services/FlightBookingService.java b/src/main/java/com/xs/ai/services/FlightBookingService.java index 143544c..9434bb5 100644 --- a/src/main/java/com/xs/ai/services/FlightBookingService.java +++ b/src/main/java/com/xs/ai/services/FlightBookingService.java @@ -93,6 +93,16 @@ public class FlightBookingService { booking.setBookingStatus(BookingStatus.CANCELLED); } + // 删除预定航班 + public void deleteBooking(String bookingNumber, String name) { + var booking = findBooking(bookingNumber, name); + if (booking.getDate().isBefore(LocalDate.now().plusDays(2))) { + throw new IllegalArgumentException("Booking cannot be cancelled within 48 hours of the start date."); + } + System.out.println("进入删除。。。。。"); + booking.setBookingStatus(BookingStatus.CONFIRMED); + } + private BookingDetails toBookingDetails(Booking booking) { return new BookingDetails(booking.getBookingNumber(), booking.getCustomer().getName(), booking.getDate(), booking.getBookingStatus(), booking.getFrom(), booking.getTo(), booking.getBookingClass().toString());