📄 datamatcher.java
字号:
package dms.business.collectProcess;
import java.io.IOException;
import java.util.Vector;
import dms.data.LogRecord;
import dms.data.MatchedRecord;
import dms.util.FileUtil;
public class DataMatcher {
/**
* 匹配登录、登出数据
* @param logout 登出数据
* @param login 登录数据
* @return 匹配好的用户登录时长记录
* @throws IOException
* @throws Exception
*/
public Vector<MatchedRecord> match(Vector<LogRecord> logouts,Vector<LogRecord> logins) throws IOException {
System.out.println("本次需要匹配:登录="+logins.size()+"条,登出="+logouts.size()+"条");
Vector<MatchedRecord> matchedRecords = new Vector<MatchedRecord>();
for(LogRecord logout:logouts){
for(LogRecord login:logins){
if(logout.getUserName().equals(login.getUserName()) &&
logout.getPid() == login.getPid() &&
logout.getUserIp().equals(login.getUserIp()) &&
logout.getVisitTime() > login.getVisitTime()){
MatchedRecord matchedRecord = new MatchedRecord();
matchedRecord.setUserName(logout.getUserName());
matchedRecord.setUserIp(logout.getUserIp());
matchedRecord.setLabIp(logout.getLabIp());
matchedRecord.setLoginTime(login.getVisitTime());
matchedRecord.setLogoutTime(logout.getVisitTime());
matchedRecord.setDuration(logout.getVisitTime() - login.getVisitTime());
matchedRecords.addElement(matchedRecord);
logins.remove(login);
break ;//跳出login循环,执行logout下一次循环
}
}
}
// 循环匹配到此结束,此时logins里面剩余的就是没有匹配上的,把这个logins写入文件
String fileName = FileUtil.getHistoryFile();
FileUtil.passivate(fileName,logins);
System.out.println("本次匹配成功:"+matchedRecords.size()+"条");
System.out.println("本次匹配失败:"+logins.size()+"条");
return matchedRecords;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -