Для диалапа:
dialup_csv_session_by_mac.rep.xml
Код:
<?xml version="1.0" encoding="UTF-8"?>
<report title="Сессии по мак-адресу" type="java">
<month name="month" title="Месяц"/>
<textField name="mac" title="Мак-адрес" textAfter="формат: 4567.890a.bcde"/>
<fields>
<item id="id" title="id"/>
<item id="lid" title="login id"/>
<item id="login" title="login"/>
<item id="ip" title="IP"/>
<item id="nas_id" title="NAS id"/>
<item id="nas_port" title="NAS port"/>
<item id="session_id" title="session id"/>
<item id="session_start" title="start"/>
<item id="session_stop" title="stop"/>
<item id="session_time" title="time"/>
<item id="input_octets" title="input octets"/>
<item id="output_octets" title="output octets"/>
</fields>
</report>
dialup_csv_session_by_mac.java
Код:
import java.sql.*;
import java.util.*;
import java.util.regex.*;
import java.sql.*;
import bitel.billing.server.util.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.common.*;
public void fillReport( con, filter, bitel.billing.server.reports.BGCSVReport.ReportResult result)
{
Calendar month = filter.getCalendarParam("month");
int mid = filter.getIntParam("mid");
String mac = filter.getStringParam("mac");
query = "select "+
"id, "+
"lid, "+
"login_name login, "+
"nas_id, "+
"nas_port, "+
"session_id, " +
"session_start, " +
"session_stop, " +
"session_time," +
"from_number, " +
"input_octets, " +
"output_octets, " +
"INET_NTOA(ipaddr) ip " +
"from " +
Utils.getMonthTableName("log_session_"+mid,month.getTime()) +
" where "+
"from_number = TRIM(\""+mac+"\") ";
ps = con.prepareStatement( query );
rs = ps.executeQuery();
data = new ArrayList(rs.getFetchSize());
while( rs. next() )
{
id = rs.getString("id");
lid = rs.getString("lid");
login = rs.getString("login");
nas_id = rs.getString("nas_id");
nas_port = rs.getString("nas_port");
session_id = rs.getString("session_id");
session_start = rs.getString("session_start");
session_stop = rs.getString("session_stop");
session_time = rs.getString("session_time");
input_octets = rs.getString("input_octets");
output_octets = rs.getString("output_octets");
ip = rs.getString("ip");
map = new HashMap();
map.put( "id", id );
map.put( "lid", lid );
map.put( "login", login );
map.put( "nas_id", nas_id );
map.put( "nas_port", nas_port );
map.put( "session_id", session_id );
map.put("session_start", session_start );
map.put("session_stop", session_stop );
map.put("session_time", session_time );
map.put("input_octets", input_octets );
map.put("output_octets", output_octets );
map.put("ip", ip );
data.add( map );
}
result.setData( data );
}