package edu.sjtu.infosec.ismp.manager.VPM.vm.web.actions; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; import org.infosec.ismp.manager.rmi.comm.model.SystemModelInfo; import edu.sjtu.infosec.ismp.manager.AM.model.AssetDeviceBO; import edu.sjtu.infosec.ismp.manager.AM.service.AssetDeviceService; import edu.sjtu.infosec.ismp.manager.GOSP.comm.LogUtil; import edu.sjtu.infosec.ismp.manager.LM.pfLog.service.SystemLogService; import edu.sjtu.infosec.ismp.manager.SYSM.user.self.comm.SecurityUserHolder; import edu.sjtu.infosec.ismp.manager.SYSM.user.self.service.DomainService; import edu.sjtu.infosec.ismp.manager.SYSM.user.self.service.UserService; import edu.sjtu.infosec.ismp.manager.VPM.pm.comm.HtmlFactory; import edu.sjtu.infosec.ismp.manager.VPM.pm.comm.PMPage; import edu.sjtu.infosec.ismp.manager.VPM.pm.comm.PMPageUtil; import edu.sjtu.infosec.ismp.manager.VPM.vm.model.VirusClients; import edu.sjtu.infosec.ismp.manager.VPM.vm.service.VirusClientsService; import edu.sjtu.infosec.ismp.manager.VPM.vm.web.form.VirusClientsORMForm; import edu.sjtu.infosec.ismp.security.Domain; import edu.sjtu.infosec.ismp.security.OperatorDetails; public class VirusMappedAction extends DispatchAction { Logger logger = Logger.getLogger(VirusMappedAction.class); /** * 注入 service 接口 */ private VirusClientsService virusClientsService; private UserService userService; private DomainService domainService; private AssetDeviceService assetDeviceService; private SystemLogService systemlogservice; /** * @param systemlogservice the systemlogservice to set */ public void setSystemlogservice(SystemLogService systemlogservice) { this.systemlogservice = systemlogservice; } public VirusClientsService getVirusClientsService() { return virusClientsService; } public void setVirusClientsService(VirusClientsService virusClientsService) { this.virusClientsService = virusClientsService; } public UserService getUserService() { return userService; } public void setUserService(UserService userService) { this.userService = userService; } public DomainService getDomainService() { return domainService; } public void setDomainService(DomainService domainService) { this.domainService = domainService; } public AssetDeviceService getAssetDeviceService() { return assetDeviceService; } public void setAssetDeviceService(AssetDeviceService assetDeviceService) { this.assetDeviceService = assetDeviceService; } @SuppressWarnings("unchecked") public ActionForward getVirusClientsAll(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { PMPage page = HtmlFactory.getPage(request); OperatorDetails user= SecurityUserHolder.getCurrentUser(); //根据User 脚色权限查询委办局 List<Domain> userDomainList = new ArrayList<Domain>(); if(user != null) { userDomainList = user.getDomainList(); }else{ userDomainList=null; } VirusClientsORMForm vcf = (VirusClientsORMForm)form; StringBuffer sbf = new StringBuffer(); LinkedList<Object> linkedList = virusClientsService.queryAllVirusClients(userDomainList,vcf.getVc(), page.getBeginIndex(), page.getEveryPage(), vcf.getCreateStartDate(), vcf.getCreateEndDate()); page = PMPageUtil.createPage(page, (Integer)linkedList.getFirst()); List<VirusClients> list = (List<VirusClients>)linkedList.getLast(); String[][] vcs ={{"id","getId"},{"ip","getClientIP"},{"name","getName"},{"cid","getClientID"},{"rTime","getRecordTime"}}; String[][] adObje={{"acid","getId"},{"accode","getSingleCode"}}; String[][] dmainObje={{"dmid","getId"},{"dmname","getDomainName"}}; String[][] naObje ={{"accode","未关联"},{"acid","-1"}}; String[][] ndObje ={{"dmname","未关联"},{"dmid","-1"}}; for(Iterator<VirusClients> iter = list.iterator();iter.hasNext();){ VirusClients vc = iter.next(); if(HtmlFactory.isNotNull(vc)){ AssetDeviceBO ad=vc.getAssetDevice(); Domain adom = vc.getDepartment(); boolean isad =HtmlFactory.isNotNull(ad); boolean isdom =HtmlFactory.isNotNull(adom); Object[][] objs={{vc,vcs},{ isad ? ad :"add", isad ? adObje: naObje},{isdom? adom : "add",isdom?dmainObje:ndObje}}; HtmlFactory.getDataArray(objs,sbf,"VCS"); } } HtmlFactory.getDataArray(page, sbf,"PAGE"); HtmlFactory.flushData(response,sbf); return null; } /** * updateVirusClients uvcs 简写 * @param mapping * @param form * @param request * @param response * @return */ public ActionForward uvcs(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String vcid =request.getParameter("vcid"); String name = request.getParameter("vcname"); String sasset = request.getParameter("vcasset"); String sdomain=request.getParameter("vcdomain"); String unlink=request.getParameter("unlink"); String msg = ""; String falg="成功!"; if(HtmlFactory.isNotEmpty(vcid)){ StringBuffer sbf = new StringBuffer(); try{ VirusClients vcs =virusClientsService.getVirusClientsById(Integer.valueOf(vcid)); if(HtmlFactory.isNotEmpty(name)){ name=HtmlFactory.conversionCoding(name); vcs.setName(name); String[][] obj={{"data",name},{"general",""}}; Object objs[][]={{"add",obj}}; HtmlFactory.getDataArray(objs,sbf,"UPNAME"); msg ="更新病毒客户端名称"; }else if(HtmlFactory.isNotEmpty(sasset)){ AssetDeviceBO asset = assetDeviceService.findById(Integer.valueOf(sasset)); vcs.setAssetDevice(asset); String[][] adObje={{"acid",asset.getId().toString()},{"data",asset.getSingleCode()},{"general","acid"}}; Object objs[][]={{"add",adObje}}; HtmlFactory.getDataArray(objs,sbf,"UPNAME"); msg ="更新病毒客户端资产"; }else if(HtmlFactory.isNotEmpty(sdomain)){ try { sdomain=HtmlFactory.conversionCoding(sdomain); Domain domain= domainService.findById(Integer.valueOf(sdomain)); vcs.setDepartment(domain); String[][] obj={{"dmid",domain.getId().toString()},{"data",domain.getDomainName()},{"general","dmid"}}; Object objs[][]={{"add",obj}}; HtmlFactory.getDataArray(objs,sbf,"UPNAME"); msg ="更新病毒客户端域"; } catch (Exception e) { e.printStackTrace(); } }else if(HtmlFactory.isNotEmpty(unlink) && "unlink".equals(unlink)){ virusClientsService.delQueryVirusClientsById(Integer.valueOf(vcid)); return null; } virusClientsService.saveVirusClients(vcs); }catch(Exception e){ falg = "失败!"; }finally{ try { systemlogservice.saveSystemLog(LogUtil.userName, LogUtil.roleName, SystemModelInfo.MOD_VPM_vm, msg, new Timestamp(System.currentTimeMillis()), falg); } catch (Exception e) { logger.debug("连接日志出错",e); } } HtmlFactory.flushData(response,sbf); } return null; } }