📄 accessanalyselogimpl.java
字号:
package com.doone.fj1w.fjmgr.rpt;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import com.doone.data.DacClient;
import com.doone.data.DataRow;
import com.doone.data.DataTable;
import com.doone.util.ExtString;
import com.doone.util.FileLogger;
public class AccessanalyselogImpl extends ReportImpl {
/**用于系统访问量分析统计统计页面获取报表
*
*/
protected DataTable getRptList(Map _map) {
DataTable dt = null;
//String sQueryType = (String) _map.get("queryType");
//if(sQueryType == null || sQueryType.equals("0")) {
dt = getAccessResultList(_map);
//}
return dt;
}
/**系统访问量分析统计列表
*
* @param _map
* @return
*/
private DataTable getAccessResultList(Map _map) {
DacClient db = new DacClient();
try {
StringBuffer sql = new StringBuffer();
List oParam = new ArrayList();
int pageSize = Integer.parseInt((String) _map.get("pageSize"));
int currentPage = Integer.parseInt((String) _map.get("currentPage"));
int startrecord = currentPage * pageSize;
int endrecord = pageSize;
if (startrecord < 0)
startrecord = 0;
if (endrecord > 0 && startrecord > 0)
endrecord = startrecord + pageSize;
buildSQL(_map,sql,oParam);
StringBuffer _sb = new StringBuffer();
_sb.append("SELECT * FROM ( SELECT row_.*, rownum rownum_ FROM(");
_sb.append(sql);
_sb.append(")row_ WHERE rownum <= ?");
_sb.append(") WHERE rownum_ > ?");
oParam.add(new Integer(endrecord));
oParam.add(new Integer(startrecord));
Object ap[] = new Object[oParam.size()];
for (int i = 0; i < ap.length; i++) {
ap[i] = oParam.get(i);
//System.out.println("ap[i]____________"+ap[i]);
}
//System.out.println("%%%%%%%%%%"+_sb.toString());
return db.executeQuery(_sb.toString(), ap);
} catch (Exception e) {
FileLogger.getLogger().warn(e.getMessage(), e);
}
return null;
}
/**用于程控功能受理情况导出Excel页面获取报表
*
*/
private DataTable getAllAccessResultList(Map _map) {
DacClient db = new DacClient();
try {
StringBuffer sql = new StringBuffer();
List oParam = new ArrayList();
buildSQL(_map,sql,oParam);
Object ap[] = new Object[oParam.size()];
for (int i = 0; i < ap.length; i++) {
ap[i] = oParam.get(i);
}
return db.executeQuery(sql.toString(), ap);
} catch (Exception e) {
FileLogger.getLogger().warn(e.getMessage(), e);
}
return null;
}
/**用于程控功能受理情况导出Excel页面获取报表
*
*/
public DataTable getAllList(Map _map) {
DataTable dt = null;
//String sQueryType = (String) _map.get("queryType");
//if(sQueryType == null || sQueryType.equals("0")) {
dt = getAllAccessResultList(_map);
//}
return dt;
}
/**获取程控功能受理情况按条件总计的条数
*
* @param _map
* @return
*/
private int getAccessLogSum(Map _map) {
DacClient db = new DacClient();
try {
StringBuffer sql = new StringBuffer();
StringBuffer sql1 = new StringBuffer();
List oParam = new ArrayList();
buildSQL(_map,sql,oParam);
sql1.append("select \"过期数量\")+\"激活数量\"+\"未激活量\"+\"注销数量\"+\"产品注册量\" from(");
sql1.append(sql).append(")");
Object ap[] = new Object[oParam.size()];
for (int i = 0; i < ap.length; i++) {
ap[i] = oParam.get(i);
}
String sum = db.getStringFromSqlQuery(sql1.toString(), ap);
//System.out.println("总记数:" + sum);
return Integer.parseInt(sum);
} catch (Exception e) {
FileLogger.getLogger().warn(e.getMessage(), e);
}
return 0;
}
public String getSum(ServletRequest request, ServletResponse response, Map _map) {
String sum = "0";
//String sQueryType = (String) _map.get("queryType");
//if(sQueryType == null || sQueryType.equals("0")) {
sum = String.valueOf(getAccessLogSum(_map));
//}
return sum;
}
/**用于分页
*
*/
protected int getRptListCount(Map _map) {
int count = 0;
//String sQueryType = (String) _map.get("queryType");
//if(sQueryType == null || sQueryType.equals("0")) {
count =getAccessLogCount(_map);
//}
return count;
}
private int getAccessLogCount(Map _map) {
DacClient db = new DacClient();
try {
StringBuffer sql = new StringBuffer();
StringBuffer sql1 = new StringBuffer();
List oParam = new ArrayList();
buildSQL(_map,sql,oParam);
sql1.append("select count(1) from(");
sql1.append(sql).append(")");
Object ap[] = new Object[oParam.size()];
for (int i = 0; i < ap.length; i++) {
ap[i] = oParam.get(i);
}
String count = db.getStringFromSqlQuery(sql1.toString(), ap);
//System.out.println("记录数:" + count);
return Integer.parseInt(count);
} catch (Exception e) {
FileLogger.getLogger().warn(e.getMessage(), e);
}
return 0;
}
public static String[] getStatisticType(String sStatisticType,String sStartTime,String sEndTime) {
String result[] = new String[4];
String str = "";
String timeFormat = "";
if(sStatisticType != null) {
if(sStatisticType.equals("1")) {
str = "yyyy-mm";
timeFormat = "yyyy-mm";
if(sStartTime != null && !sStartTime.equals("")) {
sStartTime = sStartTime.substring(0, 7)+"-1";
}
if(sEndTime != null && !sEndTime.equals("")) {
sEndTime = sEndTime.substring(0, 5)+
String.valueOf(Integer.parseInt(sEndTime.substring(5,7))+1)+
"-1";
}
}
else {
str = "yyyy-mm-dd";
timeFormat = "yyyy-mm-dd hh24:mi:ss";
if(sStartTime != null && !sStartTime.equals("")) {
sStartTime = sStartTime+" 00:00:00";
}
if(sEndTime != null && !sEndTime.equals("")) {
sEndTime = sEndTime+" 23:59:59";
}
}
}
else {
str = "yyyy-mm-dd";
timeFormat = "yyyy-mm-dd hh24:mi:ss";
if(sStartTime != null && !sStartTime.equals("")) {
sStartTime = sStartTime+" 00:00:00";
}
if(sEndTime != null && !sEndTime.equals("")) {
sEndTime = sEndTime+" 23:59:59";
}
}
result[0] = str;
result[1] = timeFormat;
result[2] = sStartTime;
result[3] = sEndTime;
return result;
}
private void buildWhereSQL(Map _map, StringBuffer whereSql, List oParam) {
String sCityCode = (String) _map.get("CITYCODE");
String sStartTime = (String) _map.get("STARTTIME");
String sEndTime = (String) _map.get("ENDTIME");
String sStatisticType = (String) _map.get("STATISTICTYPE");
String timeFormat = "";
String result[] = AccessanalyselogImpl.getStatisticType(sStatisticType, sStartTime, sEndTime);
timeFormat = result[1];
sStartTime = result[2];
sEndTime = result[3];
if (!ExtString.isEmpty(sCityCode) && !sCityCode.equals("0590")) {
whereSql.append("where l.citycode = ? ");
oParam.add(sCityCode);
}
if (!ExtString.isEmpty(sStartTime)) {
if(ExtString.isEmpty(sCityCode) || sCityCode.equals("0590"))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -