package com.volunteersregistration.controller; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import com.volunteersregistration.config.UserSession; import com.volunteersregistration.repository.VolunteerRegistrationRepo; import com.volunteersregistration.service.VolunteerRegistrationService; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpSession; @Controller @RequestMapping("/volunteer") public class VolunteerController { @Autowired private HttpSession session; @Autowired private UserSession usersession; @Autowired public VolunteerRegistrationService volunteerRegistrationService; @GetMapping("/web") public String registerweb(@RequestParam(required = false) String ref, Model model) { System.out.println("indesx page....." + ref); model.addAttribute("ref", ref); //return "webindex"; return "coming_soon"; } @GetMapping("/webtamil") public String registerwebtamil(@RequestParam(required = false) String ref, Model model) { System.out.println("indesx page....." + ref); model.addAttribute("ref", ref); //return "webindex_tamil"; return "coming_soon"; } @GetMapping(value = { "/", "", "/index" }) public String MobileViewregister(@RequestParam(required = false) String ref, Model model) { System.out.println("indesx page....." + ref); model.addAttribute("ref", ref); //return "index"; return "coming_soon"; } @GetMapping(value = {"/index_tamil" }) public String MobileViewtamilregister(@RequestParam(required = false) String ref, Model model) { System.out.println("indesx page....." + ref); model.addAttribute("ref", ref); //return "index_tamil"; return "coming_soon"; } // Check session and redirect to login if user is not logged in private boolean isLoggedIn() { return session.getAttribute("userId") != null; // Check if userId is in session store the user type if the user type not quals to kyn n s pls logout } @GetMapping(value = {"/kynreport"}) public String kynreport(Model model, HttpServletRequest request) { if (!isLoggedIn()) { return "redirect:/volunteer/kynreportlogin"; // Redirect to login if not logged in } return "kynreport"; // Render page if logged in } @GetMapping(value = {"/allreports"}) public String allreports(Model model, HttpServletRequest request) { if (!isLoggedIn()) { return "redirect:/volunteer/kynreportlogin"; // Redirect to login if not logged in } return "allreports"; // Render page if logged in } @PostMapping(value = {"/allreports"}) public String allreports( @RequestParam("fromDate") @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate fromDate, @RequestParam("toDate") @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate toDate, @RequestParam("category") int category, Model model) { if (!isLoggedIn()) { return "redirect:/volunteer/kynreportlogin"; } LocalDateTime fromDateTime = fromDate.atStartOfDay(); LocalDateTime toDateTime = toDate.atTime(23, 59, 59); String fromDateString = fromDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); String toDateString = toDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); List> alldata = volunteerRegistrationService.getAllReport(fromDateString, toDateString, category); model.addAttribute("alldata", alldata); model.addAttribute("category", category); model.addAttribute("fromdate", fromDate); model.addAttribute("todate", toDate); return "allreports"; } @PostMapping(value = {"/kynreport"}) public String kynreport( @RequestParam("fromDate") @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate fromDate, @RequestParam("toDate") @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate toDate, @RequestParam("category") int category, Model model) { if (!isLoggedIn()) { return "redirect:/volunteer/kynreportlogin"; } LocalDateTime fromDateTime = fromDate.atStartOfDay(); LocalDateTime toDateTime = toDate.atTime(23, 59, 59); String fromDateString = fromDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); String toDateString = toDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); List> reportData = volunteerRegistrationService.getKynReport(fromDateString, toDateString, category); model.addAttribute("fromdate", fromDate); model.addAttribute("todate", toDate); model.addAttribute("reportData", reportData); model.addAttribute("category", category); return "kynreport"; } @GetMapping(value = {"/kynreportlogin"}) public String kynreportlogin(Model model) { return "kynreportlogin"; } }