package Controller; import LoginDb.DbHandler; import com.google.gson.Gson; import java.io.PrintWriter; import java.io.IOException; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpSession; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * * @author 1121947 */ //@WebServlet(name = "TicketServlet", urlPatterns = {"/TicketServlet"}) public class TicketServlet extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); try (PrintWriter out = response.getWriter()) { /* TODO output your page here. You may use following sample code. */ out.println(""); out.println(""); out.println(""); out.println("Servlet TicketServlet"); out.println(""); out.println(""); out.println("

Servlet TicketServlet at " + request.getContextPath() + "

"); out.println(""); out.println(""); } } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(false); String user = request.getParameter("UID"); System.out.println("Ticket Servlet"); PrintWriter out= response.getWriter(); response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); List> ticketData = new ArrayList<>(); Map chartData = new HashMap<>(); try { try ( //Database Connection Connection conn = DbHandler.getDBConnection()) { String sql = "select user_id,User_role,transaction_type,status,unclaimed,Loan_overdue,kyc_status,si_status from ticket_details"; if (user != null && !user.isEmpty()) { sql += " where user_id = ?"; } sql += " order by user_id desc"; try (PreparedStatement ps = conn.prepareStatement(sql)) { if (user != null && !user.isEmpty()) { ps.setInt(1, Integer.parseInt(user)); } try (ResultSet rs = ps.executeQuery()) { while (rs.next()) { Map data = new HashMap<>(); data.put("user_id", rs.getInt("user_id")); data.put("unclaimed", rs.getString("unclaimed")); data.put("Loan_overdue", rs.getString("Loan_overdue")); data.put("kyc_status", rs.getString("kyc_status")); data.put("si_status", rs.getString("si_status")); ticketData.add(data); // Collect data for charts String status = rs.getString("status"); chartData.put(status, chartData.getOrDefault(status, 0) + 1); } System.out.println("ticket data:" +ticketData); } } } } catch (SQLException e) { } // Convert list to JSON String json = new Gson().toJson(ticketData); String chartJson = new Gson().toJson(chartData); out.print("{\"ticketData\":" + json + ", \"chartData\":" + chartJson + "}"); System.out.println("Controller.TicketServlet.doGet()"+json); //out.flush(); } }