package com.vci.client.log.ui;
|
|
import java.awt.BorderLayout;
|
import java.awt.Dimension;
|
import java.awt.FlowLayout;
|
import java.awt.GridBagConstraints;
|
import java.awt.GridLayout;
|
import java.awt.Insets;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.Collections;
|
import java.util.Comparator;
|
import java.util.LinkedHashMap;
|
import java.util.LinkedList;
|
import java.util.List;
|
|
import javax.swing.JButton;
|
import javax.swing.JCheckBox;
|
import javax.swing.JComboBox;
|
import javax.swing.JLabel;
|
import javax.swing.JPanel;
|
import javax.swing.JTextField;
|
import javax.swing.border.TitledBorder;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import com.vci.corba.common.VCIError;
|
import com.vci.corba.log.data.LogType;
|
import com.vci.mw.ClientContextVariable;
|
import com.vci.client.LogonApplication;
|
import com.vci.client.common.VCIBasePanel;
|
import com.vci.client.common.objects.LogObject;
|
import com.vci.client.common.objects.RoleObject;
|
import com.vci.client.common.objects.UserObject;
|
import com.vci.client.framework.delegate.RightManagementClientDelegate;
|
import com.vci.client.framework.util.JAutoCompleteComboBox;
|
import com.vci.client.log.delegate.LogManagementClientDelegate;
|
import com.vci.client.oq.QTClient;
|
import com.vci.client.ui.date.PopupCalendarMethod;
|
import com.vci.client.ui.exception.VCIException;
|
import com.vci.client.ui.locale.LocaleDisplay;
|
import com.vci.client.ui.swing.VCIOptionPane;
|
import com.vci.client.ui.swing.VCISwingUtil;
|
import com.vci.client.ui.swing.components.VCIJButton;
|
import com.vci.client.ui.swing.components.VCIJComboBox;
|
import com.vci.client.ui.swing.components.VCIJPanel;
|
import com.vci.client.ui.swing.components.table.AbstractVCIJTableDataProvider;
|
import com.vci.client.ui.swing.components.table.VCIJTableNode;
|
import com.vci.client.ui.swing.components.table.VCIJTablePanel;
|
|
/**
|
*
|
* @author xiongfei
|
* 日志管理
|
* 创建时间:2011-06-13
|
*/
|
public class LogManagementPanel extends VCIJPanel {
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = -5588255327255334689L;
|
|
//获取异常信息及国际化信息的文件名
|
private String FILENAME = "RMIPFramework";
|
//查询日期:由
|
private String DATE_START = LocaleDisplay.getI18nString("rmip.framework.log.startDate", "RMIPFramework", getLocale());
|
//到
|
private String TO = LocaleDisplay.getI18nString("rmip.framework.log.to", "RMIPFramework", getLocale());
|
//创建
|
private String CREATE = LocaleDisplay.getI18nString("rmip.framework.log.create", "RMIPFramework", getLocale());
|
//修改
|
private String UPDATE = LocaleDisplay.getI18nString("rmip.framework.log.update", "RMIPFramework", getLocale());
|
//删除
|
private String DELETE = LocaleDisplay.getI18nString("rmip.framework.log.delete", "RMIPFramework", getLocale());
|
//操作用户:
|
private String OPERATEUSER = LocaleDisplay.getI18nString("rmip.framework.log.operateUser", "RMIPFramework", getLocale());
|
//查询
|
private String QUERY = LocaleDisplay.getI18nString("rmip.framework.log.query", "RMIPFramework", getLocale());
|
//导出
|
private String EXPORT = LocaleDisplay.getI18nString("rmip.framework.log.export", "RMIPFramework", getLocale());
|
//日志管理
|
private String LOGMANAGE = LocaleDisplay.getI18nString("rmip.framework.logManagementModel", "RMIPFramework", getLocale());
|
|
/**
|
* 操作类型
|
*/
|
private String OPERATE_TYPE = LocaleDisplay.getI18nString("rmip.framework.log.operateType", "RMIPFramework", getLocale());
|
|
private JLabel dateLabelStart = new JLabel(DATE_START);
|
private JLabel dateLabelTo = new JLabel(TO);
|
protected VCIJComboBox startDateBox = new VCIJComboBox();
|
protected VCIJComboBox endDateBox = new VCIJComboBox();
|
private JButton startDateButton = new PopupCalendarMethod().createDateDialogButton("date.gif",startDateBox);
|
private JButton endDateButton = new PopupCalendarMethod().createDateDialogButton("date.gif",endDateBox);
|
private JCheckBox create = new JCheckBox(CREATE);
|
private JCheckBox modify = new JCheckBox(UPDATE);
|
private JCheckBox delete = new JCheckBox(DELETE);
|
private JLabel userLabel = new JLabel(OPERATEUSER);
|
|
protected JAutoCompleteComboBox userCombox = new JAutoCompleteComboBox();
|
//added by xf 增加按用户IP查询日志 ,支持模糊查询
|
private JLabel ipLabel = new JLabel("用户IP:");
|
protected JTextField ipText = new JTextField();
|
private JLabel operateTypeLabel = new JLabel(OPERATE_TYPE);
|
protected JTextField typeText = new JTextField();
|
|
private LogManagementPanelActionListener logActionListener = new LogManagementPanelActionListener(this);
|
private VCIJButton queryBtn = VCISwingUtil.createVCIJButton("query",QUERY,QUERY,"search.png",logActionListener);
|
private VCIJButton exportBtn = VCISwingUtil.createVCIJButton("export",EXPORT,EXPORT,"export.gif",logActionListener);
|
VCIJButton queryDetail = new VCIJButton("查看详细信息", VCISwingUtil.createImageIcon("search.png"));
|
private String querySql = "";
|
LogManagementClientDelegate logDel = new LogManagementClientDelegate(LogonApplication.getUserEntityObject());
|
protected final String LOG_SAVE_PERIOD = "logSavePeriod";//日志保存期限
|
|
// 控件的坐标位置变量
|
private int x = 10;
|
private int y = 20;
|
private int width = 50;
|
private int height = 25;
|
/**
|
* 两控件间垂直间隔
|
*/
|
private int vspan = 5;
|
/**
|
* 两控件间水平间隔
|
*/
|
private int hspan = 5;
|
|
private VCIBasePanel vciBasePanel = null;
|
private LinkedList<VCIJButton> selfCustomButtons = new LinkedList<VCIJButton>();
|
{
|
selfCustomButtons.add(exportBtn);
|
selfCustomButtons.add(queryDetail);
|
}
|
|
private LogType logType = null;
|
private boolean isManagerQuery = false;
|
public LogType getLogType() {
|
return logType;
|
}
|
public void setLogType(LogType logType) {
|
this.logType = logType;
|
}
|
public boolean isManagerQuery() {
|
return isManagerQuery;
|
}
|
public void setManagerQuery(boolean isManagerQuery) {
|
this.isManagerQuery = isManagerQuery;
|
}
|
|
public LogManagementPanel(VCIBasePanel vciBasePanel, LogType logType, boolean isManagerQuery){
|
this.vciBasePanel = vciBasePanel;
|
this.logType = logType;
|
this.isManagerQuery = isManagerQuery;
|
init();
|
}
|
|
class MyDataProvider extends AbstractVCIJTableDataProvider<LogObject>{
|
@Override
|
public LogObject[] getDatas(int pageCount, int pageSize) {
|
LogObject[] logInfos = new LogObject[0];
|
try {
|
querySql = getSQL();
|
logInfos = logDel.getLogListByContion(pageCount,pageSize,querySql);
|
|
} catch (VCIException e) {
|
VCIOptionPane.showError(LogonApplication.frame, "RMIPFramework", e);
|
return null;
|
}
|
return logInfos;
|
}
|
@Override
|
public VCIJTableNode<LogObject> getNewRowNode(LogObject dataObj) {
|
VCIJTableNode<LogObject> node = new VCIJTableNode<LogObject>(dataObj);
|
node.setPropertyValue(getSpecialColumns()[0], dataObj.getUsername());
|
node.setPropertyValue(getSpecialColumns()[1], dataObj.getTruename());
|
node.setPropertyValue(getSpecialColumns()[2], dataObj.getUserIp());
|
node.setPropertyValue(getSpecialColumns()[3], dataObj.getModule());
|
node.setPropertyValue(getSpecialColumns()[4], dataObj.getType());
|
node.setPropertyValue(getSpecialColumns()[5], dataObj.getDate());
|
String result = "操作成功";
|
String memo = dataObj.getResult();
|
if(StringUtils.isNotBlank(memo)){
|
boolean hasResult =false;
|
if(memo.startsWith("操作") && memo.length()>4){
|
result = memo.substring(0,4);
|
hasResult = true;
|
}
|
if((memo.startsWith("登入") || memo.startsWith("登出"))&& memo.length()>4){
|
result = memo.substring(0,4);
|
hasResult = true;
|
}
|
if(memo.length()>5 && hasResult){
|
memo = memo.substring(5);
|
}else{
|
//memo = "";
|
}
|
}
|
node.setPropertyValue(getSpecialColumns()[6], result);
|
node.setPropertyValue(getSpecialColumns()[7], memo);
|
return node;
|
}
|
|
@Override
|
public String[] getSpecialColumns() {
|
return "用户名,姓名, 用户ip,模块,操作,时间,操作结果, 描述".split(",");
|
}
|
@Override
|
public int getTotal() {
|
querySql = getSQL();
|
try {
|
total = (int) logDel.getSumLogRows(querySql);
|
} catch (VCIException e) {
|
e.printStackTrace();
|
VCIOptionPane.showError(LogonApplication.frame, "RMIPFramework", e);
|
}
|
return this.total;
|
}
|
}
|
|
protected MyDataProvider dataProvider = new MyDataProvider();
|
protected VCIJTablePanel<LogObject> tablePanel = new VCIJTablePanel<LogObject>(dataProvider);
|
private VCIJPanel tablePanel(){
|
LinkedHashMap<Integer, Integer> widthMaps = new LinkedHashMap<Integer, Integer>();
|
widthMaps.put(2, 150);
|
widthMaps.put(3, 150);
|
widthMaps.put(4, 150);
|
widthMaps.put(5, 150);
|
widthMaps.put(6, 150);
|
widthMaps.put(7, 150);
|
widthMaps.put(8, 150);
|
widthMaps.put(9, 350);
|
tablePanel.setColumnWidthMaps(widthMaps);
|
tablePanel.setCustomButtons(selfCustomButtons);
|
tablePanel.setShowPaging(true);
|
tablePanel.setCustomButtonFlowAlign(FlowLayout.CENTER);
|
tablePanel.setPageButtonFlowAlign(FlowLayout.CENTER);
|
tablePanel.setShowExport(false);
|
tablePanel.buildTablePanel();
|
tablePanel.refreshTableData();
|
return tablePanel;
|
}
|
/**
|
* 初始化页面
|
*/
|
private void init(){
|
JPanel palMain = new JPanel();
|
palMain.setLayout(new BorderLayout());
|
palMain.setBorder(new TitledBorder(LOGMANAGE));
|
|
JPanel palTop = new JPanel();//上部
|
//初始化
|
initTop(palTop);//上部
|
initComboBox();//下拉框
|
initAction();
|
|
palMain.add(palTop, BorderLayout.NORTH);
|
palMain.add(tablePanel(), BorderLayout.CENTER);
|
this.setLayout(new BorderLayout());
|
this.add(palMain,BorderLayout.CENTER);
|
}
|
|
private void initAction(){
|
queryDetail.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent paramActionEvent) {
|
queryDetai_Method();
|
|
}
|
});
|
}
|
private void queryDetai_Method(){
|
int select = tablePanel.getSelectedRowIndexs().length;
|
if(select ==0){
|
VCIOptionPane.showMessage(this,
|
"请选择要查看的数据!");
|
return;
|
}else if(select>1){
|
VCIOptionPane.showMessage(this,
|
"请选择单条数据进行查看!");
|
return;
|
}else{
|
LinkedList<LogObject> list = tablePanel.getSelectedRowObjects();
|
LogObject dataObj = list.getFirst();
|
new DetailDialog(dataObj.getResult());
|
}
|
}
|
/**
|
* 初始化上部
|
* @param palTop
|
*/
|
private void initTop(JPanel palTop){
|
JPanel palLeft = new JPanel();//上部左边的部分
|
palLeft.setLayout(null);
|
palLeft.setPreferredSize(new Dimension(700,200));
|
initTopLeft(palLeft);
|
|
palTop.setLayout(new GridLayout());
|
palTop.setPreferredSize(new Dimension(900,50));
|
palTop.add(palLeft,new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
|
,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 30, 10, 0), 0, 0));
|
}
|
|
/**
|
* 初始化上部左边
|
* @param palLeft
|
*/
|
private void initTopLeft(JPanel palLeft){
|
|
/*-----------------------------第一行---------------------------------*/
|
|
x = 20; y = 10; width = 80; height = 25;
|
dateLabelStart.setBounds(x, y, width, height);//查询日期:由
|
|
x += dateLabelStart.getBounds().width+hspan; y = 10; width=120;height=25;
|
startDateBox.setBounds(x, y, width, height);//起始日期
|
|
x += startDateBox.getBounds().width+hspan; y = 10;width=25;height=25;
|
startDateButton.setBounds(x, y, width, height);//日期控件
|
|
x+= startDateButton.getBounds().width+hspan;y = 10;width=25;height=25;
|
dateLabelTo.setBounds(x, y, width, height);//到
|
|
x+= dateLabelTo.getBounds().width+hspan;y = 10;width=120;height=25;
|
endDateBox.setBounds(x, y, width, height);//结束日期
|
|
x+= endDateBox.getBounds().width+hspan;y = 10;width=25;height=25;
|
endDateButton.setBounds(x, y, width, height);//日期控件
|
|
/*-----------------------------第三行---------------------------------*/
|
|
x = 460;y = 10;width = 60;height = 25;
|
userLabel.setBounds(x, y, width, height);
|
|
x+=userLabel.getBounds().width+hspan+20; width=180;
|
userCombox.setBounds(x, y, width, height);
|
userCombox.setEditable(true);
|
|
x+=userCombox.getBounds().width+hspan+15; width=60;
|
ipLabel.setBounds(x, y, width, height);
|
x+=ipLabel.getBounds().width+hspan; width = 105;
|
ipText.setBounds(x, y, width, height);
|
|
|
x+= ipText.getBounds().width + hspan + 20;
|
width = 80;
|
operateTypeLabel.setBounds(x,y,width,height);
|
|
x+= operateTypeLabel.getBounds().width + hspan ;
|
width = 100;
|
typeText.setBounds(x,y,width,height);
|
|
x+= typeText.getBounds().width + hspan; width = 80;
|
queryBtn.setBounds(x, y, width, height);
|
|
|
//第一行
|
palLeft.add(dateLabelStart);
|
palLeft.add(startDateBox);
|
palLeft.add(startDateButton);
|
palLeft.add(dateLabelTo);
|
palLeft.add(endDateBox);
|
palLeft.add(endDateButton);
|
//第三行
|
palLeft.add(userLabel);
|
palLeft.add(userCombox);
|
palLeft.add(ipLabel);
|
palLeft.add(ipText);
|
palLeft.add(operateTypeLabel);
|
palLeft.add(typeText);
|
|
|
palLeft.add(queryBtn);
|
}
|
|
/**
|
* 初始化下拉框,用户,期限
|
*/
|
protected void initComboBox(){
|
initUser();
|
}
|
|
/***
|
* 初始化用户
|
*/
|
protected void initUser() {
|
UserObject[] users = getUserObjects();
|
setUserObjectToComboBox(users);
|
}
|
|
private static final String SYSTEM_ADMIN_ROLE = "系统管理员";
|
|
private static final String SEC_ADMIN_ROLE = "安全管理员";
|
|
private static final String AUDIT_ADMIN_ROLE = "审计管理员";
|
|
|
protected UserObject[] getUserObjects(){
|
// UserObject[] users = new UserObject[0];
|
// try {
|
// RightManagementClientDelegate del = new RightManagementClientDelegate(LogonApplication.getUserEntityObject());
|
// int userType = 0;
|
//
|
// List<UserObject> lstUser = new ArrayList<UserObject>();
|
// if(isManagerQuery()){
|
// RoleObject role = del.fetchRoleByName(SYSTEM_ADMIN_ROLE);
|
// users = del.fetchUsersByRoleId(role.getId());
|
// for (UserObject user : users)
|
// lstUser.add(user);
|
//
|
// role = del.fetchRoleByName(SEC_ADMIN_ROLE);
|
// users = del.fetchUsersByRoleId(role.getId());
|
// for (UserObject user : users)
|
// lstUser.add(user);
|
//
|
//// role = del.fetchRoleByName(AUDIT_ADMIN_ROLE);
|
//// users = del.fetchUsersByRoleId(role.getId());
|
//// for (UserObject user : users)
|
//// lstUser.add(user);
|
//
|
// users = lstUser.toArray(new UserObject[0]);
|
// userType = 0;
|
// } else {
|
// userType = 1;
|
// users = del.fetchUserInfoByType(userType);
|
// //看是不是审计管理员,审计管理员可以看系统管理和安全管理
|
//
|
// if(isAdminByRoleName(AUDIT_ADMIN_ROLE)){
|
// return wrapperAdminUser(users, Arrays.asList(new String[]{SYSTEM_ADMIN_ROLE,SEC_ADMIN_ROLE}));
|
// }
|
// if(isAdminByRoleName(SEC_ADMIN_ROLE)){
|
// return wrapperAdminUser(users, Arrays.asList(new String[]{AUDIT_ADMIN_ROLE}));
|
// }
|
// }
|
// //users = del.fetchUserInfoByType(userType);
|
// } catch (VCIException re) {
|
// VCIOptionPane.showError(LogonApplication.frame, FILENAME, re);
|
// }
|
// return users;
|
List<UserObject> users = new ArrayList<UserObject>();
|
if("secAdmin".equals(ClientContextVariable.getInvocationInfo().userName)){
|
try {
|
users.addAll(getUsersByUserNames(Arrays.asList("auditAdmin")));
|
users.addAll(getUsersByUserNames(getUserNameByUserType(2)));
|
} catch (VCIException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
} catch (VCIError e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
}
|
else if("auditAdmin".equals(ClientContextVariable.getInvocationInfo().userName)){
|
try {
|
users.addAll(getUsersByUserNames(Arrays.asList("secAdmin", "sysAdmin")));
|
} catch (VCIException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
} else if("sysAdmin".equals((ClientContextVariable.getInvocationInfo().userName))){
|
|
}
|
return users.toArray(new UserObject[users.size()]);
|
}
|
private List<UserObject> getUsersByUserNames(List<String> userNames) throws VCIException{
|
List<UserObject> userList = new ArrayList<UserObject>();
|
RightManagementClientDelegate rmcd = new RightManagementClientDelegate(LogonApplication.getUserEntityObject());
|
for(String userName : userNames){
|
userList.add(rmcd.fetchUserInfoByName(userName));
|
}
|
|
Collections.sort(userList, new Comparator<UserObject>(){
|
@Override
|
public int compare(UserObject o1, UserObject o2) {
|
return o1.getUserName().compareTo(o2.getUserName());
|
}
|
});
|
return userList;
|
}
|
|
private List<String> getUserNameByUserType(int userType) throws VCIError{
|
List<String> userNames = new ArrayList<String>();
|
String sql = "select plusername,pltruename from pluser u where u.plusertype = " + String.valueOf(userType);
|
String[][] valss = QTClient.getService().queryBySqlWithoutKey(sql);
|
for(String[] vals : valss){
|
userNames.add(vals[0]);
|
}
|
return userNames;
|
}
|
|
private UserObject[] wrapperAdminUser(UserObject[] users,List<String> adminRoleList){
|
List<UserObject> userObjList = new ArrayList<UserObject>();
|
Collections.addAll(userObjList, users);
|
RightManagementClientDelegate del = new RightManagementClientDelegate(LogonApplication.getUserEntityObject());
|
try{
|
for(String roleName:adminRoleList){
|
RoleObject role = del.fetchRoleByName(roleName);
|
UserObject[] tempUsers = del.fetchUsersByRoleId(role.getId());
|
for (UserObject user : tempUsers){
|
userObjList.add(user);
|
}
|
}
|
}catch(Throwable e){
|
|
}
|
return userObjList.toArray(new UserObject[0]);
|
}
|
|
|
private boolean isAdminByRoleName(String roleName){
|
boolean isAuditUser = false;
|
try{
|
RightManagementClientDelegate del = new RightManagementClientDelegate(LogonApplication.getUserEntityObject());
|
RoleObject role = del.fetchRoleByName(roleName);
|
UserObject[] auditUsers = del.fetchUsersByRoleId(role.getId());
|
|
for (UserObject user : auditUsers){
|
if(user.getUserName().equals(LogonApplication.getUserObject().getUserName())){
|
isAuditUser = true;
|
break;
|
}
|
}
|
}catch(Throwable a){
|
|
}
|
return isAuditUser;
|
}
|
|
|
protected void setUserObjectToComboBox(UserObject[] users){
|
for(UserObject obj : users){
|
userCombox.addItem(obj);
|
}
|
userCombox.setSelectedIndex(-1);
|
}
|
|
/**
|
* 获取查询条件并拼成SQL,只拼where子句后面的SQL
|
* @return
|
*/
|
public String getSQL(){
|
String startDate = String.valueOf(this.startDateBox.getSelectedItem());//获取起始时间
|
String endDate = String.valueOf(this.endDateBox.getSelectedItem());//获取结束时间
|
|
StringBuffer sql = new StringBuffer("");
|
int period = this.getPeriod(LOG_SAVE_PERIOD);//获取保存期限,以月为单位
|
//下面是拼出SQL
|
if(period != 0){
|
sql.append(" to_date(PLDATE) >= add_months(to_date(sysdate),"+(-period)+")");
|
}
|
if(!startDate.trim().equals("")&&!startDate.equals("null")&&startDate!=null){//起始日期
|
if(!sql.toString().equals("")){
|
sql.append(" and ");
|
}
|
sql.append(" to_date(PLDATE) >= to_date('"+startDate.trim()+"','yyyy-MM-dd') ");
|
}
|
if(!endDate.trim().equals("")&&!endDate.equals("null")&&endDate!=null){//结束日期
|
if(!sql.toString().equals("")){
|
sql.append(" and ");
|
}
|
sql.append(" trunc(PLDATE) <= to_date('"+endDate.trim()+"','yyyy-MM-dd')");
|
}
|
|
if(getLogType() == LogType.Login) {//登入登出日志
|
if(!sql.toString().equals("")){
|
sql.append(" and ");
|
}
|
sql.append("PLLOGTYPE in ('" + getLogTypeString(LogType.Login) +"','" + getLogTypeString(LogType.Logout)+ "')");
|
} else if(getLogType() == LogType.Grant) {//授权日志
|
if(!sql.toString().equals("")){
|
sql.append(" and ");
|
}
|
sql.append("PLLOGTYPE in('" + getLogTypeString(LogType.Grant) + "')");
|
} else if(getLogType() == LogType.General) {//一般操作日志
|
if(!sql.toString().equals("")){
|
sql.append(" and ");
|
}
|
sql.append("PLLOGTYPE in('" + getLogTypeString(LogType.General) + "')");
|
}
|
// String roleNameSql = getSqlByRole();
|
// if(!"".equals(roleNameSql)) {
|
// sql.append(" and "+ roleNameSql);
|
// }
|
//
|
if(userCombox.getSelectedItem() != null&&!userCombox.getSelectedItem().equals("")){//操作用户
|
String userName = "";
|
Object obj = userCombox.getSelectedItem();
|
if(obj instanceof UserObject){
|
UserObject user = (UserObject)obj;
|
userName = user.getUserName();
|
}else{
|
userName = (String)obj;
|
}
|
if(!userName.trim().equals("")){//如果用户名为空格则不加用户条件
|
if(!sql.toString().equals("")){
|
sql.append(" and ");
|
}
|
if(userName.contains("*")){
|
userName = userName.trim().replaceAll("\\*", "%");
|
sql.append(" PLUSER like '").append(userName.trim()).append("'");
|
}else{
|
sql.append(" PLUSER = '").append(userName.trim()).append("'");
|
}
|
}
|
}
|
//按IP查询
|
if(!ipText.getText().trim().equals("")){
|
String ip = ipText.getText().trim();
|
if(!sql.toString().equals("")){
|
sql.append(" and ");
|
}
|
if(ip.trim().contains("*")){//模糊查询
|
ip = ip.trim().replaceAll("\\*", "%");
|
sql.append(" PLIP like '").append(ip.trim()).append("'");
|
}else{
|
sql.append(" PLIP = '").append(ip.trim()).append("'");
|
}
|
}
|
if(StringUtils.isNotBlank(typeText.getText())){
|
String typeValue = typeText.getText();
|
sql.append(" and pltype like '%").append(typeValue).append("%'");
|
}
|
//过滤掉admin和developer用户的日志记录
|
sql.append(" and PLUSER !='admin' and PLUSER !='developer' ");
|
|
sql.append(" and pluser != '" + ClientContextVariable.getInvocationInfo().userName + "' ");
|
|
|
// 安全保密员不看系统管理员的日志
|
if("secAdmin".equals(ClientContextVariable.getInvocationInfo().userName)){
|
sql.append(" and pluser != 'sysAdmin' ");
|
}
|
// 审计管理员只看系统管理员和安全保密员的日志
|
else if("auditAdmin".equals(ClientContextVariable.getInvocationInfo().userName)){
|
sql.append(" and pluser in ('secAdmin', 'sysAdmin')");
|
}
|
return sql.toString();
|
}
|
protected String getSqlByRole(){
|
RightManagementClientDelegate del = new RightManagementClientDelegate(LogonApplication.getUserEntityObject());
|
StringBuilder roleNameString = new StringBuilder();
|
|
try {
|
RoleObject[] roleObj = del.fetchRoleInfoByRoleType(1);//取出管理员角色
|
StringBuilder userString = new StringBuilder();
|
for(int k = 0;k < roleObj.length;k++) {
|
RoleObject obj = roleObj[k];
|
userString.append(" '");
|
userString.append(obj.getName());
|
userString.append("' ");
|
if(k < roleObj.length - 1) {
|
userString.append(" ,");
|
}
|
}
|
|
if("".equals(userString.toString())) {
|
return "";
|
}
|
//管理员日志记录
|
if(isManagerQuery()){
|
roleNameString.append("PLROLENAME in ( ");
|
}else{
|
roleNameString.append("PLROLENAME not in ( ");
|
}
|
|
roleNameString.append(userString.toString());
|
roleNameString.append(" ) ");
|
} catch (VCIException e) {
|
e.printStackTrace();
|
VCIOptionPane.showError(LogonApplication.frame,"RMIPFramework", e);
|
}
|
|
return roleNameString.toString();
|
}
|
|
protected String getLogTypeString(LogType logType){
|
String res = "";
|
if(logType == LogType.Login) {
|
res = "登录";
|
} else if(logType == LogType.Logout) {
|
res = "登出";
|
} else if(logType == LogType.Grant) {
|
res = "授权";
|
} else if(logType == LogType.General) {
|
res = "一般操作";
|
} else if(logType == LogType.Integration) {
|
res = "集成应用";
|
}
|
return res;
|
}
|
|
/**
|
* 获取日志保存期限
|
* @param type 类型,判断是保存还是备份期限
|
* @return
|
*/
|
protected int getPeriod(String type){
|
int curPeriod = 0;
|
try {
|
curPeriod = this.logDel.getCurPeriod(type);
|
} catch (VCIException e) {
|
VCIOptionPane.showError(LogonApplication.frame, FILENAME, e);
|
curPeriod = 0;
|
}
|
return curPeriod;
|
}
|
|
|
|
}
|