Search in sources :

Example 1 with CDREntry

use of com.geminimobile.CDRDataAccess.CDREntry in project logprocessing by cloudian.

the class SearchController method onSubmit.

@Override
protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException arg3) throws Exception {
    SearchCommand cmd = (SearchCommand) command;
    ModelAndView mav = new ModelAndView(getSuccessView());
    CDRDataAccess cdrAccess = new CDRDataAccess();
    Date toDate = SearchCommand.m_sdf.parse(cmd.getToDate());
    long maxTimestamp = toDate.getTime();
    Date fromDate = SearchCommand.m_sdf.parse(cmd.getFromDate());
    long minTimestamp = fromDate.getTime();
    String msisdn = cmd.getMsisdn();
    String action = cmd.getAction();
    Vector<CDREntry> cdrs;
    if (action.compareToIgnoreCase("downloadcsv") == 0) {
        if (msisdn != null && msisdn.length() > 0) {
            cdrs = cdrAccess.getCDRsByMSISDN(cmd.getMsisdn(), minTimestamp, maxTimestamp, cmd.getMarket(), cmd.getMessageType(), // 100,000 entries max
            100000);
        } else {
            cdrs = cdrAccess.getCDRsByHour(minTimestamp, maxTimestamp, cmd.getMarket(), cmd.getMessageType(), MAX_ENTRIES_PER_PAGE);
        }
        StringBuffer sb = new StringBuffer();
        // Write column headers 
        sb.append("Date/Time,Market,Type,MSISDN,MO IP address,MT IP Address,Sender Domain,Recipient Domain\n");
        for (CDREntry entry : cdrs) {
            sb.append(entry.getDisplayTimestamp() + "," + entry.getMarket() + "," + entry.getType() + "," + entry.getMsisdn() + "," + entry.getMoIPAddress() + "," + entry.getMtIPAddress() + "," + entry.getSenderDomain() + "," + entry.getRecipientDomain() + "\n");
        }
        String csvString = sb.toString();
        response.setBufferSize(sb.length());
        response.setContentLength(sb.length());
        response.setContentType("text/plain; charset=UTF-8");
        //response.setContentType( "text/csv" );
        //response.setContentType("application/ms-excel");
        //response.setHeader("Content-disposition", "attachment;filename=cdrResults.csv");
        response.setHeader("Content-Disposition", "attachment; filename=" + "cdrResults.csv" + ";");
        ServletOutputStream os = response.getOutputStream();
        os.write(csvString.getBytes());
        os.flush();
        os.close();
        return null;
    } else if (action.compareToIgnoreCase("graph") == 0) {
        cmd.setGraph(true);
        List<ChartSeries> chartData;
        if (msisdn != null && msisdn.length() > 0) {
            chartData = cdrAccess.getChartDataByMSISDN(cmd.getMsisdn(), minTimestamp, maxTimestamp, cmd.getMarket(), cmd.getMessageType(), 100000);
        } else {
            chartData = cdrAccess.getChartDataByHour(minTimestamp, maxTimestamp, cmd.getMarket(), cmd.getMessageType(), 100000);
        }
        request.getSession().setAttribute("chartData", chartData);
    } else if (action.compareToIgnoreCase("getmore") == 0) {
        cdrs = (Vector<CDREntry>) request.getSession().getAttribute("currentcdrs");
        int numCDRs = cdrs.size();
        CDREntry lastCDR = cdrs.get(numCDRs - 1);
        long lastCDRTime = Long.parseLong(lastCDR.getTimestamp());
        if (msisdn != null && msisdn.length() > 0) {
            Vector<CDREntry> moreCDRs = cdrAccess.getCDRsByMSISDN(cmd.getMsisdn(), lastCDRTime, maxTimestamp, cmd.getMarket(), cmd.getMessageType(), MAX_ENTRIES_PER_PAGE);
            cdrs.addAll(moreCDRs);
        } else {
            Vector<CDREntry> moreCDRs = cdrAccess.getCDRsByHour(lastCDRTime, maxTimestamp, cmd.getMarket(), cmd.getMessageType(), MAX_ENTRIES_PER_PAGE);
            cdrs.addAll(moreCDRs);
        }
        request.getSession().setAttribute("currentcdrs", cdrs);
        mav.addObject("cdrs", cdrs);
    } else {
        // Normal search            
        if (msisdn != null && msisdn.length() > 0) {
            cdrs = cdrAccess.getCDRsByMSISDN(cmd.getMsisdn(), minTimestamp, maxTimestamp, cmd.getMarket(), cmd.getMessageType(), MAX_ENTRIES_PER_PAGE);
        } else {
            cdrs = cdrAccess.getCDRsByHour(minTimestamp, maxTimestamp, cmd.getMarket(), cmd.getMessageType(), MAX_ENTRIES_PER_PAGE);
        }
        request.getSession().setAttribute("currentcdrs", cdrs);
        mav.addObject("cdrs", cdrs);
    }
    mav.addObject("searchCmd", cmd);
    List<Option> msgOptions = getMessageOptions();
    mav.addObject("msgTypes", msgOptions);
    List<Option> marketOptions = getMarketOptions();
    mav.addObject("marketTypes", marketOptions);
    return mav;
}
Also used : CDRDataAccess(com.geminimobile.CDRDataAccess) CDREntry(com.geminimobile.CDRDataAccess.CDREntry) ServletOutputStream(javax.servlet.ServletOutputStream) ModelAndView(org.springframework.web.servlet.ModelAndView) Date(java.util.Date) ArrayList(java.util.ArrayList) List(java.util.List)

Example 2 with CDREntry

use of com.geminimobile.CDRDataAccess.CDREntry in project logprocessing by cloudian.

the class DownloadCSVController method handleRequestInternal.

@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
    String msisdn = (String) request.getParameter("msisdn");
    String startTime = (String) request.getParameter("starttime");
    String endTime = (String) request.getParameter("endtime");
    String market = (String) request.getParameter("market");
    String type = (String) request.getParameter("type");
    Date toDate = SearchCommand.m_sdf.parse(endTime);
    //String maxTimestamp = Long.toString(toDate.getTime());
    Date fromDate = SearchCommand.m_sdf.parse(startTime);
    //String minTimestamp = Long.toString(fromDate.getTime());
    CDRDataAccess cdrAccess = new CDRDataAccess();
    Vector<CDREntry> cdrs = cdrAccess.getCDRsByMSISDN(msisdn, fromDate.getTime(), toDate.getTime(), market, type, // 100,000 entries max
    100000);
    //Vector<CDREntry> cdrs = (Vector<CDREntry>) request.getSession().getAttribute("cdrResults");
    StringBuffer sb = new StringBuffer();
    // Write column headers 
    sb.append("Date/Time,Market,Type,MSISDN,MO IP address,MT IP Address,Sender Domain,Recipient Domain\n");
    for (CDREntry entry : cdrs) {
        sb.append(entry.getDisplayTimestamp() + "," + entry.getMarket() + "," + entry.getType() + "," + entry.getMsisdn() + "," + entry.getMoIPAddress() + "," + entry.getMtIPAddress() + "," + entry.getSenderDomain() + "," + entry.getRecipientDomain() + "\n");
    }
    String csvString = sb.toString();
    response.setBufferSize(sb.length());
    response.setContentLength(sb.length());
    response.setContentType("text/plain; charset=UTF-8");
    //response.setContentType( "text/csv" );
    //response.setContentType("application/ms-excel");
    //response.setHeader("Content-disposition", "attachment;filename=cdrResults.csv");
    response.setHeader("Content-Disposition", "attachment; filename=" + "cdrResults.csv" + ";");
    ServletOutputStream os = response.getOutputStream();
    os.write(csvString.getBytes());
    os.flush();
    os.close();
    return null;
}
Also used : CDRDataAccess(com.geminimobile.CDRDataAccess) CDREntry(com.geminimobile.CDRDataAccess.CDREntry) ServletOutputStream(javax.servlet.ServletOutputStream) Date(java.util.Date)

Aggregations

CDRDataAccess (com.geminimobile.CDRDataAccess)2 CDREntry (com.geminimobile.CDRDataAccess.CDREntry)2 Date (java.util.Date)2 ServletOutputStream (javax.servlet.ServletOutputStream)2 ArrayList (java.util.ArrayList)1 List (java.util.List)1 ModelAndView (org.springframework.web.servlet.ModelAndView)1