diff --git a/src/main/java/com/nis/domain/configuration/template/DnsIpTemplate.java b/src/main/java/com/nis/domain/configuration/template/DnsIpTemplate.java index 557195e4d..79a16c5fe 100644 --- a/src/main/java/com/nis/domain/configuration/template/DnsIpTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/DnsIpTemplate.java @@ -8,7 +8,6 @@ */ package com.nis.domain.configuration.template; -import com.google.gson.JsonObject; import com.nis.util.excel.ExcelField; /** diff --git a/src/main/java/com/nis/util/DictUtils.java b/src/main/java/com/nis/util/DictUtils.java index 2989ede08..897601245 100644 --- a/src/main/java/com/nis/util/DictUtils.java +++ b/src/main/java/com/nis/util/DictUtils.java @@ -282,6 +282,28 @@ public class DictUtils { } return regionDict; } + /** + * 功能配置域字典,获取配置域信息 + * @param dictId + * @return + */ + public static FunctionRegionDict getFunctionRegionDictByRegionCode(Integer functionId,Integer regionCode){ + FunctionRegionDict regionDict=null; + List allDictList = (List)CacheUtils.get(Constants.CACHE_FUNCTION_REGION_DICT); + List dictList = new ArrayList(); + if(StringUtil.isEmpty(allDictList)){ + FunctionRegionDict entity = new FunctionRegionDict(); + allDictList = functionRegionDictDao.getList(entity); + CacheUtils.put(Constants.CACHE_FUNCTION_REGION_DICT, allDictList); + } + for(FunctionRegionDict entity:allDictList){ + if(entity.getConfigRegionCode().equals(regionCode)&&entity.getFunctionId().equals(functionId)){ + regionDict=entity; + break; + } + } + return regionDict; + } /** * 功能配置域字典,获取相应功能菜单对应的配置域信息 * @param functionId diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index bee22fcd3..f8711f3e7 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -39,6 +39,7 @@ import com.nis.domain.SysDataDictionaryItem; import com.nis.domain.basics.PolicyGroupInfo; import com.nis.domain.basics.ServiceDictInfo; import com.nis.domain.basics.SysDictInfo; +import com.nis.domain.configuration.AppPolicyCfg; import com.nis.domain.configuration.AreaBean; import com.nis.domain.configuration.AreaIpCfg; import com.nis.domain.configuration.BaseCfg; @@ -54,6 +55,7 @@ import com.nis.domain.configuration.template.IpPayloadTemplate; import com.nis.domain.configuration.template.IpRateLimitTemplate; import com.nis.domain.log.BaseLogEntity; import com.nis.domain.log.SearchReport; +import com.nis.domain.specific.SpecificServiceCfg; import com.nis.exceptions.MaatConvertException; import com.nis.util.Configurations; //import com.nis.main.ConvertTool; @@ -2430,12 +2432,26 @@ public class BaseController { * @param regionDictIds * @param requestId */ - public void _import(RedirectAttributes redirectAttributes, MultipartFile[] files, Integer serviceDictId, + public void _import(HttpServletRequest request,HttpServletResponse response,RedirectAttributes redirectAttributes, MultipartFile[] files, Integer serviceDictId, String regionDictIds, Integer requestId) { try { FunctionServiceDict serviceDict = DictUtils.getFunctionServiceDict(serviceDictId); + String regionCode=serviceDict.getRegionCode(); List ipPortCfgs = new ArrayList(); List cfgIndexInfos = new ArrayList(); + List appPolicyCfgs = new ArrayList(); + FunctionRegionDict appRegion=null; + for(String code:regionCode.split(",")) { + if(StringUtils.isNotBlank(code)) { + FunctionRegionDict d=DictUtils.getFunctionRegionDictByRegionCode(serviceDict.getFunctionId(),Integer.parseInt(code)); + if(d.getConfigServiceType().equals("app_policy")) { + appRegion=d; + break; + } + } + + } + for (int i = 0; i < files.length; i++) { MultipartFile file = files[i]; ImportExcel ei = new ImportExcel(file, 0, 0); @@ -2464,8 +2480,15 @@ public class BaseController { ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list); } Date date = new Date(); + String specServiceId=request.getParameter("appId"); + String behaviorId=request.getParameter("behaviorId"); + SpecificServiceCfg specificServiceCfg=null; + if(serviceDict.getServiceId().intValue()==33||serviceDict.getServiceId().intValue()==145) { + if(StringUtils.isNotBlank(specServiceId)) { + specificServiceCfg=specificServiceCfgService.getBySpecServiceId(Integer.parseInt(specServiceId)); + } + } for (BaseIpCfg cfg : ipPortCfgs) { - CfgIndexInfo cfgIndexInfo = new CfgIndexInfo(); cfg.setAction(serviceDict.getAction()); cfg.setAuditorId(UserUtils.getUser().getId()); cfg.setAuditTime(date); @@ -2485,12 +2508,32 @@ public class BaseController { cfg.setServiceId(serviceDict.getServiceId()); cfg.setTableName("ip_port_cfg"); cfg.setCompileId(ipCfgService.getCompileId()); - - BeanUtils.copyProperties(cfg, cfgIndexInfo); - cfgIndexInfos.add(cfgIndexInfo); + if(serviceDict.getServiceId().intValue()==33||serviceDict.getServiceId().intValue()==145) { + if(specificServiceCfg!=null&&appRegion!=null) { + AppPolicyCfg appPolicyCfg=new AppPolicyCfg(); + BeanUtils.copyProperties(cfg, appPolicyCfg); + appPolicyCfg.setSpecServiceId(specificServiceCfg.getSpecServiceId()); + appPolicyCfg.setAppCode(specificServiceCfg.getSpecServiceCode()); + appPolicyCfg.setExprType(0); + appPolicyCfg.setMatchMethod(0); + appPolicyCfg.setIsHexbin(0); + appPolicyCfg.setCfgType(appRegion.getConfigRegionValue()); + appPolicyCfg.setCfgRegionCode(appRegion.getConfigRegionCode()); + if(StringUtils.isNotBlank(behaviorId)) { + appPolicyCfg.setBehavCode(Integer.parseInt(behaviorId)); + } + appPolicyCfgs.add(appPolicyCfg); + } + }else { + CfgIndexInfo cfgIndexInfo = new CfgIndexInfo(); + BeanUtils.copyProperties(cfg, cfgIndexInfo); + cfgIndexInfos.add(cfgIndexInfo); + } + } ipCfgService.saveBatch(ipPortCfgs, IpCfgDao.class); ipCfgService.saveCfgIndexOf(cfgIndexInfos); + appCfgService.savePolicyList(appPolicyCfgs); } } catch (Exception e) { addMessage(redirectAttributes, e.getMessage()); 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 4a2d523c3..8f22c380a 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 @@ -295,13 +295,13 @@ public class IpController extends BaseController{ //ip配置导入 @RequestMapping(value = "import", method=RequestMethod.POST) - public String importIp(RedirectAttributes redirectAttributes, + public String importIp(HttpServletRequest request,HttpServletResponse response,RedirectAttributes redirectAttributes, @RequestParam("files") MultipartFile[] files ,Integer serviceDictId ,Integer requestId ,String regionDictIds ,String importPath) { - this._import(redirectAttributes, files,serviceDictId,regionDictIds,requestId); + this._import(request,response,redirectAttributes, files,serviceDictId,regionDictIds,requestId); return "redirect:" + adminPath+ importPath; } //ip配置导出 diff --git a/src/main/java/com/nis/web/service/configuration/AppCfgService.java b/src/main/java/com/nis/web/service/configuration/AppCfgService.java index d1cd1a6b9..72d1d0aaf 100644 --- a/src/main/java/com/nis/web/service/configuration/AppCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/AppCfgService.java @@ -306,7 +306,12 @@ public class AppCfgService extends BaseService { } } } - + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void savePolicyList(List appPolicyCfgs){ + for (AppPolicyCfg appPolicyCfg : appPolicyCfgs) { + appCfgDao.insertAppPolicyCfg(appPolicyCfg); + } + } @Transactional(readOnly = false, rollbackFor = RuntimeException.class) public void saveOrUpdateAppIpCfg(AppIpCfg entity) throws Exception { // 设置区域运营商信息 diff --git a/src/main/webapp/WEB-INF/views/cfg/app/appPolicyCfgList.jsp b/src/main/webapp/WEB-INF/views/cfg/app/appPolicyCfgList.jsp index 16bf91534..900866edf 100644 --- a/src/main/webapp/WEB-INF/views/cfg/app/appPolicyCfgList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/app/appPolicyCfgList.jsp @@ -98,6 +98,9 @@ onClick="javascript:window.location='${ctx}/app/policyCfgForm?functionId=${cfg.functionId}'"> + @@ -486,6 +489,8 @@ - + + +<%@include file="/WEB-INF/include/excel/importModal.jsp" %> \ No newline at end of file diff --git a/src/main/webapp/static/global/scripts/common.js b/src/main/webapp/static/global/scripts/common.js index 8646b311a..a75c96988 100644 --- a/src/main/webapp/static/global/scripts/common.js +++ b/src/main/webapp/static/global/scripts/common.js @@ -438,8 +438,10 @@ $(function(){ }); //去掉首尾空格 $("input,textarea").on("blur",function(){ - var val=$(this).val(); - $(this).val(val.trim()); + if($(this).attr("type")!="file"){ + var val=$(this).val(); + $(this).val(val.trim()); + } }); /*var log_total=sessionStorage.getItem("log_total"); var log_time_start=sessionStorage.getItem("log_time_start"); @@ -1479,30 +1481,6 @@ var downLoadXLS=function(){ var openSelct=function(obj){ $(obj).parent().parent().find(".tree-multiselect").removeClass("hidden"); } -//导入配置 -var importCfg=function(){ - if($("#serviceId").val()==""){ - alert("请选择action"); - return ; - } - var fileName = $(".fileupload-preview", $("#importForm1")).text(); - var $error = $('.alert-error', $("#importForm1")); - if(fileName==""){ - - $("span",$error).html("请选择xls或者xlsx格式文件进行导入..."); - $error.removeClass("hide"); - $error.addClass("show"); - return false; - - }else if(fileName.lastIndexOf("\.")==-1||fileName.substring(fileName.lastIndexOf("\.")+1).toLowerCase()!='xls' &&fileName.substring(fileName.lastIndexOf("\.")+1).toLowerCase()!='xlsx'){ - $("span",$error).html("导入的文件后缀,必须为xls或者xlsx..."); - $error.removeClass("hide"); - $error.addClass("show"); - return false; - } - $("#import_modal").modal('hide');//导入文件隐藏 - $("#importForm1").submit(); -} var validateTagInputKeyword=function(){ var flag=true; $(".boxSolid:visible").find("input[name$='cfgKeywords']").each(function(){ diff --git a/src/main/webapp/static/pages/scripts/importExcel.js b/src/main/webapp/static/pages/scripts/importExcel.js index b0c3c7aff..20a756a19 100644 --- a/src/main/webapp/static/pages/scripts/importExcel.js +++ b/src/main/webapp/static/pages/scripts/importExcel.js @@ -88,3 +88,27 @@ var ajaxBehaviour=function(val){ } }); } +//导入配置 +var importCfg=function(){ + if($("#serviceId").val()==""){ + alert("请选择action"); + return ; + } + var fileName = $(".fileupload-preview", $("#importForm1")).text(); + var $error = $('.alert-error', $("#importForm1")); + if(fileName==""){ + + $("span",$error).html("请选择xls或者xlsx格式文件进行导入..."); + $error.removeClass("hide"); + $error.addClass("show"); + return false; + + }else if(fileName.lastIndexOf("\.")==-1||fileName.substring(fileName.lastIndexOf("\.")+1).toLowerCase()!='xls' &&fileName.substring(fileName.lastIndexOf("\.")+1).toLowerCase()!='xlsx'){ + $("span",$error).html("导入的文件后缀,必须为xls或者xlsx..."); + $error.removeClass("hide"); + $error.addClass("show"); + return false; + } + $("#import_modal").modal('hide');//导入文件隐藏 + $("#importForm1").submit(); +} \ No newline at end of file