package edu.sjtu.infosec.ismp.manager.EM.web.actions; import java.io.UnsupportedEncodingException; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Enumeration; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import edu.sjtu.infosec.ismp.manager.EM.comm.BaseAction; import edu.sjtu.infosec.ismp.manager.EM.comm.Page; import edu.sjtu.infosec.ismp.manager.EM.dao.queryCondition.EventmoniinfoCondition; import edu.sjtu.infosec.ismp.manager.EM.dao.queryCondition.EventrealdispCondition; import edu.sjtu.infosec.ismp.manager.EM.dao.queryResult.EventmoniinfoResult; import edu.sjtu.infosec.ismp.manager.EM.dao.queryResult.EventrealdispResult; import edu.sjtu.infosec.ismp.manager.EM.model.Eventmoniinfo; import edu.sjtu.infosec.ismp.manager.EM.model.Eventrealdisp; import edu.sjtu.infosec.ismp.manager.EM.web.form.EventSelectConditionForm; import edu.sjtu.infosec.ismp.manager.SYSM.user.self.comm.SecurityUserHolder; import edu.sjtu.infosec.ismp.security.Domain; /** * web层 事件查询Action. * * @version 2009-06-02 * @author yang li */ public class EventSelectConditionAction extends BaseAction { protected final Log log = LogFactory.getLog(getClass()); private EventBaseClass eventBaseClass; private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public void setEventBaseClass(EventBaseClass eventBaseClass) { this.eventBaseClass = eventBaseClass; } /** * 获取查询参数 * * @param request * HttpServletRequest * @return 查询参数Map * @throws UnsupportedEncodingException */ public Map getParamMap(HttpServletRequest request) throws UnsupportedEncodingException { Map paramMap = new HashMap(); String encoding = "ISO-8859-1"; Enumeration paramNames = request.getParameterNames(); while (paramNames.hasMoreElements()) { String paramName = (String) paramNames.nextElement(); if (null != request.getParameter(paramName) && !"".equals(request.getParameter(paramName).trim())) { String paramValue = new String(request.getParameter(paramName).getBytes(encoding), "utf-8"); if (null != paramValue && !paramValue.trim().equals("")) { paramMap.put(paramName, paramValue); request.setAttribute(paramName, paramValue); } } } return paramMap; } /** * * @param mapping * @param form * @param request * @param response * @return * @throws Exception * * 跳转到事件查询页面,并初始化查询时间 */ public ActionForward eventSelectCondition(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception { getDefaultTime(request); return selectByCondition(mapping, form, request, response); } /** * 在跳转到事件查询页面的时候初始化查询的起止时间 * @param request */ public void getDefaultTime(HttpServletRequest request){ Date beginDate = new Date(); Date endDate = new Date(); beginDate.setMonth(endDate.getMonth() - 1); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String begin = format.format(beginDate); String end = format.format(endDate); request.setAttribute("beginDate", begin); request.setAttribute("endDate", end); request.setAttribute("begin", begin); request.setAttribute("end", end); } /** * 通过输入的多条件来查询事件,进行分页显示 * @param mapping * @param form * @param request * @param response * @return * @throws Exception */ public ActionForward selectByCondition(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{ // System.out.println("------------------------"); // EventSelectConditionForm selectForm = (EventSelectConditionForm)form; getDefaultTime(request); EventSelectConditionForm selectForm = (EventSelectConditionForm)request.getSession().getAttribute("eventSelectConditionForm"); String begin = request.getParameter("beginDate"); String end = request.getParameter("endDate"); // System.out.println("------begin------" + begin); // System.out.println("------end------" + end); String bureauId = request.getParameter("bureauId"); List<Domain> managerBo = (List<Domain>)SecurityUserHolder.getCurrentUser().getDomainList(); if(bureauId == null || bureauId.equals("")){ if(managerBo != null && managerBo.size() > 0){ bureauId = managerBo.get(0).getId().toString(); } } request.setAttribute("managerOfUser", managerBo); request.setAttribute("bureauId", bureauId); if(begin == null && request.getAttribute("beginDate") != null){ begin = request.getAttribute("beginDate").toString(); } if(end == null && request.getAttribute("endDate") != null){ end = request.getAttribute("endDate").toString(); } Map map = getParamMap(request); Page page = new Page(); page.setEveryPage(7); String pageMark = request.getParameter("mark"); String pageNo = request.getParameter("pageno") == null ? "1" : request.getParameter("pageno"); if (null == pageMark) { pageMark = pageNo; page.setCurrentPage(Integer.parseInt(pageNo)); request.setAttribute("pageMark", Integer.parseInt(pageMark)); } else { page.setCurrentPage(Integer.parseInt(pageMark==""?"1":pageMark)); request.setAttribute("pageMark", pageMark); } // EventSelectConditionForm conditionForm = (EventSelectConditionForm)form; EventrealdispCondition condition = new EventrealdispCondition(); condition.setBureauId(Integer.parseInt(bureauId==null?"0":bureauId)); condition.setPage(page); String patter = "yyyy-MM-dd HH:mm:ss"; SimpleDateFormat format = new SimpleDateFormat(patter); if(null != begin && !"".equals(begin.trim())){ Date beginDate = format.parse(begin); Timestamp beginTime = new Timestamp(beginDate.getTime()); // System.out.println("------beginTime------" + beginTime); condition.setStarttime(beginTime); } if(null != end && !"".equals(end.trim())){ Date endDate = format.parse(end); Timestamp endTime = new Timestamp(endDate.getTime()); // System.out.println("------endTime------" + endTime); condition.setEndtime(endTime); } BeanUtils.copyProperties(condition, map); if(selectForm != null){ if(selectForm.getEvent_type() != null){ condition.setEvent_type(selectForm.getEvent_type()); } if(selectForm.getFaci_type() != null){ condition.setFaci_type(selectForm.getFaci_type()); } } // request.setAttribute("event_type", selectForm.getEvent_type()); // request.setAttribute("faci_type()", selectForm.getFaci_type()); if(request.getParameter("select").trim().equals("safe")){ EventrealdispResult result = eventBaseClass.getEventrealdispService().queryEventrealdispByCondition(condition); List<Eventrealdisp> eventrealdisp = new ArrayList<Eventrealdisp>(); if(result != null && result.getResults() != null && !result.getResults().isEmpty()){ page = result.getPage(); eventrealdisp = result.getResults(); // for(Eventrealdisp e:eventrealdisp){ // System.out.println(e.getDestIp()); // System.out.println(e.getEventTime()); // System.out.println(e.getDomain().getDomainName()); // } } request.setAttribute("page", page); request.setAttribute("eventrealdispList", eventrealdisp); } return mapping.findForward("eventSelectCondition"); } public ActionForward selectByJianKong(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{ EventSelectConditionForm selectForm = (EventSelectConditionForm)request.getSession().getAttribute("eventSelectConditionForm"); String bureauId = request.getParameter("bureauId"); List<Domain> managerBo = (List<Domain>)SecurityUserHolder.getCurrentUser().getDomainList(); if(bureauId == null || bureauId.equals("")){ if(managerBo != null && managerBo.size() > 0){ bureauId = managerBo.get(0).getId().toString(); } } getDefaultTime(request); Page page = new Page(); page.setEveryPage(7); String pageMark = request.getParameter("marks"); String pageNo = request.getParameter("pageno") == null ? "1" : request.getParameter("pageno"); if (null == pageMark) { pageMark = pageNo; page.setCurrentPage(Integer.parseInt(pageNo)); request.setAttribute("pageMarks", Integer.parseInt(pageMark)); } else { page.setCurrentPage(Integer.parseInt(pageMark==""?"1":pageMark)); request.setAttribute("pageMarks", pageMark); } EventmoniinfoCondition condition = new EventmoniinfoCondition(); // condition.setBureauId(Integer.parseInt(bureauId)); Map map = getParamMap(request); if(map.get("begin") != null && map.get("end") != null){ String startTime = map.get("begin").toString(); String endTime = map.get("end").toString(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date begin = format.parse(startTime); Date end = format.parse(endTime); condition.setStartTime(begin); condition.setEndTime(end); } if(selectForm != null){ if(selectForm.getEventTypes() != null){ condition.setEventType(selectForm.getEventTypes()); } if(selectForm.getIPAddress() != null){ condition.setIpAddress(selectForm.getIPAddress()); } } // request.setAttribute("eventTypes", selectForm.getEventTypes()); condition.setPage(page); EventmoniinfoResult result = eventBaseClass.getEventmoniinfoService().queryEventmoniinfoByCondition(condition); List<Eventmoniinfo> eventmoniinfo = new ArrayList<Eventmoniinfo>(); if(result != null && result.getResults() != null && !result.getResults().isEmpty()){ page = result.getPage(); eventmoniinfo = result.getResults(); } request.setAttribute("page", page); request.setAttribute("eventmoniinfoList", eventmoniinfo); request.setAttribute("bureauId", bureauId); request.setAttribute("managerOfUser", managerBo); return mapping.findForward("eventSelectCondition"); } public ActionForward reset(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{ ActionForward forward = selectMethod(mapping, form, request, response); request.getSession().setAttribute("eventSelectConditionForm", null); getDefaultTime(request); request.setAttribute("select", request.getParameter("select")); // return mapping.findForward("eventSelectCondition"); return forward; } public ActionForward selectMethod(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{ String select = request.getParameter("select"); if(select.trim().equals("safe")){ return selectByCondition(mapping, form, request, response); }else if (select.trim().equals("jiank")){ return selectByJianKong(mapping, form, request, response); }else{ return null; } } }