📄 clientlogin.java
字号:
/*
* 创建日期 2005-7-26
*/
package com.doone.fj1w.fjmgr.sysmgr;
import java.awt.Color;
import java.awt.Font;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import com.doone.data.DataTable;
import com.doone.fj1w.fjmgr.order.DAO;
import com.doone.util.FileLogger;
/**
* @author huzx
*
*/
public class ClientLogin extends DAO {
/** 游客* */
public static final String ANONYMOUS = "0";
/** 注册用户* */
public static final String REGEISTER_USER = "1";
/** 产品编号* */
public static final String PRODUCT = "2";
/** 系统操作日志序号* */
private String clientloginid = "";
/** 操作模块编号,大类* */
private String siteid = "";
/** 操作时间* */
private String operatetime = "";
/** 操作者类别,0-游客,1-注册帐号,2-产品编号* */
private String logintype = ANONYMOUS;
/** 注册帐号* */
private String userid = "";
/** IP地址* */
private String ipaddress = "";
/** 操作系统* */
private String os = "";
/** 浏览器* */
private String browser = "";
/** 屏幕大小* */
private String screensize = "";
/** 颜色深度* */
private String colordeep = "";
/** 系统语言* */
private String systemlanguage = "";
// private String sDate = "";
// private String eDate = "";
// private double threshold;
public ClientLogin() {
FileLogger.getLogger().debug("ClientLogin 数据库链接" + _dac);
}
/**
* 添加登录客户IP
*
* @param IP
* @return
*/
public String addClientLogin() {
String sql = "insert into tl_clientlogin(CLIENTLOGINID,USERID,OPERATETIME,LOGINTYPE,IPADDRESS)"
+ "values(?,?,sysdate,0,?)";
Object[] value = new Object[3];
value[0] = getClientLoginSequences();
value[1] = userid;
value[2] = ipaddress;
try {
_dac.executeUpdate(sql, 1000, value);
} catch (Exception e) {
FileLogger.getLogger().debug(e.getMessage());
}
return (String) value[0];
}
/**
* 获取tl_ClientLogin 表Sequences
*
* @return
*/
public String getClientLoginSequences() {
String sql = "select seq_clientloginid.nextval from dual";
DataTable dataTable = new DataTable();
try {
dataTable = _dac.executeQuery(sql);
} catch (Exception e) {
FileLogger.getLogger().debug(e.getMessage());
}
return dataTable.getRow(0).getString(0);
}
/**
* 最大连接数
*
* @param sDate
* 起始日期
* @param eDate
* 结束日期
* @return
*/
public DataTable getMaxConnection(String sDate, String eDate) {
DataTable dataTable = null;
String sql = "select max(b.coun) , to_char(to_date(b.operatetime,'yyyy-MM-dd HH24:mi:ss'),'yyyy-MM-dd')"
+ " from(select count(a.clientloginid) coun,to_char(a.operatetime,'yyyy-MM-dd HH24:mi:ss') operatetime"
+ " from Tl_Clientlogin a where trunc(a.operatetime) = trunc(a.operatetime) "
+ " and trunc(a.operatetime) between to_date(?,'yyyy-MM-dd') and to_date(?,'yyyy-MM-dd')"
+ " group by to_char(a.operatetime,'yyyy-MM-dd HH24:mi:ss')) b "
+ " group by to_char(to_date(b.operatetime,'yyyy-MM-dd HH24:mi:ss'),'yyyy-MM-dd')";
Object[] value = new Object[2];
value[0] = sDate;
value[1] = eDate;
try {
dataTable = _dac.executeQuery(sql, value);
} catch (Exception e) {
FileLogger.getLogger().debug(e.getMessage());
}
return dataTable;
}
/**
* 访问量
*
* @param sDate
* 起始日期
* @param eDate
* 结束日期
* @return
*/
public DataTable getVisiting(String sDate, String eDate) {
DataTable dataTable = null;
String sql = "select count(t.clientloginid),to_char(t.operatetime,'yyyy-MM-dd')from"
+ " tl_clientlogin t "
+ " where trunc(t.operatetime) between to_date(?,'yyyy-MM-dd') and to_date(?,'yyyy-MM-dd')"
+ " group by to_char(t.operatetime,'yyyy-MM-dd')";
Object[] value = new Object[2];
value[0] = sDate;
value[1] = eDate;
try {
dataTable = _dac.executeQuery(sql, value);
} catch (Exception e) {
FileLogger.getLogger().debug(e.getMessage());
}
return dataTable;
}
/**
* 柱型图并发量数据集
*
* @param sDate
* 起始日期
* @param eDate
* 结束日期
* @return
*/
public CategoryDataset getConDataSet(String sDate, String eDate) {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
ClientLogin clientLogin = new ClientLogin();
DataTable dataCon = clientLogin.getMaxConnection(sDate, eDate);
for (int i = 0; i < dataCon.getRows().getCount(); i++) {
dataset.addValue(Integer.parseInt(dataCon.getRow(i).getString(0)),
"并发量", dataCon.getRow(i).getString(1));
}
return dataset;
}
/**
* 柱型图访问量数据集
*
* @param sDate
* 起始日期
* @param eDate
* 结束日期
* @return
*/
public CategoryDataset getVisitDataSet(String sDate, String eDate) {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
ClientLogin clientLogin = new ClientLogin();
DataTable dataVisit = clientLogin.getVisiting(sDate, eDate);
for (int i = 0; i < dataVisit.getRows().getCount(); i++) {
dataset.addValue(
Integer.parseInt(dataVisit.getRow(i).getString(0)), "访问量",
dataVisit.getRow(i).getString(1));
}
return dataset;
}
/**
* 柱型图并发量,访问量数据集
*
* @param sDate
* @param eDate
* @return
*/
public CategoryDataset getDataSet(String sDate, String eDate) {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
ClientLogin clientLogin = new ClientLogin();
DataTable dataVisit = clientLogin.getVisiting(sDate, eDate);
DataTable dataCon = clientLogin.getMaxConnection(sDate, eDate);
for (int i = 0; i < dataVisit.getRows().getCount(); i++) {
dataset.addValue(
Integer.parseInt(dataVisit.getRow(i).getString(0)), "访问量",
dataVisit.getRow(i).getString(1));
dataset.addValue(Integer.parseInt(dataCon.getRow(i).getString(0)),
"并发量", dataCon.getRow(i).getString(1));
}
return dataset;
}
public JFreeChart createChart(CategoryDataset dataset) {
JFreeChart chart = ChartFactory.createBarChart3D("系统接入数", // 图表标题
"日期", // 目录轴的显示标签
"数量", // 数值轴的显示标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
CategoryPlot plot = chart.getCategoryPlot();
BarRenderer3D renderer = new BarRenderer3D();
renderer.setBaseOutlinePaint(Color.BLACK);
// 显示每个柱的数值,并修改该数值的字体属性
renderer
.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setItemLabelFont(new Font("黑体", Font.PLAIN, 12));
renderer.setItemLabelsVisible(true);
plot.setRenderer(renderer);
// 斜四十五度显示
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_90);
plot.setDomainAxis(domainAxis);
// ValueAxis rangeAxis = plot.getRangeAxis();
// 设置最高的一个 Item 与图片顶端的距离
// rangeAxis.setUpperMargin(1);
// 设置最低的一个 Item 与图片底端的距离
// rangeAxis.setLowerMargin(1);
// plot.setRangeAxis(rangeAxis);*/
return chart;
}
/**
* @param browser
* 要设置的 browser。
*/
public void setBrowser(String browser) {
this.browser = browser;
}
/**
* @param clientloginid
* 要设置的 clientloginid。
*/
public void setClientloginid(String clientloginid) {
this.clientloginid = clientloginid;
}
/**
* @param colordeep
* 要设置的 colordeep。
*/
public void setColordeep(String colordeep) {
this.colordeep = colordeep;
}
/**
* @param ipaddress
* 要设置的 ipaddress。
*/
public void setIpaddress(String ipaddress) {
this.ipaddress = ipaddress;
}
/**
* @param logintype
* 要设置的 logintype。
*/
public void setLogintype(String logintype) {
this.logintype = logintype;
}
/**
* @param operatetime
* 要设置的 operatetime。
*/
public void setOperatetime(String operatetime) {
this.operatetime = operatetime;
}
/**
* @param os
* 要设置的 os。
*/
public void setOs(String os) {
this.os = os;
}
/**
* @param screensize
* 要设置的 screensize。
*/
public void setScreensize(String screensize) {
this.screensize = screensize;
}
/**
* @param siteid
* 要设置的 siteid。
*/
public void setSiteid(String siteid) {
this.siteid = siteid;
}
/**
* @param systemlanguage
* 要设置的 systemlanguage。
*/
public void setSystemlanguage(String systemlanguage) {
this.systemlanguage = systemlanguage;
}
/**
* @param userid
* 要设置的 userid。
*/
public void setUserid(String userid) {
this.userid = userid;
}
String getBrowser() {
return browser;
}
String getClientloginid() {
return clientloginid;
}
String getColordeep() {
return colordeep;
}
String getIpaddress() {
return ipaddress;
}
String getLogintype() {
return logintype;
}
String getOperatetime() {
return operatetime;
}
String getOs() {
return os;
}
String getScreensize() {
return screensize;
}
String getSiteid() {
return siteid;
}
String getSystemlanguage() {
return systemlanguage;
}
String getUserid() {
return userid;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -