package com.gcc.communityHall.controller; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import com.gcc.communityHall.entity.BookingDetails; import com.gcc.communityHall.entity.BookingDetails.BookingStatus; import com.gcc.communityHall.entity.CounterDetails; import com.gcc.communityHall.entity.CounterRefundList; import com.gcc.communityHall.entity.Users; import com.gcc.communityHall.others.UserSession; import com.gcc.communityHall.repository.BookingDetailsRepository; import com.gcc.communityHall.repository.CounterDetailsRepository; import com.gcc.communityHall.repository.CounterRefundListRepository; import com.gcc.communityHall.service.BookingService; import com.gcc.communityHall.service.CounterService; import com.gcc.communityHall.service.UserService; import jakarta.servlet.http.HttpSession; @Controller @RequestMapping("/counter") public class CounterController { @Autowired private UserSession userSession; @Autowired private CounterDetailsRepository counterRepo; @Autowired private CounterService counterservice; @Autowired private BookingService bookser; @Autowired private UserService userService; @Autowired private BookingDetailsRepository bookingDetailsRepository; @Autowired private CounterRefundListRepository counterRefundRepository; @GetMapping(value = {"","/","/counterbooking"}) public String viewcounter(Model model,HttpSession session) { System.out.println("viewcounter"); String countername=(String) session.getAttribute("usertype"); model.addAttribute("countername", countername); return "counter/counter-booking"; } @GetMapping("/counterdetailslist") public String viewcounterlist(Model model,HttpSession session) { List counterlist= counterRepo.findAll(); String countername=(String) session.getAttribute("usertype"); model.addAttribute("countername", countername); model.addAttribute("counterlist", counterlist); return "counter/counter-list"; } @PostMapping("/saveDDdetails") public String saveDD( @RequestParam String bankName, @RequestParam int bankAccNo, @RequestParam int ddNumber, @RequestParam double amountReceived, @RequestParam MultipartFile counterddphoto, @RequestParam int bookingId) { // Call the service method and pass the bookingId along with other parameters String confirmBooking = bookser.confirmBooking(bookingId); BookingDetails booking=new BookingDetails(); booking.setBookingStatus(BookingStatus.APPROVED); if (confirmBooking.equals("Booking confirmed successfully")) { // Perform additional actions if needed } bookingDetailsRepository.save(booking); counterservice.saveCounterDetails(bankName, bankAccNo, ddNumber, amountReceived, counterddphoto, bookingId); return "redirect:/counter/counterdetailslist"; } @GetMapping("/bookinglist") public String viewbookingpage(Model model,HttpSession session) { List> bookinglists= bookser.getOfflineBookings(); model.addAttribute("bookinglist",bookinglists); String countername=(String) session.getAttribute("usertype"); model.addAttribute("countername", countername); return "counter/viewhistory"; } @GetMapping("/refundinitialisation") public String viewrefund(Model model,HttpSession session) { List counterRefundLists = counterRefundRepository.findAll(); model.addAttribute("counterRefundLists", counterRefundLists); String countername=(String) session.getAttribute("usertype"); model.addAttribute("countername", countername); return "counter/refund-initialisation"; } @GetMapping("/calculateamount") public String viewCalculate(Model model){ return "counter/calculate-hall-amount"; } @GetMapping("/logout") public String viewLogout(Model model,HttpSession session) { session.invalidate(); return "redirect:/communityhall/login"; } }