package com.hrms.action; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.hrms.model.Module; import com.hrms.model.Syslog; import com.hrms.model.User; import com.hrms.service.IModuleService; import com.hrms.service.ISyslogService; import com.hrms.service.IUserService; import com.hrms.util.Page; import com.hrms.util.PoiExport; @Component("syslogAction") @Scope("prototype") public class SyslogAction extends BaseAction { private static final long serialVersionUID = 8679351388942070945L; private ISyslogService syslogService; private IUserService userService; private IModuleService moduleService; private Syslog syslog; private List<Syslog> syslogs; private Page page; private int currentPage = 1; private PoiExport poiExport; private String fileName; private InputStream excelStream; public void setExcelStream(InputStream excelStream) { this.excelStream = excelStream; } public InputStream getExcelStream() throws IOException { String userName = getRequest().getParameter("syslogUserName"); String moduleName = getRequest().getParameter("syslogModuleName"); String action = getRequest().getParameter("syslogAction"); String type = getRequest().getParameter("syslogType"); String accessIp = getRequest().getParameter("syslogAccessIp"); String firstTime = getRequest().getParameter("syslogFirstTime"); String nextTime = getRequest().getParameter("syslogNextTime"); String hql = getHql(userName,moduleName,action,type,accessIp,firstTime, nextTime); syslogs = syslogService.findByHql(hql.toString()); String[] headTitle = { "序号","日期","用户","模块","操作","类型","访问IP" }; List<String> listString = new ArrayList<String>(); for (int i = 0; i < syslogs.size(); i++) { String str = ""; String poiUserName = ""; String poiModuleName = ""; if (syslogs.get(i)!=null && !syslogs.get(i).equals("")) { User user = syslogs.get(i).getUser(); if (user!=null) { poiUserName = user.getUserName(); } Module module = syslogs.get(i).getModule(); if (module!=null) { poiModuleName = module.getModuleName(); } str = syslogs.get(i).getLogId() + "," + syslogs.get(i).getDate() + "," + poiUserName + "," + poiModuleName +"," + syslogs.get(i).getAction() + ","+ syslogs.get(i).getType() + ","+ syslogs.get(i).getAccessIp(); } listString.add(str); } excelStream = poiExport.exportExcel(fileName, headTitle, listString); return excelStream; } public String syslog_list() { int totalSzie = syslogService.getSize(); this.page = new Page(currentPage, totalSzie); syslogs = syslogService.getListByPageByDesc(currentPage, page .getPageSize(), "date"); return "success"; } public String syslog_my() { Integer userId = (Integer) getSession().getAttribute("userId"); String hql = "from Syslog s where s.user.userId="+userId; int totalSzie = syslogService.getListSize(hql); this.page = new Page(currentPage, totalSzie); syslogs = syslogService.findAllByPage(hql, currentPage, page.getPageSize()); return "success"; } public String syslog_query() { String userName = getRequest().getParameter("syslogUserName"); String moduleName = getRequest().getParameter("syslogModuleName"); String action = getRequest().getParameter("syslogAction"); String type = getRequest().getParameter("syslogType"); String accessIp = getRequest().getParameter("syslogAccessIp"); String firstTime = getRequest().getParameter("syslogFirstTime"); String nextTime = getRequest().getParameter("syslogNextTime"); getRequest().setAttribute("syslogUserName", userName); getRequest().setAttribute("syslogModuleName", moduleName); getRequest().setAttribute("syslogAction", action); getRequest().setAttribute("syslogType", type); getRequest().setAttribute("syslogAccessIp", accessIp); getRequest().setAttribute("syslogFirstTime", firstTime); getRequest().setAttribute("syslogNextTime", nextTime); String hql = getHql(userName,moduleName,action,type,accessIp,firstTime, nextTime); int totalSzie = syslogService.getListSize(hql); this.page = new Page(currentPage, totalSzie); syslogs = syslogService.findAllByPage(hql, currentPage, page.getPageSize()); return "success"; } public String getHql(String userName,String moduleName,String action,String type,String accessIp,String firstTime, String nextTime) { StringBuffer hql = new StringBuffer(); hql.append("from Syslog s where 1=1 "); if (userName!=null && !userName.equals("")) { hql.append("and s.user.userName like '%" + userName + "%' "); } if (moduleName!=null && !moduleName.equals("")) { hql.append("and s.module.moduleName like '%" + moduleName + "%' "); } if (action != null && !action.equals("")) { hql.append("and s.action like '%" + action + "%' "); } if (type != null && !type.equals("")) { hql.append("and s.type like '%" + type + "%' "); } if (accessIp != null && !accessIp.equals("")) { hql.append("and s.accessIp like '%" + accessIp + "%' "); } if (firstTime != null && !firstTime.equals("")) { hql.append("and s.date >= '" + firstTime + "' "); } if (nextTime != null && !nextTime.equals("")) { hql.append("and s.date <= '" + nextTime + "' "); } return hql.toString(); } public ISyslogService getSyslogService() { return syslogService; } @Resource public void setSyslogService(ISyslogService syslogService) { this.syslogService = syslogService; } public List<Syslog> getSyslogs() { return syslogs; } public void setSyslogs(List<Syslog> syslogs) { this.syslogs = syslogs; } public Page getPage() { return page; } public void setPage(Page page) { this.page = page; } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public IUserService getUserService() { return userService; } @Resource public void setUserService(IUserService userService) { this.userService = userService; } public IModuleService getModuleService() { return moduleService; } @Resource public void setModuleService(IModuleService moduleService) { this.moduleService = moduleService; } public Syslog getSyslog() { return syslog; } public void setSyslog(Syslog syslog) { this.syslog = syslog; } public PoiExport getPoiExport() { return poiExport; } @Resource public void setPoiExport(PoiExport poiExport) { this.poiExport = poiExport; } public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } }