diff --git a/src/main/java/com/nis/domain/configuration/template/BlackListComplexStringTemplate.java b/src/main/java/com/nis/domain/configuration/template/BlackListComplexStringTemplate.java index 4de9c90ba..a28cb858c 100644 --- a/src/main/java/com/nis/domain/configuration/template/BlackListComplexStringTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/BlackListComplexStringTemplate.java @@ -4,7 +4,7 @@ import com.nis.util.excel.ExcelField; public class BlackListComplexStringTemplate extends ComplexStringAllTemplate { private Integer doBlackList; - @ExcelField(title="doBlacklist",align=2,sort=2) + @ExcelField(title="doBlacklist",align=2,sort=3) public Integer getDoBlackList() { return doBlackList; } diff --git a/src/main/java/com/nis/domain/configuration/template/BlackListIPTemplate.java b/src/main/java/com/nis/domain/configuration/template/BlackListIPTemplate.java index 23fa2cc70..5b50d4f19 100644 --- a/src/main/java/com/nis/domain/configuration/template/BlackListIPTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/BlackListIPTemplate.java @@ -4,7 +4,7 @@ import com.nis.util.excel.ExcelField; public class BlackListIPTemplate extends IpAllTemplate { private Integer doBlackList; - @ExcelField(title="doBlacklist",align=2,sort=2) + @ExcelField(title="doBlacklist",align=2,sort=3) public Integer getDoBlackList() { return doBlackList; } diff --git a/src/main/java/com/nis/domain/configuration/template/BlackListP2pHashStringTemplate.java b/src/main/java/com/nis/domain/configuration/template/BlackListP2pHashStringTemplate.java new file mode 100644 index 000000000..ccc082de4 --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/template/BlackListP2pHashStringTemplate.java @@ -0,0 +1,15 @@ +package com.nis.domain.configuration.template; + +import com.nis.util.excel.ExcelField; + +public class BlackListP2pHashStringTemplate extends P2pHashStringTemplate { + private Integer doBlackList; + @ExcelField(title="doBlacklist",align=2,sort=4) + public Integer getDoBlackList() { + return doBlackList; + } + + public void setDoBlackList(Integer doBlackList) { + this.doBlackList = doBlackList; + } +} diff --git a/src/main/java/com/nis/domain/configuration/template/BlackListP2pIpTemplate.java b/src/main/java/com/nis/domain/configuration/template/BlackListP2pIpTemplate.java new file mode 100644 index 000000000..468ba7816 --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/template/BlackListP2pIpTemplate.java @@ -0,0 +1,15 @@ +package com.nis.domain.configuration.template; + +import com.nis.util.excel.ExcelField; + +public class BlackListP2pIpTemplate extends P2pIpTemplate { + private Integer doBlackList; + @ExcelField(title="doBlacklist",align=2,sort=4) + public Integer getDoBlackList() { + return doBlackList; + } + + public void setDoBlackList(Integer doBlackList) { + this.doBlackList = doBlackList; + } +} diff --git a/src/main/java/com/nis/domain/configuration/template/BlackListStringTemplate.java b/src/main/java/com/nis/domain/configuration/template/BlackListStringTemplate.java index b1c35ae9c..23f610e9b 100644 --- a/src/main/java/com/nis/domain/configuration/template/BlackListStringTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/BlackListStringTemplate.java @@ -4,7 +4,7 @@ import com.nis.util.excel.ExcelField; public class BlackListStringTemplate extends StringAllTemplate { private Integer doBlackList; - @ExcelField(title="doBlacklist",align=2,sort=2) + @ExcelField(title="doBlacklist",align=2,sort=3) public Integer getDoBlackList() { return doBlackList; } diff --git a/src/main/java/com/nis/domain/configuration/template/P2pHashStringTemplate.java b/src/main/java/com/nis/domain/configuration/template/P2pHashStringTemplate.java index 9f0673e29..73e001597 100644 --- a/src/main/java/com/nis/domain/configuration/template/P2pHashStringTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/P2pHashStringTemplate.java @@ -16,7 +16,7 @@ import com.nis.util.excel.ExcelField; public class P2pHashStringTemplate extends StringAllTemplate { private String userRegion1; - @ExcelField(title="p2p_hash_type",dictType="P2P_HASH_TYPE",align=2,sort=2) + @ExcelField(title="p2p_hash_type",dictType="P2P_HASH_TYPE",align=2,sort=3) public String getUserRegion1() { return userRegion1; } diff --git a/src/main/java/com/nis/domain/configuration/template/P2pIpTemplate.java b/src/main/java/com/nis/domain/configuration/template/P2pIpTemplate.java index ae2223d4c..5f233a9f9 100644 --- a/src/main/java/com/nis/domain/configuration/template/P2pIpTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/P2pIpTemplate.java @@ -10,7 +10,7 @@ public class P2pIpTemplate extends IpAllTemplate { private String userRegion2; - @ExcelField(title="p2p_ip_config_type",dictType="P2P_IP_TYPE",align=2,sort=2) + @ExcelField(title="p2p_ip_config_type",dictType="P2P_IP_TYPE",align=2,sort=3) public String getUserRegion2() { return userRegion2; } diff --git a/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java b/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java index f4a1be93e..e161fe587 100644 --- a/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java +++ b/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java @@ -1240,7 +1240,8 @@ public class CheckIpFormatThread implements Callable{ * @param errInfo */ public void validDoBlackList(IpPortCfg baseIpCfg, StringBuffer errInfo) { - if((regionDict.getFunctionId().equals(34)||regionDict.getFunctionId().equals(8))&&serviceDict.getAction().equals(16)) { + if((regionDict.getFunctionId().equals(34)||regionDict.getFunctionId().equals(8) + ||regionDict.getFunctionId().equals(51)||regionDict.getFunctionId().equals(510))&&serviceDict.getAction().equals(16)) { List dict=DictUtils.getDictList("DO_BLACKLIST"); if(baseIpCfg.getDoBlackList()==null) { baseIpCfg.setDoBlackList(Constants.MAAT_CFG_DOLOG_DOBLACKLIST_DEFAULT); diff --git a/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java b/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java index 5affb8c73..59dfe5de9 100644 --- a/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java +++ b/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java @@ -546,7 +546,8 @@ public class CheckStringFormatThread implements Callable{ */ public void validDoBlackList(BaseStringCfg baseStringCfg, StringBuffer errInfo) { if((regionDict.getFunctionId().equals(34)||regionDict.getFunctionId().equals(6)|| - regionDict.getFunctionId().equals(635)||regionDict.getFunctionId().equals(8)) + regionDict.getFunctionId().equals(635)||regionDict.getFunctionId().equals(8) + ||regionDict.getFunctionId().equals(51)||regionDict.getFunctionId().equals(510)) &&serviceDict.getAction().equals(16)) { List dict=DictUtils.getDictList("DO_BLACKLIST"); if(baseStringCfg.getDoBlackList()==null) { diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java b/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java index 66f128f2c..fe5c16362 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java @@ -8,20 +8,28 @@ import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set; +import java.util.concurrent.BlockingQueue; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.jets3t.service.ServiceException; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.mvc.support.RedirectAttributes; +import com.beust.jcommander.internal.Lists; +import com.nis.domain.FunctionRegionDict; +import com.nis.domain.FunctionServiceDict; import com.nis.domain.Page; import com.nis.domain.basics.ServiceDictInfo; import com.nis.domain.basics.SysDictInfo; @@ -29,18 +37,29 @@ import com.nis.domain.configuration.AreaBean; import com.nis.domain.configuration.AreaIpCfg; import com.nis.domain.configuration.AvContUrlCfg; import com.nis.domain.configuration.AvVoipAccountCfg; -import com.nis.domain.configuration.CfgIndexInfo; -import com.nis.domain.configuration.IpPortCfg; -import com.nis.domain.configuration.NtcSubscribeIdCfg; -import com.nis.exceptions.MaatConvertException; import com.nis.domain.configuration.AvVoipIpCfg; import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.configuration.BaseStringCfg; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.configuration.ComplexkeywordCfg; +import com.nis.domain.configuration.IpPortCfg; +import com.nis.domain.configuration.NtcSubscribeIdCfg; +import com.nis.domain.configuration.template.BlackListComplexStringTemplate; +import com.nis.domain.configuration.template.BlackListIPTemplate; +import com.nis.domain.configuration.template.BlackListStringTemplate; +import com.nis.domain.configuration.template.ComplexStringAllTemplate; +import com.nis.domain.configuration.template.IpAllTemplate; +import com.nis.domain.configuration.template.StringAllTemplate; +import com.nis.exceptions.MaatConvertException; +import com.nis.util.ConfigServiceUtil; import com.nis.util.Constants; import com.nis.util.DateUtils; +import com.nis.util.DictUtils; import com.nis.util.StringUtil; import com.nis.util.excel.ExportExcel; +import com.nis.util.excel.ImportBigExcel; import com.nis.web.controller.BaseController; +import com.nis.web.security.UserUtils; /** * 处理音视频文本业务 @@ -1177,4 +1196,318 @@ public class AvContentController extends BaseController { // return "redirect:" + adminPath // +"/ntc/iplist/list?functionId="+entity.getFunctionId(); } + @RequestMapping(value = {"contUrlImport","voipImport"}, method=RequestMethod.POST) + public String importCfg(HttpServletRequest request,HttpServletResponse response,RedirectAttributes redirectAttributes, + @RequestParam("files") MultipartFile[] files + ,Integer serviceDictId + ,Integer requestId + ,String attribute + ,String classify + ,String regionDictIds + ,String importPath) { + logger.warn("import start..."); + long start=System.currentTimeMillis(); + ImportBigExcel ei=null; + try { + FunctionServiceDict serviceDict = DictUtils.getFunctionServiceDict(serviceDictId); + StringBuffer errTip=new StringBuffer(); + BlockingQueue ipPortCfgs =null; + BlockingQueue> stringCfgs =null; + BlockingQueue complexkeywordCfgs =null; + List cfgIndexInfos = new ArrayList(); + Properties properties=this.getMsgProp(); + for (int i = 0; i < files.length; i++) { + MultipartFile file = files[i]; + ei = new ImportBigExcel(file, 0, 1); + FunctionRegionDict regionDict = DictUtils + .getFunctionRegionDict(Integer.parseInt(regionDictIds.split(",")[i])); + //------------------------------------check format start---------------------------- + if (regionDict.getRegionType().equals(1)) {// IP + if(serviceDict.getAction().intValue()==16) { + //加载模板 + ei.loadInitParams(BlackListIPTemplate.class, properties, regionDict, serviceDict); + BlockingQueue list = ei.getDataList(BlackListIPTemplate.class ); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list); + }else { + //加载模板 + ei.loadInitParams(IpAllTemplate.class, properties, regionDict, serviceDict); + BlockingQueue list = ei.getDataList(IpAllTemplate.class ); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list); + } + }else if (regionDict.getRegionType().equals(2)) { + if(serviceDict.getAction().intValue()==16) { + ei.loadInitParams(BlackListStringTemplate.class, properties, regionDict, serviceDict); + BlockingQueue list = ei.getDataList(BlackListStringTemplate.class ); + stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list); + }else { + ei.loadInitParams(StringAllTemplate.class, properties, regionDict, serviceDict); + BlockingQueue list = ei.getDataList(StringAllTemplate.class ); + stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list); + } + + }else if (regionDict.getRegionType().equals(3)) { + if((regionDict.getFunctionId().intValue()==8)&&serviceDict.getAction().intValue()==16) { + ei.loadInitParams(BlackListComplexStringTemplate.class, properties, regionDict, serviceDict); + BlockingQueue list = ei.getDataList(BlackListComplexStringTemplate.class); + complexkeywordCfgs = this.checkComplexStringCfgMulity(errTip,serviceDict, regionDict, list); + }else { + ei.loadInitParams(ComplexStringAllTemplate.class, properties, regionDict, serviceDict); + BlockingQueue list = ei.getDataList(ComplexStringAllTemplate.class); + complexkeywordCfgs = this.checkComplexStringCfgMulity(errTip,serviceDict, regionDict, list); + } + } + //删除文件 + if(ei.getUploadFile()!=null&&ei.getUploadFile().exists()) { + ei.getUploadFile().delete(); + } + //------------------------------------check format end---------------------------- + Date date = new Date(); + String isSend = request.getParameter("isSend")==null?"":request.getParameter("isSend"); + if (regionDict.getRegionType().equals(1)) {// IP + List _ipPortCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE); + while(!ipPortCfgs.isEmpty()) { + ipPortCfgs.drainTo(_ipPortCfgs, Constants.MAAT_JSON_SEND_SIZE); + List compileIds=Lists.newArrayList(); + List regionIds=Lists.newArrayList(); + List groupIds=Lists.newArrayList(); + List numRegionGroupIds=Lists.newArrayList(); + List numRegionRegionIds=Lists.newArrayList(); + if(!regionDict.getFunctionId().equals(405)) {//app ip compileId 从config_group_info中取 + try { + compileIds = ConfigServiceUtil.getId(1,_ipPortCfgs.size()); + if(isSend.equals("1")) { + groupIds = ConfigServiceUtil.getId(2,_ipPortCfgs.size()); + regionIds = ConfigServiceUtil.getId(3,_ipPortCfgs.size()); + //需要获取数值域的id + if(serviceDict!=null&&serviceDict.getProtocolId()!=null&&serviceDict.getProtocolId()>0) { + numRegionGroupIds = ConfigServiceUtil.getId(2,_ipPortCfgs.size()); + numRegionRegionIds = ConfigServiceUtil.getId(3,_ipPortCfgs.size()); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取编译ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + }else { + try { + regionIds = ConfigServiceUtil.getId(3,_ipPortCfgs.size()); + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取域ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + } + int ind=0; + for (BaseIpCfg cfg : _ipPortCfgs) { + cfg.setAction(serviceDict==null?null:serviceDict.getAction()); + /*cfg.setAuditorId(UserUtils.getUser().getId()); + cfg.setAuditTime(date);*/ + cfg.setCfgRegionCode(regionDict.getConfigRegionCode()); + cfg.setCfgType(regionDict.getConfigRegionValue()); + cfg.setCreateTime(date); + cfg.setCreatorId(UserUtils.getUser().getId()); + //cfg.setDoLog(2); + cfg.setFunctionId(regionDict.getFunctionId()); + if(isSend.equals("1")) { + cfg.setIsAudit(Constants.AUDIT_YES); + cfg.setIsValid(Constants.VALID_YES); + cfg.setAuditorId(UserUtils.getUser().getId()); + cfg.setAuditTime(date); + if(groupIds!=null&&groupIds.size()==_ipPortCfgs.size()) { + cfg.setGroupId(groupIds.get(ind)); + } + if(regionIds!=null&®ionIds.size()==_ipPortCfgs.size()) { + cfg.setRegionId(regionIds.get(ind)); + } + if(serviceDict!=null&&serviceDict.getProtocolId()!=null) { + if(numRegionGroupIds!=null&&numRegionGroupIds.size()==_ipPortCfgs.size()) { + cfg.setNumberRegionGroupId(numRegionGroupIds.get(ind)); + } + if(numRegionRegionIds!=null&&numRegionRegionIds.size()==_ipPortCfgs.size()) { + cfg.setNumberRegionRegionId(numRegionRegionIds.get(ind)); + } + } + }else { + cfg.setIsAudit(Constants.AUDIT_NOT_YET); + cfg.setIsValid(Constants.VALID_NO); + } + cfg.setIsAreaEffective(0); + cfg.setLable("0"); + cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); + cfg.setAttribute(attribute); + cfg.setClassify(classify); + cfg.setServiceId(serviceDict==null?null:serviceDict.getServiceId()); + cfg.setTableName("ip_port_cfg"); + if(compileIds.size()==_ipPortCfgs.size()) { + cfg.setCompileId(compileIds.get(ind)); + } + CfgIndexInfo cfgIndexInfo = new CfgIndexInfo(); + BeanUtils.copyProperties(cfg, cfgIndexInfo,new String[] {"cfgId"}); + if(cfg.getDnsStrategyId()!=null) { + cfgIndexInfo.setDnsStrategyId(Long.parseLong(cfg.getDnsStrategyId().toString())); + } + cfgIndexInfos.add(cfgIndexInfo); + ind++; + } + avContentCfgService.saveAndSend(regionDict, cfgIndexInfos, _ipPortCfgs, isSend.equals("1")); + cfgIndexInfos.clear(); + _ipPortCfgs.clear(); + } + }else if (regionDict.getRegionType().equals(2)) {//账号 + List> _stringCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE); + while(!stringCfgs.isEmpty()) { + stringCfgs.drainTo(_stringCfgs, Constants.MAAT_JSON_SEND_SIZE); + List compileIds=Lists.newArrayList(); + List groupIds=Lists.newArrayList(); + List regionIds=Lists.newArrayList(); + try { + compileIds = ConfigServiceUtil.getId(1,_stringCfgs.size()); + if(isSend.equals("1")) { + groupIds = ConfigServiceUtil.getId(2,_stringCfgs.size()); + regionIds = ConfigServiceUtil.getId(3,_stringCfgs.size()); + } + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取编译ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + int ind=0; + for (BaseStringCfg cfg : _stringCfgs) { + cfg.setAction(serviceDict.getAction()); + cfg.setCfgRegionCode(regionDict.getConfigRegionCode()); + cfg.setCfgType(regionDict.getConfigRegionValue()); + cfg.setCreateTime(date); + cfg.setCreatorId(UserUtils.getUser().getId()); + //cfg.setDoLog(2); + cfg.setFunctionId(regionDict.getFunctionId()); + if(isSend.equals("1")) { + cfg.setIsAudit(Constants.AUDIT_YES); + cfg.setIsValid(Constants.VALID_YES); + cfg.setAuditorId(UserUtils.getUser().getId()); + cfg.setAuditTime(date); + if(groupIds!=null&&groupIds.size()==_stringCfgs.size()) { + cfg.setGroupId(groupIds.get(ind)); + } + if(regionIds!=null&®ionIds.size()==_stringCfgs.size()) { + cfg.setRegionId(regionIds.get(ind)); + } + }else { + cfg.setIsAudit(Constants.AUDIT_NOT_YET); + cfg.setIsValid(Constants.VALID_NO); + } + cfg.setIsAreaEffective(0); + cfg.setLable("0"); + cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); + cfg.setAttribute(attribute); + cfg.setClassify(classify); + cfg.setServiceId(serviceDict.getServiceId()); + if(compileIds!=null&&compileIds.size()==_stringCfgs.size()) { + cfg.setCompileId(compileIds.get(ind)); + } + CfgIndexInfo cfgIndexInfo = new CfgIndexInfo(); + BeanUtils.copyProperties(cfg, cfgIndexInfo, new String[] {"cfgId"}); + if(cfg.getDnsStrategyId()!=null) { + cfgIndexInfo.setDnsStrategyId(Long.parseLong(cfg.getDnsStrategyId().toString())); + } + cfgIndexInfos.add(cfgIndexInfo); + ind++; + } + avContentCfgService.saveAndSend(regionDict, cfgIndexInfos, _stringCfgs, isSend.equals("1")); + cfgIndexInfos.clear(); + _stringCfgs.clear(); + } + } else if (regionDict.getRegionType().equals(3)) {//dns + List _complexkeywordCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE); + while(!complexkeywordCfgs.isEmpty()) { + complexkeywordCfgs.drainTo(_complexkeywordCfgs, Constants.MAAT_JSON_SEND_SIZE); + List compileIds=Lists.newArrayList(); + List groupIds=Lists.newArrayList(); + List regionIds=Lists.newArrayList(); + try { + compileIds = ConfigServiceUtil.getId(1,_complexkeywordCfgs.size()); + if(isSend.equals("1")) { + groupIds = ConfigServiceUtil.getId(2,_complexkeywordCfgs.size()); + regionIds = ConfigServiceUtil.getId(3,_complexkeywordCfgs.size()); + } + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取编译ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + int ind=0; + for (ComplexkeywordCfg cfg : _complexkeywordCfgs) { + cfg.setAction(serviceDict.getAction()); + /*cfg.setAuditorId(UserUtils.getUser().getId()); + cfg.setAuditTime(date);*/ + cfg.setCfgRegionCode(regionDict.getConfigRegionCode()); + cfg.setCfgType(regionDict.getConfigRegionValue()); + cfg.setCreateTime(date); + cfg.setCreatorId(UserUtils.getUser().getId()); + //cfg.setDoLog(2); + cfg.setFunctionId(regionDict.getFunctionId()); + if(isSend.equals("1")) { + cfg.setIsAudit(Constants.AUDIT_YES); + cfg.setIsValid(Constants.VALID_YES); + cfg.setAuditorId(UserUtils.getUser().getId()); + cfg.setAuditTime(date); + if(groupIds!=null&&groupIds.size()==_complexkeywordCfgs.size()) { + cfg.setGroupId(groupIds.get(ind)); + } + if(regionIds!=null&®ionIds.size()==_complexkeywordCfgs.size()) { + cfg.setRegionId(regionIds.get(ind)); + } + }else { + cfg.setIsAudit(Constants.AUDIT_NOT_YET); + cfg.setIsValid(Constants.VALID_NO); + } + //cfg.setIsAudit(0); + //cfg.setIsValid(0); + cfg.setIsAreaEffective(0); + cfg.setLable("0"); + cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); + cfg.setAttribute(attribute); + cfg.setClassify(classify); + cfg.setServiceId(serviceDict.getServiceId()); + if(compileIds!=null&&compileIds.size()==_complexkeywordCfgs.size()) { + cfg.setCompileId(compileIds.get(ind)); + } + CfgIndexInfo cfgIndexInfo = new CfgIndexInfo(); + BeanUtils.copyProperties(cfg, cfgIndexInfo,new String[] {"cfgId"}); + if(cfg.getDnsStrategyId()!=null) { + cfgIndexInfo.setDnsStrategyId(Long.parseLong(cfg.getDnsStrategyId().toString())); + } + cfgIndexInfos.add(cfgIndexInfo); + ind++; + } + avContentCfgService.saveAndSend(regionDict, cfgIndexInfos, _complexkeywordCfgs, isSend.equals("1")); + cfgIndexInfos.clear(); + _complexkeywordCfgs.clear(); + } + } + } + if(errTip.toString().length()>0) { + addMessage(redirectAttributes,"error", errTip.toString()); + } + } catch (Exception e) { + if(ei!=null) { + if(ei.getUploadFile().exists()) { + ei.getUploadFile().delete(); + } + } + if(e instanceof MaatConvertException) { + addMessage(redirectAttributes,"error", "request_service_failed"); + }else if(e instanceof ServiceException) { + addMessage(redirectAttributes,"error", e.getMessage()); + }else if(e instanceof IndexOutOfBoundsException){ + addMessage(redirectAttributes,"error", "template_error"); + }else { + addMessage(redirectAttributes,"error", "import_failed"); + } + e.printStackTrace(); + } + long end=System.currentTimeMillis(); + logger.warn("import finish,cost:"+(end-start)); + return "redirect:" + adminPath+ importPath; + } } diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/FileTransferCfgController.java b/src/main/java/com/nis/web/controller/configuration/ntc/FileTransferCfgController.java index 36311bd3e..2d4de8a95 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/FileTransferCfgController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/FileTransferCfgController.java @@ -9,8 +9,10 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Properties; import java.util.Set; import java.util.UUID; +import java.util.concurrent.BlockingQueue; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -19,32 +21,54 @@ import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.taglibs.standard.functions.Functions; +import org.jets3t.service.ServiceException; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.util.FileCopyUtils; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.mvc.support.RedirectAttributes; +import com.beust.jcommander.internal.Lists; +import com.nis.domain.FunctionRegionDict; +import com.nis.domain.FunctionServiceDict; import com.nis.domain.Page; import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.configuration.BaseStringCfg; import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.configuration.ComplexkeywordCfg; import com.nis.domain.configuration.FileDigestCfg; import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.configuration.NtcSubscribeIdCfg; import com.nis.domain.configuration.P2pHashCfg; import com.nis.domain.configuration.P2pKeywordCfg; +import com.nis.domain.configuration.template.BlackListComplexStringTemplate; +import com.nis.domain.configuration.template.BlackListIPTemplate; +import com.nis.domain.configuration.template.BlackListP2pHashStringTemplate; +import com.nis.domain.configuration.template.BlackListStringTemplate; +import com.nis.domain.configuration.template.BlackListP2pIpTemplate; +import com.nis.domain.configuration.template.ComplexStringAllTemplate; +import com.nis.domain.configuration.template.DnsComplexStringTemplate; +import com.nis.domain.configuration.template.DnsIpTemplate; +import com.nis.domain.configuration.template.DnsStringTemplate; +import com.nis.domain.configuration.template.IpAllTemplate; +import com.nis.domain.configuration.template.P2pHashStringTemplate; +import com.nis.domain.configuration.template.P2pIpTemplate; +import com.nis.domain.configuration.template.StringAllTemplate; import com.nis.domain.maat.ToMaatResult; import com.nis.exceptions.CallExternalProceduresException; import com.nis.exceptions.MaatConvertException; import com.nis.util.ConfigServiceUtil; import com.nis.util.Constants; +import com.nis.util.DictUtils; import com.nis.util.FileUtils; import com.nis.util.JsonMapper; import com.nis.util.StringUtil; +import com.nis.util.excel.ImportBigExcel; import com.nis.web.controller.BaseController; import com.nis.web.security.UserUtils; @@ -984,4 +1008,340 @@ public class FileTransferCfgController extends BaseController { // return "redirect:" + adminPath // +"/ntc/iplist/list?functionId="+entity.getFunctionId(); } + @RequestMapping(value = {"ftpImport","p2pImport"}, method=RequestMethod.POST) + public String importDns(HttpServletRequest request,HttpServletResponse response,RedirectAttributes redirectAttributes, + @RequestParam("files") MultipartFile[] files + ,Integer serviceDictId + ,Integer requestId + ,String attribute + ,String classify + ,String regionDictIds + ,String importPath) { + logger.warn("import start..."); + long start=System.currentTimeMillis(); + ImportBigExcel ei=null; + try { + FunctionServiceDict serviceDict = DictUtils.getFunctionServiceDict(serviceDictId); + StringBuffer errTip=new StringBuffer(); + BlockingQueue ipPortCfgs =null; + BlockingQueue> stringCfgs =null; + BlockingQueue complexkeywordCfgs =null; + List cfgIndexInfos = new ArrayList(); + Properties properties=this.getMsgProp(); + for (int i = 0; i < files.length; i++) { + MultipartFile file = files[i]; + ei = new ImportBigExcel(file, 0, 1); + FunctionRegionDict regionDict = DictUtils + .getFunctionRegionDict(Integer.parseInt(regionDictIds.split(",")[i])); + //------------------------------------check format start---------------------------- + if (regionDict.getRegionType().equals(1)) {// IP + if(serviceDict.getAction().intValue()==16) { + if("p2p_ip".equals(regionDict.getConfigServiceType())) { + //加载模板 + ei.loadInitParams(BlackListP2pIpTemplate.class, properties, regionDict, serviceDict); + BlockingQueue list = ei.getDataList(BlackListP2pIpTemplate.class ); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list); + }else { + //加载模板 + ei.loadInitParams(BlackListIPTemplate.class, properties, regionDict, serviceDict); + BlockingQueue list = ei.getDataList(BlackListIPTemplate.class ); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list); + } + + }else if("p2p_ip".equals(regionDict.getConfigServiceType())) { // P2p IP + ei.loadInitParams(P2pIpTemplate.class, properties, regionDict, serviceDict); + BlockingQueue list = ei.getDataList(P2pIpTemplate.class ); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list); + }else { + //加载模板 + ei.loadInitParams(IpAllTemplate.class, properties, regionDict, serviceDict); + BlockingQueue list = ei.getDataList(IpAllTemplate.class ); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list); + } + }else if (regionDict.getRegionType().equals(2)) { + if(serviceDict.getAction().intValue()==16) { + if("p2p_hash".equals(regionDict.getConfigServiceType())) { + ei.loadInitParams(BlackListP2pHashStringTemplate.class, properties, regionDict, serviceDict); + BlockingQueue list = ei.getDataList(BlackListP2pHashStringTemplate.class ); + stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list); + }else { + ei.loadInitParams(BlackListStringTemplate.class, properties, regionDict, serviceDict); + BlockingQueue list = ei.getDataList(BlackListStringTemplate.class ); + stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list); + } + }else if("p2p_hash".equals(regionDict.getConfigServiceType())) { // P2p hash + ei.loadInitParams(P2pHashStringTemplate.class, properties, regionDict, serviceDict); + BlockingQueue list = ei.getDataList(P2pHashStringTemplate.class ); + stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list); + }else { + ei.loadInitParams(StringAllTemplate.class, properties, regionDict, serviceDict); + BlockingQueue list = ei.getDataList(StringAllTemplate.class ); + stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list); + } + + }else if (regionDict.getRegionType().equals(3)) { + if((regionDict.getFunctionId().intValue()==8)&&serviceDict.getAction().intValue()==16) { + ei.loadInitParams(BlackListComplexStringTemplate.class, properties, regionDict, serviceDict); + BlockingQueue list = ei.getDataList(BlackListComplexStringTemplate.class); + complexkeywordCfgs = this.checkComplexStringCfgMulity(errTip,serviceDict, regionDict, list); + }else { + ei.loadInitParams(ComplexStringAllTemplate.class, properties, regionDict, serviceDict); + BlockingQueue list = ei.getDataList(ComplexStringAllTemplate.class); + complexkeywordCfgs = this.checkComplexStringCfgMulity(errTip,serviceDict, regionDict, list); + } + } + //删除文件 + if(ei.getUploadFile()!=null&&ei.getUploadFile().exists()) { + ei.getUploadFile().delete(); + } + //------------------------------------check format end---------------------------- + Date date = new Date(); + String isSend = request.getParameter("isSend")==null?"":request.getParameter("isSend"); + if (regionDict.getRegionType().equals(1)) {// IP + List _ipPortCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE); + while(!ipPortCfgs.isEmpty()) { + ipPortCfgs.drainTo(_ipPortCfgs, Constants.MAAT_JSON_SEND_SIZE); + List compileIds=Lists.newArrayList(); + List regionIds=Lists.newArrayList(); + List groupIds=Lists.newArrayList(); + List numRegionGroupIds=Lists.newArrayList(); + List numRegionRegionIds=Lists.newArrayList(); + if(!regionDict.getFunctionId().equals(405)) {//app ip compileId 从config_group_info中取 + try { + compileIds = ConfigServiceUtil.getId(1,_ipPortCfgs.size()); + if(isSend.equals("1")) { + groupIds = ConfigServiceUtil.getId(2,_ipPortCfgs.size()); + regionIds = ConfigServiceUtil.getId(3,_ipPortCfgs.size()); + //需要获取数值域的id + if(serviceDict!=null&&serviceDict.getProtocolId()!=null&&serviceDict.getProtocolId()>0) { + numRegionGroupIds = ConfigServiceUtil.getId(2,_ipPortCfgs.size()); + numRegionRegionIds = ConfigServiceUtil.getId(3,_ipPortCfgs.size()); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取编译ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + }else { + try { + regionIds = ConfigServiceUtil.getId(3,_ipPortCfgs.size()); + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取域ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + } + int ind=0; + for (BaseIpCfg cfg : _ipPortCfgs) { + cfg.setAction(serviceDict==null?null:serviceDict.getAction()); + /*cfg.setAuditorId(UserUtils.getUser().getId()); + cfg.setAuditTime(date);*/ + cfg.setCfgRegionCode(regionDict.getConfigRegionCode()); + cfg.setCfgType(regionDict.getConfigRegionValue()); + cfg.setCreateTime(date); + cfg.setCreatorId(UserUtils.getUser().getId()); + //cfg.setDoLog(2); + cfg.setFunctionId(regionDict.getFunctionId()); + if(isSend.equals("1")) { + cfg.setIsAudit(Constants.AUDIT_YES); + cfg.setIsValid(Constants.VALID_YES); + cfg.setAuditorId(UserUtils.getUser().getId()); + cfg.setAuditTime(date); + if(groupIds!=null&&groupIds.size()==_ipPortCfgs.size()) { + cfg.setGroupId(groupIds.get(ind)); + } + if(regionIds!=null&®ionIds.size()==_ipPortCfgs.size()) { + cfg.setRegionId(regionIds.get(ind)); + } + if(serviceDict!=null&&serviceDict.getProtocolId()!=null) { + if(numRegionGroupIds!=null&&numRegionGroupIds.size()==_ipPortCfgs.size()) { + cfg.setNumberRegionGroupId(numRegionGroupIds.get(ind)); + } + if(numRegionRegionIds!=null&&numRegionRegionIds.size()==_ipPortCfgs.size()) { + cfg.setNumberRegionRegionId(numRegionRegionIds.get(ind)); + } + } + }else { + cfg.setIsAudit(Constants.AUDIT_NOT_YET); + cfg.setIsValid(Constants.VALID_NO); + } + cfg.setIsAreaEffective(0); + cfg.setLable("0"); + cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); + cfg.setAttribute(attribute); + cfg.setClassify(classify); + cfg.setServiceId(serviceDict==null?null:serviceDict.getServiceId()); + cfg.setTableName("ip_port_cfg"); + if(compileIds.size()==_ipPortCfgs.size()) { + cfg.setCompileId(compileIds.get(ind)); + } + CfgIndexInfo cfgIndexInfo = new CfgIndexInfo(); + BeanUtils.copyProperties(cfg, cfgIndexInfo,new String[] {"cfgId"}); + if(cfg.getDnsStrategyId()!=null) { + cfgIndexInfo.setDnsStrategyId(Long.parseLong(cfg.getDnsStrategyId().toString())); + } + cfgIndexInfos.add(cfgIndexInfo); + ind++; + } + fileTransferCfgService.saveAndSend(regionDict, cfgIndexInfos, _ipPortCfgs, isSend.equals("1")); + cfgIndexInfos.clear(); + _ipPortCfgs.clear(); + } + }else if (regionDict.getRegionType().equals(2)) {//账号 + List> _stringCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE); + while(!stringCfgs.isEmpty()) { + stringCfgs.drainTo(_stringCfgs, Constants.MAAT_JSON_SEND_SIZE); + List compileIds=Lists.newArrayList(); + List groupIds=Lists.newArrayList(); + List regionIds=Lists.newArrayList(); + try { + compileIds = ConfigServiceUtil.getId(1,_stringCfgs.size()); + if(isSend.equals("1")) { + groupIds = ConfigServiceUtil.getId(2,_stringCfgs.size()); + regionIds = ConfigServiceUtil.getId(3,_stringCfgs.size()); + } + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取编译ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + int ind=0; + for (BaseStringCfg cfg : _stringCfgs) { + cfg.setAction(serviceDict.getAction()); + cfg.setCfgRegionCode(regionDict.getConfigRegionCode()); + cfg.setCfgType(regionDict.getConfigRegionValue()); + cfg.setCreateTime(date); + cfg.setCreatorId(UserUtils.getUser().getId()); + //cfg.setDoLog(2); + cfg.setFunctionId(regionDict.getFunctionId()); + if(isSend.equals("1")) { + cfg.setIsAudit(Constants.AUDIT_YES); + cfg.setIsValid(Constants.VALID_YES); + cfg.setAuditorId(UserUtils.getUser().getId()); + cfg.setAuditTime(date); + if(groupIds!=null&&groupIds.size()==_stringCfgs.size()) { + cfg.setGroupId(groupIds.get(ind)); + } + if(regionIds!=null&®ionIds.size()==_stringCfgs.size()) { + cfg.setRegionId(regionIds.get(ind)); + } + }else { + cfg.setIsAudit(Constants.AUDIT_NOT_YET); + cfg.setIsValid(Constants.VALID_NO); + } + cfg.setIsAreaEffective(0); + cfg.setLable("0"); + cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); + cfg.setAttribute(attribute); + cfg.setClassify(classify); + cfg.setServiceId(serviceDict.getServiceId()); + if(compileIds!=null&&compileIds.size()==_stringCfgs.size()) { + cfg.setCompileId(compileIds.get(ind)); + } + CfgIndexInfo cfgIndexInfo = new CfgIndexInfo(); + BeanUtils.copyProperties(cfg, cfgIndexInfo, new String[] {"cfgId"}); + if(cfg.getDnsStrategyId()!=null) { + cfgIndexInfo.setDnsStrategyId(Long.parseLong(cfg.getDnsStrategyId().toString())); + } + cfgIndexInfos.add(cfgIndexInfo); + ind++; + } + fileTransferCfgService.saveAndSend(regionDict, cfgIndexInfos, _stringCfgs, isSend.equals("1")); + cfgIndexInfos.clear(); + _stringCfgs.clear(); + } + } else if (regionDict.getRegionType().equals(3)) {//dns + List _complexkeywordCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE); + while(!complexkeywordCfgs.isEmpty()) { + complexkeywordCfgs.drainTo(_complexkeywordCfgs, Constants.MAAT_JSON_SEND_SIZE); + List compileIds=Lists.newArrayList(); + List groupIds=Lists.newArrayList(); + List regionIds=Lists.newArrayList(); + try { + compileIds = ConfigServiceUtil.getId(1,_complexkeywordCfgs.size()); + if(isSend.equals("1")) { + groupIds = ConfigServiceUtil.getId(2,_complexkeywordCfgs.size()); + regionIds = ConfigServiceUtil.getId(3,_complexkeywordCfgs.size()); + } + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取编译ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + int ind=0; + for (ComplexkeywordCfg cfg : _complexkeywordCfgs) { + cfg.setAction(serviceDict.getAction()); + /*cfg.setAuditorId(UserUtils.getUser().getId()); + cfg.setAuditTime(date);*/ + cfg.setCfgRegionCode(regionDict.getConfigRegionCode()); + cfg.setCfgType(regionDict.getConfigRegionValue()); + cfg.setCreateTime(date); + cfg.setCreatorId(UserUtils.getUser().getId()); + //cfg.setDoLog(2); + cfg.setFunctionId(regionDict.getFunctionId()); + if(isSend.equals("1")) { + cfg.setIsAudit(Constants.AUDIT_YES); + cfg.setIsValid(Constants.VALID_YES); + cfg.setAuditorId(UserUtils.getUser().getId()); + cfg.setAuditTime(date); + if(groupIds!=null&&groupIds.size()==_complexkeywordCfgs.size()) { + cfg.setGroupId(groupIds.get(ind)); + } + if(regionIds!=null&®ionIds.size()==_complexkeywordCfgs.size()) { + cfg.setRegionId(regionIds.get(ind)); + } + }else { + cfg.setIsAudit(Constants.AUDIT_NOT_YET); + cfg.setIsValid(Constants.VALID_NO); + } + //cfg.setIsAudit(0); + //cfg.setIsValid(0); + cfg.setIsAreaEffective(0); + cfg.setLable("0"); + cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); + cfg.setAttribute(attribute); + cfg.setClassify(classify); + cfg.setServiceId(serviceDict.getServiceId()); + if(compileIds!=null&&compileIds.size()==_complexkeywordCfgs.size()) { + cfg.setCompileId(compileIds.get(ind)); + } + CfgIndexInfo cfgIndexInfo = new CfgIndexInfo(); + BeanUtils.copyProperties(cfg, cfgIndexInfo,new String[] {"cfgId"}); + if(cfg.getDnsStrategyId()!=null) { + cfgIndexInfo.setDnsStrategyId(Long.parseLong(cfg.getDnsStrategyId().toString())); + } + cfgIndexInfos.add(cfgIndexInfo); + ind++; + } + fileTransferCfgService.saveAndSend(regionDict, cfgIndexInfos, _complexkeywordCfgs, isSend.equals("1")); + cfgIndexInfos.clear(); + _complexkeywordCfgs.clear(); + } + } + } + if(errTip.toString().length()>0) { + addMessage(redirectAttributes,"error", errTip.toString()); + } + } catch (Exception e) { + if(ei!=null) { + if(ei.getUploadFile().exists()) { + ei.getUploadFile().delete(); + } + } + if(e instanceof MaatConvertException) { + addMessage(redirectAttributes,"error", "request_service_failed"); + }else if(e instanceof ServiceException) { + addMessage(redirectAttributes,"error", e.getMessage()); + }else if(e instanceof IndexOutOfBoundsException){ + addMessage(redirectAttributes,"error", "template_error"); + }else { + addMessage(redirectAttributes,"error", "import_failed"); + } + e.printStackTrace(); + } + long end=System.currentTimeMillis(); + logger.warn("import finish,cost:"+(end-start)); + return "redirect:" + adminPath+ importPath; + } } diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java b/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java index 8eb80abc0..b07a734ab 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java @@ -55,7 +55,9 @@ import com.nis.domain.configuration.template.AppPayloadTemplate; import com.nis.domain.configuration.template.AsnIpTemplate; import com.nis.domain.configuration.template.BlackListComplexStringTemplate; import com.nis.domain.configuration.template.BlackListIPTemplate; +import com.nis.domain.configuration.template.BlackListP2pHashStringTemplate; import com.nis.domain.configuration.template.BlackListStringTemplate; +import com.nis.domain.configuration.template.BlackListP2pIpTemplate; import com.nis.domain.configuration.template.ComplexStringAllNotDoLogTemplate; import com.nis.domain.configuration.template.ComplexStringAllTemplate; import com.nis.domain.configuration.template.DdosIpTemplate; @@ -386,10 +388,17 @@ public class IpController extends BaseController{ excel.setDataList(pro,classList,null). write(request,response, fileName).dispose(); }else if(regionDict.getFunctionId().equals(510) && "p2p_ip".equals(regionDict.getConfigServiceType())){ //P2p IP - List classList=new ArrayList(); - ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, P2pIpTemplate.class, 2); - excel.setDataList(pro,classList,null). - write(request,response, fileName).dispose(); + if(serviceDict!=null&&serviceDict.getAction().equals(16)) { + List classList=new ArrayList(); + ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, BlackListP2pIpTemplate.class, 2); + excel.setDataList(pro,classList,null). + write(request,response, fileName).dispose(); + }else { + List classList=new ArrayList(); + ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, P2pIpTemplate.class, 2); + excel.setDataList(pro,classList,null). + write(request,response, fileName).dispose(); + } }else if(regionDict.getFunctionId().equals(600)){ //asnip List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, AsnIpTemplate.class, 2); @@ -453,7 +462,8 @@ public class IpController extends BaseController{ ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, IpAllNotDoLogTemplate.class, 2); excel.setDataList(pro,classList,null). write(request,response, fileName).dispose(); - }else if((regionDict.getFunctionId().equals(34)||regionDict.getFunctionId().equals(8)||regionDict.getFunctionId().equals(35))&&serviceDict.getAction().equals(16)) {//SSL , HTTP ADVANCED URL mail + }else if((regionDict.getFunctionId().equals(34)||regionDict.getFunctionId().equals(8)||regionDict.getFunctionId().equals(35) + ||regionDict.getFunctionId().equals(51)||regionDict.getFunctionId().equals(22)||regionDict.getFunctionId().equals(24))&&serviceDict.getAction().equals(16)) {//SSL , HTTP ADVANCED URL mail,FTP,Steaming Media 的BLOCK List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, BlackListIPTemplate.class, 2); excel.setDataList(pro,classList,null). @@ -472,7 +482,12 @@ public class IpController extends BaseController{ } //str类模板 if(regionDict.getRegionType().equals(2)){ - if(regionDict.getFunctionId().equals(510) && "p2p_hash".equals(regionDict.getConfigServiceType())){ //P2p hash + if(regionDict.getFunctionId().equals(510) && "p2p_hash".equals(regionDict.getConfigServiceType())&&serviceDict!=null&&serviceDict.getAction().equals(16)){ //P2p hash block + List classList=new ArrayList(); + ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, BlackListP2pHashStringTemplate.class, 2); + excel.setDataList(pro,classList,null). + write(request,response, fileName).dispose(); + }else if(regionDict.getFunctionId().equals(510) && "p2p_hash".equals(regionDict.getConfigServiceType())){ //P2p hash List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, P2pHashStringTemplate.class, 2); excel.setDataList(pro,classList,null). @@ -529,7 +544,10 @@ public class IpController extends BaseController{ ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, BlackListStringTemplate.class, 2); excel.setDataList(pro,classList,null). write(request,response, fileName).dispose(); - }else if((regionDict.getFunctionId().equals(6)||regionDict.getFunctionId().equals(635)||regionDict.getFunctionId().equals(8))&&serviceDict.getAction().equals(16)) {//URL, Advanced Website Keyword BLOCK + }else if((regionDict.getFunctionId().equals(6)||regionDict.getFunctionId().equals(635)||regionDict.getFunctionId().equals(8) + ||regionDict.getFunctionId().equals(51)||regionDict.getFunctionId().equals(510)||regionDict.getFunctionId().equals(22) + ||regionDict.getFunctionId().equals(24) + )&&serviceDict.getAction().equals(16)) {//URL, Advanced Website Keyword FTP Steaming Media BLOCK List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, BlackListStringTemplate.class, 2); excel.setDataList(pro,classList,null). diff --git a/src/main/java/com/nis/web/service/configuration/AvContentCfgService.java b/src/main/java/com/nis/web/service/configuration/AvContentCfgService.java index 8b2ae6421..97924140a 100644 --- a/src/main/java/com/nis/web/service/configuration/AvContentCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/AvContentCfgService.java @@ -4,7 +4,6 @@ package com.nis.web.service.configuration; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -13,36 +12,34 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import com.nis.domain.FunctionRegionDict; import com.nis.domain.Page; -import com.nis.domain.configuration.AreaBean; import com.nis.domain.configuration.AreaIpCfg; import com.nis.domain.configuration.AvContUrlCfg; import com.nis.domain.configuration.AvVoipAccountCfg; import com.nis.domain.configuration.AvVoipIpCfg; +import com.nis.domain.configuration.BaseCfg; import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.configuration.BaseStringCfg; import com.nis.domain.configuration.CfgIndexInfo; -import com.nis.domain.configuration.HttpUrlCfg; import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.configuration.NtcSubscribeIdCfg; -import com.nis.domain.configuration.P2pHashCfg; -import com.nis.domain.configuration.P2pKeywordCfg; import com.nis.domain.maat.MaatCfg; -import com.nis.domain.maat.ToMaatBean; -import com.nis.domain.maat.ToMaatResult; import com.nis.domain.maat.MaatCfg.DigestCfg; import com.nis.domain.maat.MaatCfg.GroupCfg; import com.nis.domain.maat.MaatCfg.IpCfg; import com.nis.domain.maat.MaatCfg.NumBoundaryCfg; import com.nis.domain.maat.MaatCfg.StringCfg; +import com.nis.domain.maat.ToMaatBean; +import com.nis.domain.maat.ToMaatResult; import com.nis.exceptions.MaatConvertException; import com.nis.util.ConfigServiceUtil; import com.nis.util.Constants; -import com.nis.util.DictUtils; import com.nis.util.StringUtil; import com.nis.util.StringUtils; import com.nis.web.dao.configuration.AreaIpCfgDao; import com.nis.web.dao.configuration.AvContentCfgDao; +import com.nis.web.dao.configuration.IpCfgDao; import com.nis.web.dao.configuration.StringCfgDao; import com.nis.web.security.UserUtils; import com.nis.web.service.BaseService; @@ -62,6 +59,8 @@ public class AvContentCfgService extends BaseService{ protected AreaIpCfgDao areaIpCfgDao; @Autowired protected StringCfgDao stringCfgDao; + @Autowired + protected IpCfgDao ipCfgDao; /********************************voip业务*********************************/ @@ -1984,5 +1983,79 @@ public class AvContentCfgService extends BaseService{ logger.info("picUrl配置取消配置响应信息:"+result.getMsg()); } } - /********************************picUrl业务*********************************/ + /** + * 配置导入,目前只支持单sheet + * @param regionDict + * @param cfgIndexInfos + * @param data + * @param send + */ + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void saveAndSend(FunctionRegionDict regionDict,List cfgIndexInfos,List> data,boolean send) { + if (cfgIndexInfos != null && cfgIndexInfos.size() > 0) { + this.saveCfgIndexOf(cfgIndexInfos); + } + if(data!=null&&!data.isEmpty()) { + List configCompileList = new ArrayList(); + if(data.get(0) instanceof BaseIpCfg) { + for (int index = 0; index < data.size(); index++) { + BaseIpCfg cfg =(BaseIpCfg)data.get(index); + ipCfgDao.insertForBatch(cfg); + if (send) { + if(regionDict.getIsMaat().intValue()==1) { + MaatCfg maatCfg=convertMaatCfg(cfg,1); + //userregion处理 + + configCompileList.add(maatCfg); + } + } + } + }else if(data.get(0) instanceof BaseStringCfg) { + for (int index = 0; index < data.size(); index++) { + BaseStringCfg cfg = (BaseStringCfg)data.get(index); + if(cfg.getCfgKeywords()!=null && !"".equals(cfg.getCfgKeywords())){ + if("subscribe_id".equals(regionDict.getConfigServiceType())){ + cfg.setTableName("ntc_subscribe_id_cfg"); + }else if(regionDict.getDictId().intValue()==25){ + cfg.setTableName("av_cont_url_cfg"); + }else if(regionDict.getDictId().intValue()==16) { + cfg.setTableName("av_voip_account_cfg"); + } + stringCfgDao.saveStringCfgBatch(cfg); + } + if (send) { + if(regionDict.getIsMaat().intValue()==1) { + MaatCfg maatCfg=convertMaatCfg(cfg,2); + //userregion处理 + configCompileList.add(maatCfg); + } + + } + } + } + if (send && configCompileList.size() > 0) { + ToMaatBean maatBean = new ToMaatBean(); + maatBean.setConfigCompileList(configCompileList); + maatBean.setAuditTime(new Date()); + maatBean.setCreatorName(UserUtils.getUser().getName()); + maatBean.setVersion(Constants.MAAT_VERSION); + maatBean.setOpAction(Constants.INSERT_ACTION); + long start=System.currentTimeMillis(); + // 调用服务接口下发配置数据 + String json = BaseService.gsonToJson(maatBean); + if(configCompileList.size()>10) { + logger.info("配置下发配置条数:" + configCompileList.size()); + }else { + logger.info("配置下发配置参数:" + json); + } + // 调用服务接口下发配置 + ToMaatResult result = ConfigServiceUtil.postMaatCfg(json); + logger.info("配置下发响应信息:" + result.getMsg()); + long end=System.currentTimeMillis(); + logger.info("配置下发配置耗时:" + (end-start)); + + } + } + + } } diff --git a/src/main/java/com/nis/web/service/configuration/FileTransferCfgService.java b/src/main/java/com/nis/web/service/configuration/FileTransferCfgService.java index 6a7fcf8f9..e952788aa 100644 --- a/src/main/java/com/nis/web/service/configuration/FileTransferCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/FileTransferCfgService.java @@ -1,52 +1,51 @@ package com.nis.web.service.configuration; -import java.io.File; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; -import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.web.multipart.MultipartFile; +import org.springframework.transaction.annotation.Transactional; +import com.nis.domain.FunctionRegionDict; import com.nis.domain.Page; -import com.nis.domain.SysDataDictionaryItem; import com.nis.domain.configuration.AreaIpCfg; +import com.nis.domain.configuration.BaseCfg; +import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.configuration.BaseStringCfg; import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.ComplexkeywordCfg; -import com.nis.domain.configuration.BaseStringCfg; import com.nis.domain.configuration.FileDigestCfg; +import com.nis.domain.configuration.FtpKeywordCfg; import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.configuration.NtcSubscribeIdCfg; import com.nis.domain.configuration.P2pHashCfg; import com.nis.domain.configuration.P2pKeywordCfg; -import com.nis.domain.configuration.FtpKeywordCfg; import com.nis.domain.maat.MaatCfg; -import com.nis.domain.maat.ToMaatBean; -import com.nis.domain.maat.ToMaatResult; import com.nis.domain.maat.MaatCfg.DigestCfg; import com.nis.domain.maat.MaatCfg.GroupCfg; import com.nis.domain.maat.MaatCfg.IpCfg; import com.nis.domain.maat.MaatCfg.NumBoundaryCfg; import com.nis.domain.maat.MaatCfg.StringCfg; +import com.nis.domain.maat.ToMaatBean; +import com.nis.domain.maat.ToMaatResult; import com.nis.exceptions.MaatConvertException; import com.nis.util.ConfigServiceUtil; import com.nis.util.Constants; import com.nis.util.DictUtils; -import com.nis.util.FileUtils; -import com.nis.util.JsonMapper; import com.nis.util.StringUtil; import com.nis.web.dao.configuration.AreaIpCfgDao; import com.nis.web.dao.configuration.FileTransferCfgDao; +import com.nis.web.dao.configuration.IpCfgDao; import com.nis.web.dao.configuration.MailCfgDao; import com.nis.web.dao.configuration.StringCfgDao; import com.nis.web.security.UserUtils; +import com.nis.web.service.BaseService; import com.nis.web.service.CrudService; /** @@ -64,6 +63,8 @@ public class FileTransferCfgService extends CrudService getFtpList(Page page, CfgIndexInfo entity){ // 生成数据权限过滤条件(dsf为dataScopeFilter的简写,在xml中使用 ${sqlMap.dsf}调用权限SQL) @@ -1075,6 +1076,86 @@ public class FileTransferCfgService extends CrudService cfgIndexInfos,List> data,boolean send) { + if (cfgIndexInfos != null && cfgIndexInfos.size() > 0) { + this.saveCfgIndexOf(cfgIndexInfos); + } + if(data!=null&&!data.isEmpty()) { + List configCompileList = new ArrayList(); + if(data.get(0) instanceof BaseIpCfg) { + for (int index = 0; index < data.size(); index++) { + BaseIpCfg cfg =(BaseIpCfg)data.get(index); + ipCfgDao.insertForBatch(cfg); + if (send) { + if(regionDict.getIsMaat().intValue()==1) { + MaatCfg maatCfg=convertMaatCfg(cfg,1); + //userregion处理 + if("p2p_ip".equals(regionDict.getConfigServiceType())) { + maatCfg.setUserRegion(Constants.P2P_IP_TYPE_USER_REGION_KEY+"="+cfg.getUserRegion2()); + } + configCompileList.add(maatCfg); + } + } + } + }else if(data.get(0) instanceof BaseStringCfg) { + for (int index = 0; index < data.size(); index++) { + BaseStringCfg cfg = (BaseStringCfg)data.get(index); + if(cfg.getCfgKeywords()!=null && !"".equals(cfg.getCfgKeywords())){ + if("subscribe_id".equals(regionDict.getConfigServiceType())){ + cfg.setTableName("ntc_subscribe_id_cfg"); + }else if(regionDict.getDictId().intValue() == 36||regionDict.getDictId().intValue() == 37){ + cfg.setTableName("ftp_keyword_cfg"); + }else if(regionDict.getDictId().equals(158)) { + cfg.setTableName("p2p_keyword_cfg"); + }else if(regionDict.getDictId().equals(159)) { + cfg.setTableName("p2p_hash_cfg"); + } + stringCfgDao.saveStringCfgBatch(cfg); + } + if (send) { + if(regionDict.getIsMaat().intValue()==1) { + MaatCfg maatCfg=convertMaatCfg(cfg,2); + //userregion处理 + if("p2p_hash".equals(regionDict.getConfigServiceType())) { + maatCfg.setUserRegion(Constants.P2P_HASH_TYPE_USER_REGION_KEY+"="+cfg.getUserRegion1()); + } + configCompileList.add(maatCfg); + } + + } + } + } + if (send && configCompileList.size() > 0) { + ToMaatBean maatBean = new ToMaatBean(); + maatBean.setConfigCompileList(configCompileList); + maatBean.setAuditTime(new Date()); + maatBean.setCreatorName(UserUtils.getUser().getName()); + maatBean.setVersion(Constants.MAAT_VERSION); + maatBean.setOpAction(Constants.INSERT_ACTION); + long start=System.currentTimeMillis(); + // 调用服务接口下发配置数据 + String json = BaseService.gsonToJson(maatBean); + if(configCompileList.size()>10) { + logger.info("ftp/p2p配置下发配置条数:" + configCompileList.size()); + }else { + logger.info("ftp/p2p配置下发配置参数:" + json); + } + // 调用服务接口下发配置 + ToMaatResult result = ConfigServiceUtil.postMaatCfg(json); + logger.info("ftp/p2p配置下发响应信息:" + result.getMsg()); + long end=System.currentTimeMillis(); + logger.info("ftp/p2p配置下发配置耗时:" + (end-start)); + + } + } + + } } diff --git a/src/main/webapp/WEB-INF/views/cfg/av/contUrl/contUrlList.jsp b/src/main/webapp/WEB-INF/views/cfg/av/contUrl/contUrlList.jsp index 60b883acb..06b61b4ad 100644 --- a/src/main/webapp/WEB-INF/views/cfg/av/contUrl/contUrlList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/av/contUrl/contUrlList.jsp @@ -546,6 +546,7 @@ + <%@include file="/WEB-INF/include/excel/importModal.jsp" %> diff --git a/src/main/webapp/WEB-INF/views/cfg/av/voip/voipList.jsp b/src/main/webapp/WEB-INF/views/cfg/av/voip/voipList.jsp index c35324542..8ecf797e7 100644 --- a/src/main/webapp/WEB-INF/views/cfg/av/voip/voipList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/av/voip/voipList.jsp @@ -536,6 +536,7 @@ + <%@include file="/WEB-INF/include/excel/importModal.jsp" %> diff --git a/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpList.jsp b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpList.jsp index 2f764116e..448db1b8d 100644 --- a/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpList.jsp @@ -516,6 +516,7 @@ + <%@include file="/WEB-INF/include/excel/importModal.jsp" %> diff --git a/src/main/webapp/WEB-INF/views/cfg/fileTransfer/p2pList.jsp b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/p2pList.jsp index 9f43c56b6..abc7f17a2 100644 --- a/src/main/webapp/WEB-INF/views/cfg/fileTransfer/p2pList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/p2pList.jsp @@ -530,6 +530,7 @@ + <%@include file="/WEB-INF/include/excel/importModal.jsp" %>