diff --git a/src/main/java/com/nis/persistence/interceptor/ScheduleUpdateInterceptor.java b/src/main/java/com/nis/persistence/interceptor/ScheduleUpdateInterceptor.java index 6a1d26d67..5557609bd 100644 --- a/src/main/java/com/nis/persistence/interceptor/ScheduleUpdateInterceptor.java +++ b/src/main/java/com/nis/persistence/interceptor/ScheduleUpdateInterceptor.java @@ -71,6 +71,7 @@ public class ScheduleUpdateInterceptor extends BaseInterceptor{ EXCLUDE_MAPPER_IDS.add("com.nis.web.dao.basics.ServiceDictInfoDao"); EXCLUDE_MAPPER_IDS.add("com.nis.web.dao.configuration.PxyObjKeyringDao.updatePxyObjTrustedCaCrl"); EXCLUDE_MAPPER_IDS.add("com.nis.web.dao.configuration.CommonPolicyDao.auditCfgBatch"); + EXCLUDE_MAPPER_IDS.add("com.nis.web.dao.configuration.CommonPolicyDao.deleteCfgBatch"); } /** * is_valid 字段名 diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index c3f22d280..59331ae96 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -131,6 +131,7 @@ import com.nis.util.Constants; import com.nis.util.DateUtils; import com.nis.util.DictUtils; import com.nis.util.JsonMapper; +import com.nis.util.Reflections; import com.nis.util.ServiceConfigTemplateUtil; import com.nis.util.StringUtil; import com.nis.util.excel.ExcelCsv; @@ -2816,10 +2817,10 @@ public class BaseController { BeanUtils.copyProperties(entity, searchAsnIpCfg); } + auditType = (Integer)Reflections.invokeGetter(entity, "isAudit"); - - //全部审核通过,只查询当前条件下的所有未审核的配置 - if(auditType.equals(1)) { + //全部审核通过,只查询当前条件下的所有未审核的配置 -批量审核通过/不通过 + if(auditType.equals(1) || auditType.equals(2)) { searchCfg.setIsValid(0); searchCfg.setIsAudit(0); searchAppCfg.setIsValid(0); @@ -2859,8 +2860,13 @@ public class BaseController { searchAsnIpCfg.setIsValid(0); searchAsnIpCfg.setIsAudit(0); - auditBatchCfg.setIsAudit(1); - auditBatchCfg.setIsValid(1); + if(auditType.equals(1)) { + auditBatchCfg.setIsAudit(1); + auditBatchCfg.setIsValid(1); + }else { + auditBatchCfg.setIsAudit(2); + auditBatchCfg.setIsValid(0); + } auditBatchCfg.setAuditTime(new Date()); auditBatchCfg.setAuditorId(UserUtils.getUser().getId()); }else { @@ -2916,12 +2922,11 @@ public class BaseController { functionId=auditBatchCfg.getFunctionId(); } List> serviceList = serviceTemplate.getServiceListByFunctionId(functionId); - for(Map service:serviceList){ - String tableNameXml = service.get("tableName").toString(); - String serviceTypeXml = service.get("serviceType").toString(); - String classNameXml = service.get("className").toString(); - String serviceIdXml = service.get("id").toString(); + String tableNameXml = service.get("tableName").toString(); // 获取业务主配置表 + String serviceTypeXml = service.get("serviceType").toString(); // 业务类型 1maat 2callback + String classNameXml = service.get("className").toString(); // 主配置Java类 + String serviceIdXml = service.get("id").toString(); // service字典表 service_id字段 auditBatchCfg.setServiceId(Integer.valueOf(serviceIdXml)); auditBatchCfg.setTableName(tableNameXml); searchCfg.setServiceId(Integer.valueOf(serviceIdXml)); @@ -2962,6 +2967,7 @@ public class BaseController { searchAppSslCertCfg.setTableName(tableNameXml); if("1".equals(serviceTypeXml)){//maat类配置 + // 存放域配置类型 及 对应表名 List> cfgList = (List>) service.get("cfgList"); List> userRegionList = (List>) service.get("userRegionList"); if(!StringUtil.isEmpty(cfgList)) { @@ -2971,21 +2977,25 @@ public class BaseController { while(hasData){ page.setPageNo(1); page.setLastPage(false); - List list=getDataList(page,searchCfg,null,null,null); + List list = getDataList(page,searchCfg,null,null,null); // 通过ServiceId获取cfg_index_info主配置表数据 if(!StringUtil.isEmpty(list)){ //配置生效处理 复用全量下发 - if(auditBatchCfg.getIsValid().equals(1)) { - hasData=configSynchronizationService.auditNtcMaatData(cfgList,userRegionList,page,auditBatchCfg,list,hasData,true); - }else {//配置失效处理 批量处理 - List cfgIndexList=new ArrayList<>(); + if(auditBatchCfg.getIsAudit().equals(1)) { + hasData = configSynchronizationService.auditNtcMaatData(cfgList,userRegionList,page,auditBatchCfg,list,hasData,true); + }else { + List BaseCfgList=new ArrayList<>(); if(!StringUtil.isEmpty(list)) { for (CfgIndexInfo cfg : list) { BaseCfg baseCfg=new BaseCfg(); BeanUtils.copyProperties(cfg, baseCfg); - cfgIndexList.add(baseCfg); + BaseCfgList.add(baseCfg); } } - hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg, cfgIndexList, hasData); + if(auditBatchCfg.getIsAudit().equals(2)) {// 配置批量审核不通过 + hasData = commonPolicyService.batchUnApproveMaatData(cfgList, page, auditBatchCfg, BaseCfgList, hasData); + }else {// 配置失效处理 批量处理 + hasData = commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg, BaseCfgList, hasData); + } } }else{ hasData = false; @@ -3001,9 +3011,9 @@ public class BaseController { List list=getDataList(page,null,null,searchDigestCfg,null); if(!StringUtil.isEmpty(list)){ //配置生效处理 复用全量下发 - if(auditBatchCfg.getIsValid().equals(1)) { + if(auditBatchCfg.getIsAudit().equals(1)) { hasData=configSynchronizationService.auditFileDigestData(cfgList, userRegionList, page, auditBatchCfg, list, hasData, true); - }else {//配置失效处理 批量处理 + }else { List baseCfgList=new ArrayList<>(); if(!StringUtil.isEmpty(list)) { for (FileDigestCfg cfg : list) { @@ -3012,7 +3022,11 @@ public class BaseController { baseCfgList.add(baseCfg); } } - hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg,baseCfgList, hasData); + if(auditBatchCfg.getIsAudit().equals(2)) {// 配置批量审核不通过 + hasData = commonPolicyService.batchUnApproveMaatData(cfgList, page, auditBatchCfg, baseCfgList, hasData); + }else {// 配置失效处理 批量处理 + hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg,baseCfgList, hasData); + } } }else{ hasData = false; @@ -3027,9 +3041,9 @@ public class BaseController { List list=getDataList(page,null,searchAppCfg,null,null); if(!StringUtil.isEmpty(list)){ //配置生效处理 复用全量下发 - if(auditBatchCfg.getIsValid().equals(1)) { + if(auditBatchCfg.getIsAudit().equals(1)) { hasData=configSynchronizationService.auditAppPolicyData(cfgList,userRegionList,page,auditBatchCfg,list,hasData,true); - }else {//配置失效处理 批量处理 + }else { List cfgAppList=new ArrayList<>(); if(!StringUtil.isEmpty(list)) { for (AppPolicyCfg cfg : list) { @@ -3038,7 +3052,11 @@ public class BaseController { cfgAppList.add(baseCfg); } } - hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg,cfgAppList, hasData); + if(auditBatchCfg.getIsAudit().equals(2)) {// 配置批量审核不通过 + hasData = commonPolicyService.batchUnApproveMaatData(cfgList, page, auditBatchCfg, cfgAppList, hasData); + }else {// 配置失效处理 批量处理 + hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg,cfgAppList, hasData); + } } }else{ hasData = false; @@ -3054,9 +3072,9 @@ public class BaseController { List list=getDataList(page,null,null,null,searchAppFeatureIndex); if(!StringUtil.isEmpty(list)){ //配置生效处理 复用全量下发 - if(auditBatchCfg.getIsValid().equals(1)) { + if(auditBatchCfg.getIsAudit().equals(1)) { hasData=configSynchronizationService.auditAppFeatureData(cfgList,userRegionList,page,auditBatchCfg,list,hasData,true); - }else {//配置失效处理 批量处理 + }else { List cfgFeatrureList=new ArrayList<>(); if(!StringUtil.isEmpty(list)) { for (AppFeatureIndex cfg : list) { @@ -3065,7 +3083,11 @@ public class BaseController { cfgFeatrureList.add(baseCfg); } } - hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg,cfgFeatrureList, hasData); + if(auditBatchCfg.getIsAudit().equals(2)) {// 配置批量审核不通过 + hasData = commonPolicyService.batchUnApproveMaatData(cfgList, page, auditBatchCfg, cfgFeatrureList, hasData); + }else {// 配置失效处理 批量处理 + hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg,cfgFeatrureList, hasData); + } } }else{ hasData = false; @@ -3085,7 +3107,8 @@ public class BaseController { List list=ddosCfgService.findPage(page, searchDdosIpCfg).getList(); if(!StringUtil.isEmpty(list)){ - if(auditBatchCfg.getIsValid().equals(1)) { + // 配置生效处理 + if(auditBatchCfg.getIsAudit().equals(1)) { hasData=configSynchronizationService.auditDdosMaatData(cfgList,userRegionList, page,auditBatchCfg,list,hasData,true); }else { @@ -3096,7 +3119,11 @@ public class BaseController { newList.add(cfg); } } - hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg,newList, hasData); + if(auditBatchCfg.getIsAudit().equals(2)) {// 配置批量审核不通过 + hasData = commonPolicyService.batchUnApproveMaatData(cfgList, page, auditBatchCfg, newList, hasData); + }else {// 配置失效处理 批量处理 + hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg,newList, hasData); + } } if(hasData) { page.setPageNo(1); @@ -3324,7 +3351,181 @@ public class BaseController { logger.warn("配置批量生效/失效耗时:"+(end-start)); } - + /** + * 界面批量删除当前检索条件下的配置 + * @param page + * @param functionId + * @param entity + * @throws Exception + */ + public void deleteAll(Page page,Integer functionId, Object entity)throws Exception { + long start=System.currentTimeMillis(); + page.setOrderBy(""); + page.setPageSize(Constants.MAAT_JSON_SEND_SIZE); + page.setPageNo(1); + page.setLastPage(false); + + // 只有未审核的配置可删除 + CfgIndexInfo searchCfg = new CfgIndexInfo(); + AppPolicyCfg searchAppCfg=new AppPolicyCfg(); + FileDigestCfg searchDigestCfg=new FileDigestCfg(); + AvFileSampleCfg searchFileSampleCfg=new AvFileSampleCfg(); + DdosIpCfg searchDdosIpCfg=new DdosIpCfg(); + + // 传递检索条件 + if(entity != null && (entity instanceof CfgIndexInfo)) { + BeanUtils.copyProperties(entity, searchCfg); + searchCfg.setIsValid(0); + searchCfg.setIsAudit(0); + searchCfg.setFunctionId(functionId); + } + if(entity != null && (entity instanceof AppPolicyCfg)) { + BeanUtils.copyProperties(entity, searchAppCfg); + searchAppCfg.setIsValid(0); + searchAppCfg.setIsAudit(0); + searchAppCfg.setFunctionId(functionId); + } + if(entity != null && (entity instanceof FileDigestCfg)) { + BeanUtils.copyProperties(entity, searchDigestCfg); + searchDigestCfg.setIsValid(0); + searchDigestCfg.setIsAudit(0); + searchDigestCfg.setFunctionId(functionId); + } + if(entity != null && (entity instanceof AvFileSampleCfg)) { + BeanUtils.copyProperties(entity, searchFileSampleCfg); + searchFileSampleCfg.setIsValid(0); + searchFileSampleCfg.setIsAudit(0); + searchFileSampleCfg.setFunctionId(functionId); + } + if(entity != null && (entity instanceof DdosIpCfg)) { + BeanUtils.copyProperties(entity, searchDdosIpCfg); + searchDdosIpCfg.setIsValid(0); + searchDdosIpCfg.setIsAudit(0); + searchDdosIpCfg.setFunctionId(functionId); + } + + BaseCfg batchCfg = new BaseCfg(); + batchCfg.setEditTime(new Date()); + batchCfg.setEditorId(UserUtils.getUser().getId()); + + ServiceConfigTemplateUtil serviceTemplate = new ServiceConfigTemplateUtil(); + List> serviceList = serviceTemplate.getServiceListByFunctionId(functionId); + for(Map service:serviceList){ + String tableNameXml = service.get("tableName").toString(); // 获取业务主配置表 + String serviceTypeXml = service.get("serviceType").toString(); // 业务类型 1maat 2callback + String classNameXml = service.get("className").toString(); // 主配置Java类 + String serviceIdXml = service.get("id").toString(); // service字典表 service_id字段 + + searchCfg.setServiceId(Integer.valueOf(serviceIdXml)); + searchCfg.setTableName(tableNameXml); + searchAppCfg.setServiceId(Integer.valueOf(serviceIdXml)); + searchAppCfg.setTableName(tableNameXml); + searchDigestCfg.setServiceId(Integer.valueOf(serviceIdXml)); + searchDigestCfg.setTableName(tableNameXml); + batchCfg.setServiceId(Integer.valueOf(serviceIdXml)); + batchCfg.setTableName(tableNameXml); + + // 存放域配置类型 及 对应表名 + List> cfgList = (List>) service.get("cfgList"); + //if(!StringUtil.isEmpty(cfgList)) { + if("cfg_index_info".equals(tableNameXml)){ + boolean hasData = true; + while(hasData){ + page.setPageNo(1); + page.setLastPage(false); + List list = getDataList(page,searchCfg,null,null,null); // 通过serviceId获取主配置表数据 + if(!StringUtil.isEmpty(list)){ + List BaseCfgList=new ArrayList<>(); + for (CfgIndexInfo cfg : list) { + BaseCfg baseCfg=new BaseCfg(); + BeanUtils.copyProperties(cfg, baseCfg); + BaseCfgList.add(baseCfg); + } + hasData = commonPolicyService.batchDeleteMaatData(cfgList, page, batchCfg, BaseCfgList, hasData); + }else{ + hasData = false; + } + } + }else if("file_digest_cfg".equals(tableNameXml)) { + boolean hasData = true; + while(hasData){ + page.setPageNo(1); + page.setLastPage(false); + List list = getDataList(page,null,null,searchDigestCfg,null); // 通过serviceId获取主配置表数据 + if(!StringUtil.isEmpty(list)){ + List BaseCfgList=new ArrayList<>(); + for (FileDigestCfg cfg : list) { + BaseCfg baseCfg=new BaseCfg(); + BeanUtils.copyProperties(cfg, baseCfg); + BaseCfgList.add(baseCfg); + } + hasData = commonPolicyService.batchDeleteMaatData(cfgList, page, batchCfg, BaseCfgList, hasData); + }else{ + hasData = false; + } + } + }else if("app_policy_cfg".equals(tableNameXml)) { + boolean hasData = true; + while(hasData){ + page.setPageNo(1); + page.setLastPage(false); + List list = getDataList(page,null,searchAppCfg,null,null); // 通过serviceId获取主配置表数据 + if(!StringUtil.isEmpty(list)){ + List BaseCfgList=new ArrayList<>(); + for (AppPolicyCfg cfg : list) { + BaseCfg baseCfg=new BaseCfg(); + BeanUtils.copyProperties(cfg, baseCfg); + BaseCfgList.add(baseCfg); + } + hasData = commonPolicyService.batchDeleteMaatData(cfgList, page, batchCfg, BaseCfgList, hasData); + }else{ + hasData = false; + } + } + }else if("av_file_sample_cfg".equals(tableNameXml)) { + boolean hasData = true; + while(hasData){ + page.setPageNo(1); + page.setLastPage(false); + List list = avCfgService.getAvFileSampleList(page,searchFileSampleCfg).getList(); + if(!StringUtil.isEmpty(list)){ + hasData = commonPolicyService.batchDeleteMaatData(cfgList, page, batchCfg, list, hasData); + }else{ + hasData = false; + } + } + + }else if("ddos_ip_cfg".equals(tableNameXml)) { + boolean hasData = true; + while(hasData){ + page.setPageNo(1); + page.setLastPage(false); + List list=ddosCfgService.findPage(page, searchDdosIpCfg).getList(); + if(!StringUtil.isEmpty(list)){ + List BaseCfgList=new ArrayList<>(); + for (DdosIpCfg cfg : list) { + BaseCfg baseCfg=new BaseCfg(); + BeanUtils.copyProperties(cfg, baseCfg); + BaseCfgList.add(baseCfg); + } + hasData = commonPolicyService.batchDeleteMaatData(cfgList, page, batchCfg, BaseCfgList, hasData); + }else{ + hasData = false; + } + } + + }else if("app_feature_index".equals(tableNameXml)) { + + }else{ + logger.info("未知业务"); + } + //} + + } + long end=System.currentTimeMillis(); + logger.warn("配置批量删除耗时:"+(end-start)); + + } public List getDataList(Page searchPage ,CfgIndexInfo searchCfg diff --git a/src/main/java/com/nis/web/controller/configuration/AppCfgController.java b/src/main/java/com/nis/web/controller/configuration/AppCfgController.java index aaf5f874c..753e83022 100644 --- a/src/main/java/com/nis/web/controller/configuration/AppCfgController.java +++ b/src/main/java/com/nis/web/controller/configuration/AppCfgController.java @@ -41,6 +41,7 @@ import com.nis.domain.configuration.AppSslCertCfg; import com.nis.domain.configuration.AppTcpCfg; import com.nis.domain.configuration.AppTopicDomainCfg; import com.nis.domain.configuration.BaseStringCfg; +import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.configuration.NtcSubscribeIdCfg; import com.nis.domain.configuration.WebsiteDomainTopic; @@ -305,8 +306,26 @@ public class AppCfgController extends BaseController { */ @RequestMapping(value = { "updateAppPolicyCfgValid" }) @RequiresPermissions(value = { "app:policy:config" }) - public String updateAppPolicyCfgValid(Integer isValid, String ids, Integer functionId) { - appCfgService.updateAppPolicyCfgValid(isValid, ids, functionId); + public String updateAppPolicyCfgValid(Integer isValid, String ids, Integer functionId, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")AppPolicyCfg cfg) { + try { + if (!StringUtil.isEmpty(ids)) { + appCfgService.updateAppPolicyCfgValid(isValid, ids, functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + // 批量删除 + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } + } catch (Exception e) { + logger.error("配置删除失败:", e); + if (e instanceof MaatConvertException) { + addMessage(redirectAttributes, "error", "request_service_failed"); + } else { + addMessage(redirectAttributes, "error", "delete_failed"); + } + + } return "redirect:" + adminPath + "/app/policyCfgList?functionId=" + functionId; } diff --git a/src/main/java/com/nis/web/controller/configuration/BasicProtocolController.java b/src/main/java/com/nis/web/controller/configuration/BasicProtocolController.java index 7c42deb20..4f82aabc7 100644 --- a/src/main/java/com/nis/web/controller/configuration/BasicProtocolController.java +++ b/src/main/java/com/nis/web/controller/configuration/BasicProtocolController.java @@ -251,20 +251,23 @@ public class BasicProtocolController extends BaseController { */ @RequestMapping(value = { "updateValid" }) @RequiresPermissions(value = { "basicprotocol:config" }) - public String updateAppPolicyCfgValid(Integer isValid, String ids, Integer functionId, - RedirectAttributes redirectAttributes) { + public String updateAppPolicyCfgValid(Integer isValid, String ids, Integer functionId, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")AppPolicyCfg cfg) { try { - appCfgService.updateAppPolicyCfgValid(isValid, ids, functionId); - addMessage(redirectAttributes, "success", "delete_success"); + if(!StringUtil.isEmpty(ids)) { + appCfgService.updateAppPolicyCfgValid(isValid, ids, functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } } catch (Exception e) { logger.error("基础协议信息保存失败", e); if (e instanceof MaatConvertException) { - e.printStackTrace(); addMessage(redirectAttributes, "error", "request_service_failed"); } else if (e instanceof CallExternalProceduresException) { addMessage(redirectAttributes, "error", "call_external_procedures_failed"); } else { - e.printStackTrace(); addMessage(redirectAttributes, "error", "delete_failed"); } } diff --git a/src/main/java/com/nis/web/controller/configuration/EncryptedTunnelBehaviorController.java b/src/main/java/com/nis/web/controller/configuration/EncryptedTunnelBehaviorController.java index 8c2666dfa..f685b7bd9 100644 --- a/src/main/java/com/nis/web/controller/configuration/EncryptedTunnelBehaviorController.java +++ b/src/main/java/com/nis/web/controller/configuration/EncryptedTunnelBehaviorController.java @@ -26,6 +26,7 @@ import com.nis.domain.Page; import com.nis.domain.SysDataDictionaryItem; import com.nis.domain.configuration.AppPolicyCfg; import com.nis.domain.configuration.BaseStringCfg; +import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.configuration.NtcSubscribeIdCfg; import com.nis.domain.specific.SpecificServiceCfg; @@ -270,10 +271,17 @@ public class EncryptedTunnelBehaviorController extends BaseController { */ @RequestMapping(value = { "updateValid" }) @RequiresPermissions(value = { "encryptedtunnelbehav:config" }) - public String updateAppPolicyCfgValid(Integer isValid, String ids, Integer functionId, - RedirectAttributes redirectAttributes) { + public String updateAppPolicyCfgValid(Integer isValid, String ids, Integer functionId, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")AppPolicyCfg cfg) { try { - appCfgService.updateAppPolicyCfgValid(isValid, ids, functionId); + if (!StringUtil.isEmpty(ids)) { + appCfgService.updateAppPolicyCfgValid(isValid, ids, functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + // 批量删除 + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } } catch (Exception e) { logger.error("加密隧道协议保存失败", e); if (e instanceof MaatConvertException) { diff --git a/src/main/java/com/nis/web/controller/configuration/manipulation/DdosCfgController.java b/src/main/java/com/nis/web/controller/configuration/manipulation/DdosCfgController.java index 73df9f61b..bc7e32882 100644 --- a/src/main/java/com/nis/web/controller/configuration/manipulation/DdosCfgController.java +++ b/src/main/java/com/nis/web/controller/configuration/manipulation/DdosCfgController.java @@ -87,8 +87,26 @@ public class DdosCfgController extends BaseController { @RequestMapping(value = { "/delete" }) @RequiresPermissions(value = { "ddos:ip:config" }) - public String delete(Integer isAudit, Integer isValid, String ids, Integer functionId) { - ddosCfgService.delete(isAudit, isValid, ids, functionId); + public String delete(Integer isAudit, Integer isValid, String ids, Integer functionId, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")DdosIpCfg cfg) { + try { + if (!StringUtil.isEmpty(ids)) { + ddosCfgService.delete(isAudit, isValid, ids, functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + // 批量删除 + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } + } catch (Exception e) { + logger.error("配置删除失败:", e); + if (e instanceof MaatConvertException) { + addMessage(redirectAttributes, "error", "request_service_failed"); + } else { + addMessage(redirectAttributes, "error", "delete_failed"); + } + + } return "redirect:" + adminPath + "/manipulation/ddos/list?functionId=" + functionId; } 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..c340533e9 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 @@ -152,18 +152,22 @@ public class AvContentController extends BaseController { // 修改VOIP IP配置状态 @RequestMapping(value = { "/updateAvVoipValid" }) @RequiresPermissions(value = { "avVoip:config" }) - public String updateVoipValid(Integer isAudit, String compileIds, Integer isValid, String ids, Integer functionId, - RedirectAttributes redirectAttributes) { + public String updateVoipValid(Integer isAudit, String compileIds, Integer isValid, String ids, Integer functionId, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")CfgIndexInfo cfg) { try { - avContentCfgService.updateAvVoipValid(isAudit, isValid, compileIds, functionId); - addMessage(redirectAttributes, "success", "delete_success"); + if (!StringUtil.isEmpty(ids)) { + avContentCfgService.updateAvVoipValid(isAudit, isValid, compileIds, functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + // 批量删除 + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } } catch (Exception e) { if (e instanceof MaatConvertException) { - e.printStackTrace(); logger.error("voip 信息审核失败", e); addMessage(redirectAttributes, "error", "request_service_failed"); } else { - e.printStackTrace(); logger.error("voip 信息审核失败", e); addMessage(redirectAttributes, "error", "delete_failed"); } @@ -627,9 +631,26 @@ public class AvContentController extends BaseController { // 修改CONTUrl例配置状态 @RequestMapping(value = { "/updateAvContUrlValid" }) @RequiresPermissions(value = { "avContUrl:config" }) - public String updateAvContUrlValid(Integer isAudit, Integer isValid, String ids, Integer functionId, - RedirectAttributes redirectAttributes) { - avContentCfgService.updateContUrlValid(isAudit, isValid, ids, functionId); + public String updateAvContUrlValid(Integer isAudit, Integer isValid, String ids, Integer functionId, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")CfgIndexInfo cfg) { + try { + if (!StringUtil.isEmpty(ids)) { + avContentCfgService.updateContUrlValid(isAudit, isValid, ids, functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + // 批量删除 + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } + } catch (Exception e) { + logger.error("配置删除失败:", e); + if (e instanceof MaatConvertException) { + addMessage(redirectAttributes, "error", "request_service_failed"); + } else { + addMessage(redirectAttributes, "error", "delete_failed"); + } + + } return "redirect:" + adminPath + "/ntc/av/contUrlList?functionId=" + functionId; } diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/AvController.java b/src/main/java/com/nis/web/controller/configuration/ntc/AvController.java index c353daa68..9f8e57610 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/AvController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/AvController.java @@ -350,10 +350,26 @@ public class AvController extends BaseController { // 修改文件样例配置状态 @RequestMapping(value = { "/sample/updateAvFileSampleValid" }) - public String updateAvFileSampleValid(Integer isAudit, Integer isValid, String ids, Integer functionId, - RedirectAttributes redirectAttributes) { - avCfgService.updateAvFileSampleValid(isAudit, isValid, ids); - addMessage(redirectAttributes, "success", "delete_success"); + public String updateAvFileSampleValid(Integer isAudit, Integer isValid, String ids, Integer functionId, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")AvFileSampleCfg cfg) { + try { + if (!StringUtil.isEmpty(ids)) { + avCfgService.updateAvFileSampleValid(isAudit, isValid, ids); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + // 批量删除 + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } + } catch (Exception e) { + logger.error("配置删除失败:", e); + if (e instanceof MaatConvertException) { + addMessage(redirectAttributes, "error", "request_service_failed"); + } else { + addMessage(redirectAttributes, "error", "delete_failed"); + } + + } return "redirect:" + adminPath + "/ntc/av/sample/fileSampleList?functionId=" + functionId; } diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/BgpCfgController.java b/src/main/java/com/nis/web/controller/configuration/ntc/BgpCfgController.java index 1f8bc8129..e3ea79869 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/BgpCfgController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/BgpCfgController.java @@ -122,9 +122,26 @@ public class BgpCfgController extends BaseController { @RequestMapping(value = { "updateBgpCfgValid" }) @RequiresPermissions(value = { "other:bgp:config" }) - public String updateBgpCfgValid(Integer isValid, String ids, Integer functionId, - RedirectAttributes redirectAttributes) { - bgpCfgService.updateBgpCfgValid(isValid, ids, functionId); + public String updateBgpCfgValid(Integer isValid, String ids, Integer functionId, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")CfgIndexInfo cfg) { + try { + if (!StringUtil.isEmpty(ids)) { + bgpCfgService.updateBgpCfgValid(isValid, ids, functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + // 批量删除 + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } + } catch (Exception e) { + logger.error("配置删除失败:", e); + if (e instanceof MaatConvertException) { + addMessage(redirectAttributes, "error", "request_service_failed"); + } else { + addMessage(redirectAttributes, "error", "delete_failed"); + } + + } return "redirect:" + adminPath + "/ntc/other/bgpList?functionId=" + functionId; } 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..89c9dab21 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 @@ -150,19 +150,22 @@ public class FileTransferCfgController extends BaseController { */ @RequestMapping(value = { "updateFtpCfgValid" }) @RequiresPermissions(value = { "fileTransfer:ftp:config" }) - public String updateFtpCfgValid(Integer isValid, String ids, Integer functionId, - RedirectAttributes redirectAttributes) { + public String updateFtpCfgValid(Integer isValid, String ids, Integer functionId,RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")CfgIndexInfo cfg) { try { - fileTransferCfgService.updateFtpCfgValid(isValid, ids, functionId); - addMessage(redirectAttributes, "success", "delete_success"); + if(!StringUtil.isEmpty(ids)) { + fileTransferCfgService.updateFtpCfgValid(isValid, ids, functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + // 批量删除 + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } } catch (Exception e) { if (e instanceof MaatConvertException) { - e.printStackTrace(); - logger.info("ftp配置删除失败:" + e.getMessage()); - ; + logger.error("ftp配置删除失败:" + e.getMessage()); addMessage(redirectAttributes, "error", "request_service_failed"); } else { - e.printStackTrace(); logger.error("ftp配置删除失败", e); addMessage(redirectAttributes, "error", "delete_failed"); } @@ -303,9 +306,27 @@ public class FileTransferCfgController extends BaseController { @RequestMapping(value = { "updateFileDigestValid" }) @RequiresPermissions(value = { "fileTransfer:fileDigest:config" }) - public String updateFileDigestValid(Integer isValid, String ids, Integer functionId, - RedirectAttributes redirectAttributes) { - fileTransferCfgService.updateFileDigestCfgValid(isValid, ids, functionId); + public String updateFileDigestValid(Integer isValid, String ids, Integer functionId,RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")FileDigestCfg cfg) { + try { + if(!StringUtil.isEmpty(ids)) { + fileTransferCfgService.updateFileDigestCfgValid(isValid, ids, functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + // 批量删除 + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } + } catch (Exception e) { + if (e instanceof MaatConvertException) { + logger.error("文件摘要配置删除失败:" + e.getMessage()); + addMessage(redirectAttributes, "error", "request_service_failed"); + } else { + logger.error("文件摘要配置删除失败", e); + addMessage(redirectAttributes, "error", "delete_failed"); + } + } + return "redirect:" + adminPath + "/ntc/fileTransfer/fileDigestList?functionId=" + functionId; } @@ -483,19 +504,22 @@ public class FileTransferCfgController extends BaseController { @RequestMapping(value = { "updateP2pCfgValid" }) @RequiresPermissions(value = { "fileTransfer:p2p:config" }) - public String updateP2pCfgValid(Integer isValid, String ids, Integer functionId, - RedirectAttributes redirectAttributes) { + public String updateP2pCfgValid(Integer isValid, String ids, Integer functionId,RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")CfgIndexInfo cfg) { try { - fileTransferCfgService.updateP2pCfgValid(isValid, ids, functionId); - addMessage(redirectAttributes, "success", "delete_success"); + if(!StringUtil.isEmpty(ids)) { + fileTransferCfgService.updateP2pCfgValid(isValid, ids, functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + // 批量删除 + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } } catch (Exception e) { if (e instanceof MaatConvertException) { - e.printStackTrace(); - logger.info("P2P配置删除失败:" + e.getMessage()); - ; + logger.error("P2P配置删除失败:" + e.getMessage()); addMessage(redirectAttributes, "error", "request_service_failed"); } else { - e.printStackTrace(); logger.error("P2P配置删除失败", e); addMessage(redirectAttributes, "error", "delete_failed"); } 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 77dd1c3f3..013b4a229 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 @@ -151,8 +151,27 @@ public class IpController extends BaseController{ } @RequestMapping(value = {"updateValid"}) @RequiresPermissions("iplist:config") - public String updateIpPortCfgValid(Integer isValid,String ids,Integer functionId) { - ipCfgService.updateIpCfgValid(isValid, ids, functionId); + public String updateIpPortCfgValid(Integer isValid,String ids,Integer functionId, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")CfgIndexInfo cfg) { + try { + if (!StringUtil.isEmpty(ids)) { + ipCfgService.updateIpCfgValid(isValid, ids, functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + // 批量删除 + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } + } catch (Exception e) { + logger.error("配置删除失败:", e); + if (e instanceof MaatConvertException) { + addMessage(redirectAttributes, "error", "request_service_failed"); + } else { + addMessage(redirectAttributes, "error", "delete_failed"); + } + + } + return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+functionId; } /** diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/MailCfgController.java b/src/main/java/com/nis/web/controller/configuration/ntc/MailCfgController.java index 1cfd0cb4a..fccecfab7 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/MailCfgController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/MailCfgController.java @@ -170,8 +170,26 @@ public class MailCfgController extends BaseController { @RequestMapping(value = { "updateMailCfgValid" }) @RequiresPermissions(value = { "mail:config" }) - public String updateMailCfgValid(Integer isValid, String ids, Integer functionId) { - mailCfgService.updateMailCfgValid(isValid, ids, functionId); + public String updateMailCfgValid(Integer isValid, String ids, Integer functionId, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")CfgIndexInfo cfg) { + try { + if (!StringUtil.isEmpty(ids)) { + mailCfgService.updateMailCfgValid(isValid, ids, functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + // 批量删除 + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } + } catch (Exception e) { + logger.error("配置删除失败:", e); + if (e instanceof MaatConvertException) { + addMessage(redirectAttributes, "error", "request_service_failed"); + } else { + addMessage(redirectAttributes, "error", "delete_failed"); + } + + } return "redirect:" + adminPath + "/ntc/mail/mailList?functionId=" + functionId; } diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java b/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java index fa02a7b73..e359c93d2 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java @@ -208,8 +208,26 @@ public class WebsiteController extends BaseController { @RequestMapping(value = { "updateHttpCfgValid" }) @RequiresPermissions(value = { "website:http:config" }) - public String updateHttpCfgValid(Integer isValid, String ids, Integer functionId) { - websiteCfgService.updateHttpCfgValid(isValid, ids, functionId); + public String updateHttpCfgValid(Integer isValid, String ids, Integer functionId, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")CfgIndexInfo cfg) { + try { + if (!StringUtil.isEmpty(ids)) { + websiteCfgService.updateHttpCfgValid(isValid, ids, functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + // 批量删除 + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } + } catch (Exception e) { + logger.error("配置删除失败:", e); + if (e instanceof MaatConvertException) { + addMessage(redirectAttributes, "error", "request_service_failed"); + } else { + addMessage(redirectAttributes, "error", "delete_failed"); + } + + } return "redirect:" + adminPath + "/ntc/website/httpList?functionId=" + functionId; } @@ -338,8 +356,26 @@ public class WebsiteController extends BaseController { @RequestMapping(value = { "updateSslCfgValid" }) @RequiresPermissions(value = { "website:ssl:config" }) - public String updateSslCfgValid(Integer isValid, String ids, Integer functionId) { - websiteCfgService.updateSslCfgValid(isValid, ids, functionId); + public String updateSslCfgValid(Integer isValid, String ids, Integer functionId, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")CfgIndexInfo cfg) { + try { + if (!StringUtil.isEmpty(ids)) { + websiteCfgService.updateSslCfgValid(isValid, ids, functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + // 批量删除 + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } + } catch (Exception e) { + logger.error("配置删除失败:", e); + if (e instanceof MaatConvertException) { + addMessage(redirectAttributes, "error", "request_service_failed"); + } else { + addMessage(redirectAttributes, "error", "delete_failed"); + } + + } return "redirect:" + adminPath + "/ntc/website/sslList?functionId=" + functionId; } @@ -460,8 +496,26 @@ public class WebsiteController extends BaseController { @RequestMapping(value = { "updateDnsCfgValid" }) @RequiresPermissions(value = { "website:dns:config" }) - public String updateDnsCfgValid(Integer isValid, String ids, Integer functionId) { - websiteCfgService.updateDnsCfgValid(isValid, ids, functionId); + public String updateDnsCfgValid(Integer isValid, String ids, Integer functionId, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")CfgIndexInfo cfg) { + try { + if (!StringUtil.isEmpty(ids)) { + websiteCfgService.updateDnsCfgValid(isValid, ids, functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + // 批量删除 + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } + } catch (Exception e) { + logger.error("配置删除失败:", e); + if (e instanceof MaatConvertException) { + addMessage(redirectAttributes, "error", "request_service_failed"); + } else { + addMessage(redirectAttributes, "error", "delete_failed"); + } + + } return "redirect:" + adminPath + "/ntc/website/dnsList?functionId=" + functionId; } diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/WhiteListController.java b/src/main/java/com/nis/web/controller/configuration/ntc/WhiteListController.java index c0c3983b8..0d36ba667 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/WhiteListController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/WhiteListController.java @@ -167,8 +167,28 @@ public class WhiteListController extends CommonController { @RequestMapping(value = { "updateIpValid" }) @RequiresPermissions(value = { "whitelist:ip:config" }) - public String updateIpCfgValid(Integer isValid, String ids, Integer functionId) { - ipCfgService.updateIpCfgValid(isValid, ids, functionId); + public String updateIpCfgValid(Integer isValid, String ids, Integer functionId, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")CfgIndexInfo cfg) { + try { + if (!StringUtil.isEmpty(ids)) { + ipCfgService.updateIpCfgValid(isValid, ids, functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + // 批量删除 + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + //addMessage(redirectAttributes, "success", "delete_success"); + } + } catch (Exception e) { + logger.error("配置删除失败:", e); + if (e instanceof MaatConvertException) { + addMessage(redirectAttributes, "error", "request_service_failed"); + } else { + addMessage(redirectAttributes, "error", "delete_failed"); + } + + } + return "redirect:" + adminPath + "/ntc/whitelist/ip/list?functionId=" + functionId; } @@ -265,8 +285,26 @@ public class WhiteListController extends CommonController { @RequestMapping(value = { "domain/updateValid" }) @RequiresPermissions(value = { "whitelist:domain:config" }) - public String updateDomainValid(Integer isValid, String ids, Integer functionId) { - domainService.updateDomainCfgValid(isValid, ids, functionId); + public String updateDomainValid(Integer isValid, String ids, Integer functionId, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")CfgIndexInfo cfg) { + try { + if (!StringUtil.isEmpty(ids)) { + domainService.updateDomainCfgValid(isValid, ids, functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + // 批量删除 + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } + } catch (Exception e) { + logger.error("配置删除失败:", e); + if (e instanceof MaatConvertException) { + addMessage(redirectAttributes, "error", "request_service_failed"); + } else { + addMessage(redirectAttributes, "error", "delete_failed"); + } + + } return "redirect:" + adminPath + "/ntc/whitelist/domain/list?functionId=" + functionId; } diff --git a/src/main/java/com/nis/web/controller/configuration/proxy/CachePolicyController.java b/src/main/java/com/nis/web/controller/configuration/proxy/CachePolicyController.java index 87996d638..d77fec15f 100644 --- a/src/main/java/com/nis/web/controller/configuration/proxy/CachePolicyController.java +++ b/src/main/java/com/nis/web/controller/configuration/proxy/CachePolicyController.java @@ -157,8 +157,26 @@ public class CachePolicyController extends BaseController{ } @RequestMapping(value = {"delete"}) @RequiresPermissions(value={"cache:policy:config"}) - public String delete(Integer isAudit,Integer isValid,String ids,Integer functionId){ - cachePolicyService.updateCachePolicyValid(isValid,ids,functionId); + public String delete(Integer isAudit,Integer isValid,String ids,Integer functionId, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")CfgIndexInfo cfg){ + try { + if (!StringUtil.isEmpty(ids)) { + cachePolicyService.updateCachePolicyValid(isValid,ids,functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + // 批量删除 + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } + } catch (Exception e) { + logger.error("配置删除失败:", e); + if (e instanceof MaatConvertException) { + addMessage(redirectAttributes, "error", "request_service_failed"); + } else { + addMessage(redirectAttributes, "error", "delete_failed"); + } + + } return "redirect:" + adminPath +"/proxy/cache/list?functionId="+functionId; } @RequestMapping(value = {"audit"}) diff --git a/src/main/java/com/nis/web/controller/configuration/proxy/HttpRedirectPolicyController.java b/src/main/java/com/nis/web/controller/configuration/proxy/HttpRedirectPolicyController.java index 0f9630db6..98b037aa4 100644 --- a/src/main/java/com/nis/web/controller/configuration/proxy/HttpRedirectPolicyController.java +++ b/src/main/java/com/nis/web/controller/configuration/proxy/HttpRedirectPolicyController.java @@ -215,8 +215,26 @@ public class HttpRedirectPolicyController extends BaseController { @RequiresPermissions(value = { "control:httpBlock:config", "control:httpRedirect:config", "control:httpReplace:config", "control:httpMinit:config", "control:httpWhitelist:config" }, logical = Logical.OR) - public String delete(Integer isAudit, Integer isValid, String ids, Integer functionId) { - httpRedirectCfgService.updateHttpCfgValid(isValid, ids, functionId); + public String delete(Integer isAudit, Integer isValid, String ids, Integer functionId, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")CfgIndexInfo cfg) { + try { + if (!StringUtil.isEmpty(ids)) { + httpRedirectCfgService.updateHttpCfgValid(isValid, ids, functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + // 批量删除 + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } + } catch (Exception e) { + logger.error("配置删除失败:", e); + if (e instanceof MaatConvertException) { + addMessage(redirectAttributes, "error", "request_service_failed"); + } else { + addMessage(redirectAttributes, "error", "delete_failed"); + } + + } return "redirect:" + adminPath + "/proxy/control/httpRedirect/httpRedirectList?functionId=" + functionId; } diff --git a/src/main/java/com/nis/web/controller/configuration/proxy/InterceptController.java b/src/main/java/com/nis/web/controller/configuration/proxy/InterceptController.java index 820f03c81..46df8bd1f 100644 --- a/src/main/java/com/nis/web/controller/configuration/proxy/InterceptController.java +++ b/src/main/java/com/nis/web/controller/configuration/proxy/InterceptController.java @@ -209,11 +209,16 @@ public class InterceptController extends CommonController { } @RequestMapping(value = { "updateInterceptIpValid", "updateInterceptDomainValid", "updateInterceptIpPayloadValid" }) - public String updateInterceptIpValid(Integer isValid, String ids, Integer functionId, - RedirectAttributes redirectAttributes) { + public String updateInterceptIpValid(Integer isValid, String ids, Integer functionId, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response, @ModelAttribute("cfg")CfgIndexInfo cfg) { try { - interceptCfgService.updatInterceptValid(isValid, ids, functionId); - addMessage(redirectAttributes, "success", "delete_success"); + if(!StringUtil.isEmpty(ids)) { + interceptCfgService.updatInterceptValid(isValid, ids, functionId); + addMessage(redirectAttributes, "success", "delete_success"); + }else { + Page searchPage = new Page(request, response, "a"); + deleteAll(searchPage, functionId, cfg); + } } catch (Exception e) { logger.error("intercept ip delete failed", e); addMessage(redirectAttributes, "error", "delete_failed"); diff --git a/src/main/java/com/nis/web/dao/configuration/CommonPolicyDao.java b/src/main/java/com/nis/web/dao/configuration/CommonPolicyDao.java index 72e786fdf..f44ef07ea 100644 --- a/src/main/java/com/nis/web/dao/configuration/CommonPolicyDao.java +++ b/src/main/java/com/nis/web/dao/configuration/CommonPolicyDao.java @@ -41,4 +41,8 @@ public interface CommonPolicyDao { public List getCachePolicyUserRegionList(CachePolicyUserRegion entity); public List getCachePolicyByUserRegionList(@Param("ids")String ids); + + public void deleteCfgBatch(@Param("tableName")String tableName, + @Param("entity")BaseCfg entity, + @Param("compileIds")List compileIds); } diff --git a/src/main/java/com/nis/web/dao/configuration/CommonPolicyDao.xml b/src/main/java/com/nis/web/dao/configuration/CommonPolicyDao.xml index 9a6ede3e4..aa444f749 100644 --- a/src/main/java/com/nis/web/dao/configuration/CommonPolicyDao.xml +++ b/src/main/java/com/nis/web/dao/configuration/CommonPolicyDao.xml @@ -1013,5 +1013,17 @@ where a.CFG_ID in (${ids}) + + UPDATE ${tableName} + SET is_valid =-1,is_audit=0, + editor_id = #{entity.editorId,jdbcType=INTEGER}, + edit_time = #{entity.editTime,jdbcType=TIMESTAMP} + + AND compile_id IN + + #{compileId} + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/service/configuration/CommonPolicyService.java b/src/main/java/com/nis/web/service/configuration/CommonPolicyService.java index 999f7ef71..676b08bb1 100644 --- a/src/main/java/com/nis/web/service/configuration/CommonPolicyService.java +++ b/src/main/java/com/nis/web/service/configuration/CommonPolicyService.java @@ -306,4 +306,107 @@ public class CommonPolicyService extends CrudService> cfgList, Page page, BaseCfg entity, + List list, boolean hasData) { + + // 1.获取所有配置的编译ID + List compileIds = new ArrayList(); + for(BaseCfg cfg:list){ + compileIds.add(cfg.getCompileId()); + } + + // 2.更新配置审核状态(主表) + if(!StringUtil.isEmpty(compileIds) && !StringUtil.isEmpty(entity.getTableName())) { + List auditHttpCompileIds= new ArrayList(); + List deleteHttpCompileIds= new ArrayList(); + + // Protocol -> HTTP 请求/响应内容关键字单独处理 ------> + //http关键字配置失效,获取与其匹配的http url配置 + if(entity.getServiceId().equals(152) || entity.getServiceId().equals(40)) { + List httpUrlCfgs=commonPolicyDao.getHttpUrlCfgBySourceCompileId(compileIds); + if(!StringUtil.isEmpty(httpUrlCfgs)) { + for (CfgIndexInfo httpUrlCfg: httpUrlCfgs) { + //审核通过的 + if(httpUrlCfg.getIsValid().equals(1) && httpUrlCfg.getIsAudit().equals(1)) { + auditHttpCompileIds.add(httpUrlCfg.getCompileId()); + /*maatCfg = new MaatCfg(); + maatCfg.setCompileId(httpUrlCfg.getCompileId()); + maatCfg.setServiceId(httpUrlCfg.getServiceId()); + maatCfg.setIsValid(0);//无效 + configCompileList.add(maatCfg);*/ + } + //未审核或者审核未通过的 + if(httpUrlCfg.getIsValid().equals(0) && (httpUrlCfg.getIsAudit().equals(0) || httpUrlCfg.getIsAudit().equals(2))) { + deleteHttpCompileIds.add(httpUrlCfg.getCompileId()); + } + } + } + } + if(!StringUtil.isEmpty(auditHttpCompileIds)) { + commonPolicyDao.auditCfgBatch("cfg_index_info", entity,auditHttpCompileIds,null); + commonPolicyDao.auditCfgBatch("http_url_cfg", entity,auditHttpCompileIds,null); + } + if(!StringUtil.isEmpty(deleteHttpCompileIds)) { + commonPolicyDao.deleteHttpUrlCfg("cfg_index_info", entity,deleteHttpCompileIds); + commonPolicyDao.deleteHttpUrlCfg("http_url_cfg", entity,deleteHttpCompileIds); + } + // Protocol -> HTTP 请求/响应内容关键字单独处理 ------> + + commonPolicyDao.auditCfgBatch( entity.getTableName(), entity,compileIds,null); // 批量审核并修改配置审核状态(主表) + } + + // 3.更新域配置审核状态(子表) + if(cfgList!=null){ + for(Map m:cfgList){ + String tableName = m.get("tableName").toString(); + commonPolicyDao.auditCfgBatch( tableName, entity,compileIds,null); + } + } + + // 4.判断是否是当前检索条件下最后一页数据 并返回结果 + page.setList(list); + if(page.isLastPage()){ + hasData = false; + } + return hasData; + + } + public boolean batchDeleteMaatData(List> cfgList, Page page, BaseCfg entity, + List list, boolean hasData) { + // 1.获取所有配置的编译ID + List compileIds = new ArrayList(); + for(BaseCfg cfg:list){ + compileIds.add(cfg.getCompileId()); + } + + // 2.更新配置状态(主表) + if(!StringUtil.isEmpty(compileIds) && !StringUtil.isEmpty(entity.getTableName())) { + commonPolicyDao.deleteCfgBatch(entity.getTableName(), entity,compileIds); // 批量修改配置状态(主表) + } + + // 3.更新域配置状态(子表) + if(cfgList != null){ + for(Map m : cfgList){ + String tableName = m.get("tableName").toString(); + commonPolicyDao.deleteCfgBatch(tableName, entity, compileIds); + } + } + + // 4.判断是否是当前检索条件下最后一页数据 并返回结果 + page.setList(list); + if(page.isLastPage()){ + hasData = false; + } + return hasData; + } } diff --git a/src/main/resources/messages/message_en.properties b/src/main/resources/messages/message_en.properties index 611155593..e14efc923 100644 --- a/src/main/resources/messages/message_en.properties +++ b/src/main/resources/messages/message_en.properties @@ -1506,4 +1506,6 @@ protection_list_manage=Protection List Manage effective=Effective admin_user_warn=Admin User Warn interface_total=Interface Total -service_total=Service Total \ No newline at end of file +service_total=Service Total +unapproved_all=UnApprove all configurations! +delete_all=Delete all configurations! \ No newline at end of file diff --git a/src/main/resources/messages/message_zh_CN.properties b/src/main/resources/messages/message_zh_CN.properties index 6d6ba3e84..9c4775f86 100644 --- a/src/main/resources/messages/message_zh_CN.properties +++ b/src/main/resources/messages/message_zh_CN.properties @@ -1504,4 +1504,6 @@ protection_list_manage=\u5185\u7f6e\u4fdd\u62a4\u540d\u5355\u7ba1\u7406 effective=\u6709\u6548 admin_user_warn=\u7ba1\u7406\u5458\u7528\u6237\u9884\u8b66 interface_total=\u754c\u9762\u603b\u91cf -service_total=\u670d\u52a1\u603b\u91cf \ No newline at end of file +service_total=\u670d\u52a1\u603b\u91cf +unapproved_all=\u5ba1\u6838\u4E0D\u901a\u8fc7\u6240\u6709\u914d\u7f6e! +delete_all=\u5220\u9664\u6240\u6709\u914d\u7f6e! \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/tags/sys/delRow.tag b/src/main/webapp/WEB-INF/tags/sys/delRow.tag index c211e589b..7a1d5f09f 100644 --- a/src/main/webapp/WEB-INF/tags/sys/delRow.tag +++ b/src/main/webapp/WEB-INF/tags/sys/delRow.tag @@ -62,6 +62,69 @@ $(document).ready(function() { $('#${id} tbody tr td input.i-checks').iCheck('uncheck'); }); }); + +// 判断该业务是否可以批量操作配置 +function isBatch(url){ + var flag = false; + if(url.indexOf("functionId=3&") > -1 //ip whitelist + || url.indexOf("functionId=5&") > -1 //ip + || url.indexOf("functionId=212&") > -1 //ip + || url.indexOf("functionId=214&") > -1 //ip + || url.indexOf("functionId=6&") > -1 //http url + || url.indexOf("functionId=7&") > -1 //dns + || url.indexOf("functionId=37&") > -1 //mail address + || url.indexOf("functionId=35&") > -1 //mail advanced + || url.indexOf("functionId=210&") > -1 //https monitor + || url.indexOf("functionId=207&") > -1 //https block + || url.indexOf("functionId=208&") > -1 //https redirect + || url.indexOf("functionId=209&") > -1 //https replace + || url.indexOf("functionId=211&") > -1 //https whitelist + || url.indexOf("functionId=407&") > -1 //Protocol Identify + || url.indexOf("functionId=63&") > -1 //App Identify + || url.indexOf("functionId=408&") > -1 //Behavior Identify + || url.indexOf("functionId=61&") > -1 //BGP + || url.indexOf("functionId=34&") > -1 //SSL + || url.indexOf("functionId=635&") > -1 //Website Keyword + || url.indexOf("functionId=8&") > -1 //HTTP Advanced + || url.indexOf("functionId=51&") > -1 //FTP + || url.indexOf("functionId=510&") > -1 //P2P + || url.indexOf("functionId=22&") > -1 //Streaming media + || url.indexOf("functionId=24&") > -1 //VoIP + || url.indexOf("functionId=52&") > -1 //File Digest + || url.indexOf("functionId=28&") > -1 //Audio Sample + || url.indexOf("functionId=29&") > -1 //Video Sample + || url.indexOf("functionId=30&") > -1 //Picture Sample + || url.indexOf("functionId=31&") > -1 //VoIP Voice Sample + || url.indexOf("functionId=630&") > -1 //Speaker Recognization + || url.indexOf("functionId=631&") > -1 //Logo Detection + || url.indexOf("functionId=632&") > -1 //Face Recognization + || url.indexOf("functionId=301&") > -1 //DDOS + || url.indexOf("functionId=200&") > -1 //Intercept Policy + || url.indexOf("functionId=210&") > -1 //HTTPS monitor + || url.indexOf("functionId=207&") > -1 //HTTPS block + || url.indexOf("functionId=208&") > -1 //HTTPS Redirect + || url.indexOf("functionId=209&") > -1 //HTTPS Replace + || url.indexOf("functionId=211&") > -1 //whitelist + || url.indexOf("functionId=213&") > -1 //Cache + || url.indexOf("functionId=560&") > -1 //Focused Website + || url.indexOf("functionId=405&") > -1 //APP IP + || url.indexOf("functionId=403&") > -1 //APP DOMAIN + //|| url.indexOf("functionId=520&") > -1 //APP SSL CERT + || url.indexOf("functionId=563&") > -1 //APP Payload + || url.indexOf("functionId=565&") > -1 //APP HTTP + || url.indexOf("functionId=566&") > -1 //APP SSL + || url.indexOf("functionId=564&") > -1 //APP DNS + || url.indexOf("functionId=400&") > -1 //DNS Response Profiles + || url.indexOf("functionId=401&") > -1 //Spoofing IP + || url.indexOf("functionId=570&") > -1 //Key Ring + || url.indexOf("functionId=571&") > -1 //Trusted Certificate + || url.indexOf("functionId=600&") > -1 //Trusted Certificate + ){ + flag = true; + } + return flag; +} + //删除 function del(url){ var checkboxes=$("#${id} ${value} tbody tr td input.i-checks:checkbox"); @@ -101,8 +164,18 @@ function del(url){ } } }else{ - top.$.jBox.tip("", ""); - return; + url = url+"&" + if(isBatch(url)) { + top.$.jBox.confirm("","",function(v,h,f){ + if(v=="ok"){ + $("#searchForm").attr("action",url); + page(); + } + }); + }else{ + top.$.jBox.tip("", ""); + return; + } } } //修改配置 @@ -155,89 +228,48 @@ var checkboxes=$("#${id} ${value} tbody tr td input.i-checks:checkbox"); doAll(checkboxes,url); } }else{ - url=url+"&" - //配置批量下发 - if( url.indexOf("functionId=3&") > -1 //ip whitelist - || url.indexOf("functionId=5&") > -1 //ip - || url.indexOf("functionId=212&") > -1 //ip - || url.indexOf("functionId=214&") > -1 //ip - || url.indexOf("functionId=6&") > -1 //http url - || url.indexOf("functionId=7&") > -1 //dns - || url.indexOf("functionId=37&") > -1 //mail address - || url.indexOf("functionId=35&") > -1 //mail advanced - || url.indexOf("functionId=210&") > -1 //https monitor - || url.indexOf("functionId=207&") > -1 //https block - || url.indexOf("functionId=208&") > -1 //https redirect - || url.indexOf("functionId=209&") > -1 //https replace - || url.indexOf("functionId=211&") > -1 //https whitelist - || url.indexOf("functionId=407&") > -1 //Protocol Identify - || url.indexOf("functionId=63&") > -1 //App Identify - || url.indexOf("functionId=408&") > -1 //Behavior Identify - || url.indexOf("functionId=61&") > -1 //BGP - || url.indexOf("functionId=34&") > -1 //SSL - || url.indexOf("functionId=635&") > -1 //Website Keyword - || url.indexOf("functionId=8&") > -1 //HTTP Advanced - || url.indexOf("functionId=51&") > -1 //FTP - || url.indexOf("functionId=510&") > -1 //P2P - || url.indexOf("functionId=22&") > -1 //Streaming media - || url.indexOf("functionId=24&") > -1 //VoIP - || url.indexOf("functionId=52&") > -1 //File Digest - || url.indexOf("functionId=28&") > -1 //Audio Sample - || url.indexOf("functionId=29&") > -1 //Video Sample - || url.indexOf("functionId=30&") > -1 //Picture Sample - || url.indexOf("functionId=31&") > -1 //VoIP Voice Sample - || url.indexOf("functionId=630&") > -1 //Speaker Recognization - || url.indexOf("functionId=631&") > -1 //Logo Detection - || url.indexOf("functionId=632&") > -1 //Face Recognization - || url.indexOf("functionId=301&") > -1 //DDOS - || url.indexOf("functionId=200&") > -1 //Intercept Policy - || url.indexOf("functionId=210&") > -1 //HTTPS monitor - || url.indexOf("functionId=207&") > -1 //HTTPS block - || url.indexOf("functionId=208&") > -1 //HTTPS Redirect - || url.indexOf("functionId=209&") > -1 //HTTPS Replace - || url.indexOf("functionId=211&") > -1 //whitelist - || url.indexOf("functionId=213&") > -1 //Cache - || url.indexOf("functionId=560&") > -1 //Focused Website - || url.indexOf("functionId=405&") > -1 //APP IP - || url.indexOf("functionId=403&") > -1 //APP DOMAIN - //|| url.indexOf("functionId=520&") > -1 //APP SSL CERT - || url.indexOf("functionId=563&") > -1 //APP Payload - || url.indexOf("functionId=565&") > -1 //APP HTTP - || url.indexOf("functionId=566&") > -1 //APP SSL - || url.indexOf("functionId=564&") > -1 //APP DNS - || url.indexOf("functionId=400&") > -1 //DNS Response Profiles - || url.indexOf("functionId=401&") > -1 //Spoofing IP - || url.indexOf("functionId=570&") > -1 //Key Ring - || url.indexOf("functionId=571&") > -1 //Trusted Certificate - || url.indexOf("functionId=600&") > -1 //Trusted Certificate - ){ - top.$.jBox.confirm("","",function(v,h,f){ - if(v=="ok"){ - $("#searchForm").attr("action",url); - page(); - } - }); - }else{ - top.$.jBox.tip("", ""); - return; - } + url = url+"&" + //配置批量下发 + if(isBatch(url)){ + top.$.jBox.confirm("","",function(v,h,f){ + if(v=="ok"){ + $("#searchForm").attr("action",url); + page(); + } + }); + }else{ + top.$.jBox.tip("", ""); + return; + } } } //未通过 function noPassOpt(url){ -var checkboxes=$("#${id} ${value} tbody tr td input.i-checks:checkbox"); + var checkboxes=$("#${id} ${value} tbody tr td input.i-checks:checkbox"); if($(checkboxes).filter(":checked").length>0){ if(validateAllNoAudit(checkboxes)){ top.$.jBox.tip("", ""); return; - }else{ - doAll(checkboxes,url); - } - }else{ - top.$.jBox.tip("", ""); - return; + }else{ + doAll(checkboxes,url); } + + }else{ + url = url+"&" + //配置批量审核(未通过) + if(isBatch(url)){ + top.$.jBox.confirm("","",function(v,h,f){ + if(v=="ok"){ + $("#searchForm").attr("action",url); + page(); + } + }); + }else{ + top.$.jBox.tip("", ""); + return; + } + } } //配置取消 function cancelPassOpt(url){ @@ -302,69 +334,16 @@ function cancelPassOpt(url){ } }else{ - url=url+"&" + url = url+"&" //配置批量取消 - if( url.indexOf("functionId=3&") > -1 //ip whitelist - || url.indexOf("functionId=5&") > -1 //ip - || url.indexOf("functionId=212&") > -1 //ip - || url.indexOf("functionId=214&") > -1 //ip - || url.indexOf("functionId=6&") > -1 //http url - || url.indexOf("functionId=7&") > -1 //dns - || url.indexOf("functionId=37&") > -1 //mail address - || url.indexOf("functionId=35&") > -1 //mail advanced - || url.indexOf("functionId=210&") > -1 //https monitor - || url.indexOf("functionId=207&") > -1 //https block - || url.indexOf("functionId=208&") > -1 //https redirect - || url.indexOf("functionId=209&") > -1 //https replace - || url.indexOf("functionId=211&") > -1 //https whitelist - || url.indexOf("functionId=407&") > -1 //Protocol Identify - || url.indexOf("functionId=63&") > -1 //App Identify - || url.indexOf("functionId=408&") > -1 //Behavior Identify - || url.indexOf("functionId=61&") > -1 //BGP - || url.indexOf("functionId=34&") > -1 //SSL - || url.indexOf("functionId=635&") > -1 //Website Keyword - || url.indexOf("functionId=8&") > -1 //HTTP Advanced - || url.indexOf("functionId=51&") > -1 //FTP - || url.indexOf("functionId=510&") > -1 //P2P - || url.indexOf("functionId=22&") > -1 //Streaming media - || url.indexOf("functionId=24&") > -1 //VoIP - || url.indexOf("functionId=52&") > -1 //File Digest - || url.indexOf("functionId=28&") > -1 //Audio Sample - || url.indexOf("functionId=29&") > -1 //Video Sample - || url.indexOf("functionId=30&") > -1 //Picture Sample - || url.indexOf("functionId=31&") > -1 //VoIP Voice Sample - || url.indexOf("functionId=630&") > -1 //Speaker Recognization - || url.indexOf("functionId=631&") > -1 //Logo Detection - || url.indexOf("functionId=632&") > -1 //Face Recognization - || url.indexOf("functionId=301&") > -1 //DDOS - || url.indexOf("functionId=200&") > -1 //Intercept Policy - || url.indexOf("functionId=210&") > -1 //HTTPS monitor - || url.indexOf("functionId=207&") > -1 //HTTPS block - || url.indexOf("functionId=208&") > -1 //HTTPS Redirect - || url.indexOf("functionId=209&") > -1 //HTTPS Replace - || url.indexOf("functionId=211&") > -1 //whitelist - || url.indexOf("functionId=213&") > -1 //Cache - || url.indexOf("functionId=560&") > -1 //Focused Website - || url.indexOf("functionId=405&") > -1 //APP IP - || url.indexOf("functionId=403&") > -1 //APP DOMAIN - //|| url.indexOf("functionId=520&") > -1 //APP SSL CERT - || url.indexOf("functionId=563&") > -1 //APP Payload - || url.indexOf("functionId=565&") > -1 //APP HTTP - || url.indexOf("functionId=566&") > -1 //APP SSL - || url.indexOf("functionId=564&") > -1 //APP DNS - || url.indexOf("functionId=400&") > -1 //DNS Response Profiles - || url.indexOf("functionId=401&") > -1 //Spoofing IP - || url.indexOf("functionId=570&") > -1 //Key Ring - || url.indexOf("functionId=571&") > -1 //Trusted Certificate - || url.indexOf("functionId=600&") > -1 //Trusted Certificate - ){ + if(isBatch(url)){ top.$.jBox.confirm("","",function(v,h,f){ if(v=="ok"){ $("#searchForm").attr("action",url); page(); } }); - }else{ + }else{ top.$.jBox.tip("", ""); return; }