diff --git a/src/main/java/com/nis/util/ConfigConvertUtil.java b/src/main/java/com/nis/util/ConfigConvertUtil.java index ba227a52e..50a257a38 100644 --- a/src/main/java/com/nis/util/ConfigConvertUtil.java +++ b/src/main/java/com/nis/util/ConfigConvertUtil.java @@ -1,5 +1,6 @@ package com.nis.util; +import java.lang.reflect.Field; import java.lang.reflect.Type; import java.text.SimpleDateFormat; import java.util.*; @@ -588,12 +589,13 @@ public class ConfigConvertUtil { */ public static Map objGroupCfgConvert(Map dictMap,List dstList, List srcList, Integer cfgType, BaseCfg baseCfg, List groupRelationList, Map maatTableMap, Set groupIdSet) { + long start=System.currentTimeMillis(),end=0l; Map map = new HashMap(); if (cfgType == 1) { List numRegionList = new ArrayList(); - + int pos=0; Set numGroupVals = new HashSet<>(); - List regionIdList = new ArrayList<>();//ConfigServiceUtil.getId(3, srcList.size()); + List regionIdList = calRangeIps(srcList);//ConfigServiceUtil.getId(3, srcList.size()); for (int i = 0; i < srcList.size(); i++) { T srcCfg = srcList.get(i); BaseIpCfg baseIpCfg = new BaseIpCfg(); @@ -622,17 +624,17 @@ public class ConfigConvertUtil { } List cfgs = ipConvert(cfg, baseIpCfg); if (cfgs.size() > 1) { - List ids = ConfigServiceUtil.getId(3, cfgs.size() - 1); - regionIdList.addAll(ids); + List ids =regionIdList.subList(pos,pos+cfgs.size()); //支持range???? for (int j = 1; j < cfgs.size(); j++) { cfgs.get(j).setRegionId(ids.get(j-1)); } + pos+=cfgs.size(); } dstList.addAll(cfgs); // 如果protocolId非空非零,需要构造数值型域配置,多条相同协议的IP只需要一条数值域配置(目前没有不同协议IP&情况) - //分组复用每个IP组还需要不同的数值域组么????? + //分组复用每个IP组还需要不同的数值域组么????? answer:一个就行了 if (baseCfg!=null&&baseCfg.getServiceId()!=null&&baseCfg.getServiceId()>0&&dictMap.containsKey(baseCfg.getServiceId())) { FunctionServiceDict dict=dictMap.get(baseCfg.getServiceId()); Integer protocolId=dict.getProtocolId(); @@ -741,43 +743,8 @@ public class ConfigConvertUtil { } map.put("groupList", groupRelationList); map.put("dstList", dstList); - return map; - } - public static Map emptyGroupConvert(Integer cfgType, BaseCfg baseCfg, - List groupRelationList, Map maatTableMap, Set groupIdSet) { - Map map = new HashMap(); - if (cfgType == 1) { - if(maatTableMap.containsKey("ipMaatTable")){ - Map groupMap=(Map)maatTableMap.get("ipMaatTable"); - for(Map.Entry e:groupMap.entrySet()){ - if(!groupIdSet.contains(Integer.parseInt(e.getKey()))){ - GroupCfg group = new GroupCfg(); - group.setGroupId(Integer.parseInt(e.getKey())); - group.setCompileId(baseCfg.getCompileId()); - group.setAuditTime(baseCfg.getAuditTime()); - group.setIsValid(baseCfg.getIsValid()); - groupRelationList.add(group); - groupIdSet.add(Integer.parseInt(e.getKey())); - } - } - } - } else if (cfgType == 2 || cfgType == 3) { - if(maatTableMap.containsKey("stringMaatTable")){ - Map groupMap=(Map)maatTableMap.get("stringMaatTable"); - for(Map.Entry e:groupMap.entrySet()){ - if(!groupIdSet.contains(Integer.parseInt(e.getKey()))){ - GroupCfg group = new GroupCfg(); - group.setGroupId(Integer.parseInt(e.getKey())); - group.setCompileId(baseCfg.getCompileId()); - group.setAuditTime(baseCfg.getAuditTime()); - group.setIsValid(baseCfg.getIsValid()); - groupRelationList.add(group); - groupIdSet.add(Integer.parseInt(e.getKey())); - } - } - } - } - map.put("groupList", groupRelationList); + end=System.currentTimeMillis(); + logger.info("objGroupCfgConvert cost:"+(end-start)); return map; } /** @@ -960,4 +927,59 @@ public class ConfigConvertUtil { } return dictMap; } + public static List calRangeIps(List srcList ){ + List regionIdsList=new ArrayList<>(); + int total=0; + //通过反射获取IP的src ip地址,目的IP地址 + Class clazz=null; + Field srcIpAddressField=null,destIpAddressField=null,ipTypeFild=null; + for(T instance:srcList){ + if(clazz==null&&srcIpAddressField==null&&destIpAddressField==null){ + try { + clazz=instance.getClass(); + srcIpAddressField=clazz.getDeclaredField("srcIpAddress"); + srcIpAddressField.setAccessible(true); + destIpAddressField=clazz.getDeclaredField("destIpAddress"); + destIpAddressField.setAccessible(true); + ipTypeFild=clazz.getDeclaredField("ipType"); + ipTypeFild.setAccessible(true); + } catch (NoSuchFieldException e) { + return regionIdsList; + } + } + try { + String srcIpAddressValue=(String)srcIpAddressField.get(instance); + String destIpAddressValue=(String)destIpAddressField.get(instance); + Integer ipType=(Integer)ipTypeFild.get(instance); + if(ipType.equals(4)){ + long left=1,right=1; + if(srcIpAddressValue.indexOf("-")>-1){ + String[] srcIpAddressValueArray=srcIpAddressValue.split("-"); + int startPos=0,endPos=0; + startPos=Integer.parseInt(srcIpAddressValueArray[0].split("\\.")[3]); + endPos=Integer.parseInt(srcIpAddressValueArray[1].split("\\.")[3]); + left=endPos-startPos+1; + } + if(destIpAddressValue.indexOf("-")>-1){ + String[] destIpAddressValueArray=srcIpAddressValue.split("-"); + int startPos=0,endPos=0; + startPos=Integer.parseInt(destIpAddressValueArray[0].split("\\.")[3]); + endPos=Integer.parseInt(destIpAddressValueArray[1].split("\\.")[3]); + right=endPos-startPos+1; + } + total+=left*right; + }else{ + continue; + } + } catch (IllegalAccessException e) { + e.printStackTrace(); + return regionIdsList; + } + } + if(total>0){ + regionIdsList=ConfigServiceUtil.getId(3,total); + } + + return regionIdsList; + } } diff --git a/src/main/java/com/nis/web/controller/configuration/ObjectGroupController.java b/src/main/java/com/nis/web/controller/configuration/ObjectGroupController.java index e63e1fe04..e97b84b3d 100644 --- a/src/main/java/com/nis/web/controller/configuration/ObjectGroupController.java +++ b/src/main/java/com/nis/web/controller/configuration/ObjectGroupController.java @@ -267,7 +267,7 @@ public class ObjectGroupController extends BaseController { entity.setFunctionId(functionId); try { if(StringUtils.isBlank(entity.getCommonGroupIds())){ - tip.append(String.format(props.getProperty("no_common_group","The configuration ID of %s does not have an group;"),id)); + tip.append(String.format(props.getProperty("no_common_group","The configuration ID of %s does not have an group;"),entity.getCompileId())); tip.append("
"); }else{ objectGroupService.auditPolicy(entity,isAudit,Constants.INSERT_ACTION); diff --git a/src/main/java/com/nis/web/controller/dashboard/ConfigStatisticsController.java b/src/main/java/com/nis/web/controller/dashboard/ConfigStatisticsController.java index c1e9fcf8b..8290abf4c 100644 --- a/src/main/java/com/nis/web/controller/dashboard/ConfigStatisticsController.java +++ b/src/main/java/com/nis/web/controller/dashboard/ConfigStatisticsController.java @@ -133,6 +133,7 @@ public class ConfigStatisticsController extends BaseController { } catch (Exception e) { e.printStackTrace(); logger.error("带宽详情数据获取错误"+e); + map.put("error","request_service_failed"); LogUtils.saveLog(request, null, e, null); } return map; diff --git a/src/main/java/com/nis/web/service/basics/CommonGroupManageService.java b/src/main/java/com/nis/web/service/basics/CommonGroupManageService.java index 939276d1f..16fb853f4 100644 --- a/src/main/java/com/nis/web/service/basics/CommonGroupManageService.java +++ b/src/main/java/com/nis/web/service/basics/CommonGroupManageService.java @@ -323,6 +323,30 @@ public class CommonGroupManageService extends BaseService{ } return map; } + + public boolean checkCancelCfg(String groupId, Integer groupType) { + boolean flag = false; + String keyString = ""; + if(groupType == Constants.IP_OBJ_GROUP_TYPE) { // IP + keyString = "ipGroup"; + }else if(groupType == Constants.URL_OBJ_GROUP_TYPE) { // URL + keyString = "urlGroup"; + }else if(groupType == Constants.DOMAIN_OBJ_GROUP_TYPE) { // Domain + keyString = "domainGroup"; + }else if(groupType == Constants.SUBID_OBJ_GROUP_TYPE) { // ScriberId + keyString = "subscribeIdGroup"; + } + + Map searchMap = new HashMap(); + searchMap.put(keyString, ","+groupId+","); + + Integer compileId = commonGroupManageDao.getCompileIdByGroupId(gsonToJson(searchMap)); + if(compileId != null) { + flag = true; + } + return flag; + + } } diff --git a/src/main/java/com/nis/web/service/basics/DomainCommGroupService.java b/src/main/java/com/nis/web/service/basics/DomainCommGroupService.java index ca5f3928b..44ba4a005 100644 --- a/src/main/java/com/nis/web/service/basics/DomainCommGroupService.java +++ b/src/main/java/com/nis/web/service/basics/DomainCommGroupService.java @@ -29,6 +29,7 @@ import com.nis.domain.configuration.CfgIndexInfo; import com.nis.exceptions.MaatConvertException; import com.nis.util.ConfigServiceUtil; import com.nis.util.Constants; +import com.nis.util.StringUtil; import com.nis.util.StringUtils; import com.nis.web.controller.configuration.ObjectGroupController; import com.nis.web.dao.CrudDao; @@ -154,90 +155,93 @@ public class DomainCommGroupService extends CrudService, @Transactional(readOnly=false,rollbackFor=RuntimeException.class) public void delete(String ids, String groupIds, DomainCommCfg cfg, HttpServletRequest request, HttpServletResponse response) throws Exception { if(ids == null) { - groupIds = ""; - String cfgIds = ""; - String serviceGroupIds = ""; + long start = System.currentTimeMillis(); - // 删除操作后获取 ①需配置更新的分组(存在域配置)②需配置取消的分组(无域配置) -> 配置分别操作更新或取消 - List set = domainCommGroupDao.getGroupIds(cfg); - if(set.size() == 0) { // 无可删除配置 - return; - }else { - for (DomainCommCfg domainCommCfg : set) { - Integer groupId = domainCommCfg.getGroupId(); - cfgIds += ","+domainCommCfg.getCfgId(); - if(!serviceGroupIds.contains(groupId+"")) { - serviceGroupIds += ","+groupId; - } - } - cfgIds = cfgIds.substring(1); - serviceGroupIds = serviceGroupIds.substring(1); - } - domainCommGroupDao.delete(cfgIds); - - String[] strings = serviceGroupIds.split(","); - serviceGroupIds = ""; - for (String groupId : strings) { - Integer size = domainCommGroupDao.getCfgInfoByGroupIds(groupId); - if(size == 0) { // 需配置取消 - serviceGroupIds += ","+groupId; - }else { // 需配置更新 - groupIds += ","+groupId; - } + Page page = new Page(request, response, "r"); + page.setOrderBy(""); + page.setPageSize(Constants.MAAT_JSON_SEND_SIZE); + page.setPageNo(1); + page.setLastPage(false); + + boolean hasData = true; + while(hasData){ + page.setPageNo(1); + page.setLastPage(false); + cfg.setIsValid(null); + + List list = this.findPage(page, cfg).getList(); + if(!StringUtil.isEmpty(list)) { + groupIds = ""; + String cfgIds = ""; + String serviceGroupIds = ""; + + for (DomainCommCfg domainCommCfg : list) { + Integer groupId = domainCommCfg.getGroupId(); + cfgIds += ","+domainCommCfg.getCfgId(); + if(!serviceGroupIds.contains(groupId+"")) { + serviceGroupIds += ","+groupId; + } + } + cfgIds = cfgIds.substring(1); + serviceGroupIds = serviceGroupIds.substring(1); + domainCommGroupDao.delete(cfgIds); + + // 删除操作后获取 ①需配置更新的分组(存在域配置)②需配置取消的分组(无域配置) -> 配置分别操作更新或取消 + String[] strings = serviceGroupIds.split(","); + serviceGroupIds = ""; + for (String groupId : strings) { + Integer size = domainCommGroupDao.getCfgInfoByGroupIds(groupId); + if(size == 0) { // 需配置取消 + boolean flag = groupManageService.checkCancelCfg(groupId, Constants.DOMAIN_OBJ_GROUP_TYPE); + if(flag) { // 需配置更新 + serviceGroupIds += ","+groupId; + }else { + groupIds += ","+groupId; + } + }else { // 需配置更新 + groupIds += ","+groupId; + } + } + + // 配置取消 + if(StringUtils.isNotBlank(serviceGroupIds)) { + serviceGroupIds = serviceGroupIds.substring(1); + ObjectGroupController groupController = SpringContextHolder.getBean(ObjectGroupController.class); + Page auditPage = new Page(request,response,"r"); + Properties props = groupController.getMsgProp(); + + // 组下无域配置common_group_ids -> "",ud_flag -> 0 + CfgIndexInfo entity = new CfgIndexInfo(); + entity.setUserRegion5(serviceGroupIds); + entity.setFunctionId(888); + entity.setCommonGroupIds(""); + commonPolicyDao.updateCfgIndexCommonGroupIdsBatch(entity); + List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(serviceGroupIds); + groupManageService.updateGroupStatus(policyGroupInfos, Constants.DOMAIN_OBJ_GROUP_TYPE); + + entity.setServiceId(0); + entity.setIsValid(Constants.VALID_NO); + entity.setIsAudit(Constants.AUDIT_NOT_YES); + entity.setBatchAuditValue("1"); + entity.setBatchValidValue("1,0"); + groupController.auditAll(auditPage, Constants.AUDIT_NOT_YES, entity, props); + } + // 配置更新 + if(StringUtils.isNotBlank(groupIds)) { + groupIds = groupIds.substring(1); + List policyGroupInfos = policyGroupInfoDao.findPolicyByServiceGroupInfoList(groupIds); + groupManageService.updateGroupStatus(policyGroupInfos, Constants.DOMAIN_OBJ_GROUP_TYPE); + transObjGroupToMaat(policyGroupInfos); + } + + }else { + hasData = false; + } } - // 配置取消 - if(StringUtils.isNotBlank(serviceGroupIds)) { - serviceGroupIds = serviceGroupIds.substring(1); - ObjectGroupController groupController = SpringContextHolder.getBean(ObjectGroupController.class); - Page auditPage = new Page(request,response,"r"); - Properties props = groupController.getMsgProp(); - - // 配置未生效 - /*String updateStatusGroupIds = ""; - for (String groupId : serviceGroupIds.split(",")) { - List list = commonPolicyDao.getObjGroupListByGroupIds(groupId, 888, Constants.VALID_NO); - if(list.size() > 0) { - updateStatusGroupIds += ","+groupId; - } - } - if(StringUtils.isNotBlank(updateStatusGroupIds)) { - updateStatusGroupIds = updateStatusGroupIds.substring(1); - CfgIndexInfo entity = new CfgIndexInfo(); - entity.setUserRegion5(updateStatusGroupIds); - entity.setFunctionId(888); - entity.setCommonGroupIds(""); - entity.setIsValid(Constants.VALID_NO); - commonPolicyDao.updateCfgIndexCommonGroupIdsBatch(entity); - - List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(updateStatusGroupIds); - groupManageService.updateGroupStatus(policyGroupInfos, Constants.DOMAIN_OBJ_GROUP_TYPE); - }*/ - - // 配置已生效 - // 组下无域配置common_group_ids -> "",ud_flag -> 0 - CfgIndexInfo entity = new CfgIndexInfo(); - entity.setUserRegion5(serviceGroupIds); - entity.setFunctionId(888); - entity.setCommonGroupIds(""); - commonPolicyDao.updateCfgIndexCommonGroupIdsBatch(entity); - List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(serviceGroupIds); - groupManageService.updateGroupStatus(policyGroupInfos, Constants.DOMAIN_OBJ_GROUP_TYPE); - - entity.setServiceId(0); - entity.setIsValid(Constants.VALID_NO); - entity.setIsAudit(Constants.AUDIT_NOT_YES); - entity.setBatchAuditValue("1"); - entity.setBatchValidValue("1,0"); - groupController.auditAll(auditPage, Constants.AUDIT_NOT_YES, entity, props); - } - // 配置更新 - if(StringUtils.isNotBlank(groupIds)) { - groupIds = groupIds.substring(1); - List policyGroupInfos = policyGroupInfoDao.findPolicyByServiceGroupInfoList(groupIds); - transObjGroupToMaat(policyGroupInfos); - } - + long end = System.currentTimeMillis(); + logger.warn("域名组域配置,批量删除耗时:"+(end-start)); + }else { List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(groupIds); domainCommGroupDao.delete(ids); diff --git a/src/main/java/com/nis/web/service/basics/IpCommGroupCfgService.java b/src/main/java/com/nis/web/service/basics/IpCommGroupCfgService.java index e82f797f8..0b15dc82f 100644 --- a/src/main/java/com/nis/web/service/basics/IpCommGroupCfgService.java +++ b/src/main/java/com/nis/web/service/basics/IpCommGroupCfgService.java @@ -30,6 +30,7 @@ import com.nis.domain.configuration.CfgIndexInfo; import com.nis.exceptions.MaatConvertException; import com.nis.util.ConfigServiceUtil; import com.nis.util.Constants; +import com.nis.util.StringUtil; import com.nis.util.StringUtils; import com.nis.web.controller.configuration.ObjectGroupController; import com.nis.web.dao.basics.CommonGroupManageDao; @@ -147,38 +148,90 @@ public class IpCommGroupCfgService extends BaseService { public void delete(String ids, String groupIds, IpCommCfg cfg, HttpServletRequest request, HttpServletResponse response) throws Exception { if(ids == null) { - groupIds = ""; - String cfgIds = ""; - String serviceGroupIds = ""; + long start = System.currentTimeMillis(); - // 删除操作后获取 ①需配置更新的分组(存在域配置)②需配置取消的分组(无域配置)-> 配置分别操作更新或取消 - List set = ipCommGroupCfgDao.getGroupIds(cfg); - if(set.size() == 0) { // 无可删除配置 - return; - }else { - for (IpCommCfg ipCommCfg : set) { - Integer groupId = ipCommCfg.getGroupId(); - cfgIds += ","+ipCommCfg.getCfgId(); - if(!serviceGroupIds.contains(groupId+"")) { - serviceGroupIds += ","+groupId; - } - } - cfgIds = cfgIds.substring(1); - serviceGroupIds = serviceGroupIds.substring(1); - } - ipCommGroupCfgDao.delete(cfgIds); - - String[] strings = serviceGroupIds.split(","); - serviceGroupIds = ""; - for (String groupId : strings) { - Integer size = ipCommGroupCfgDao.getCfgInfoByGroupIds(groupId); - if(size == 0) { // 需配置取消 - serviceGroupIds += ","+groupId; - }else { // 需配置更新 - groupIds += ","+groupId; - } + Page page = new Page(request, response, "r"); + page.setOrderBy(""); + page.setPageSize(Constants.MAAT_JSON_SEND_SIZE); + page.setPageNo(1); + page.setLastPage(false); + + boolean hasData = true; + while(hasData){ + page.setPageNo(1); + page.setLastPage(false); + cfg.setIsValid(null); + + List list = this.findPage(page, cfg).getList(); + if(!StringUtil.isEmpty(list)) { + groupIds = ""; + String cfgIds = ""; + String serviceGroupIds = ""; + + for (IpCommCfg ipCommCfg : list) { + Integer groupId = ipCommCfg.getGroupId(); + cfgIds += ","+ipCommCfg.getCfgId(); + if(!serviceGroupIds.contains(groupId+"")) { + serviceGroupIds += ","+groupId; + } + } + cfgIds = cfgIds.substring(1); + serviceGroupIds = serviceGroupIds.substring(1); + ipCommGroupCfgDao.delete(cfgIds); + + // 删除操作后获取 ①需配置更新的分组(存在域配置)②需配置取消的分组(无域配置)-> 配置分别操作更新或取消 + String[] strings = serviceGroupIds.split(","); + serviceGroupIds = ""; + for (String groupId : strings) { + Integer size = ipCommGroupCfgDao.getCfgInfoByGroupIds(groupId); + if(size == 0) { // 需配置取消 + boolean flag = groupManageService.checkCancelCfg(groupId, Constants.IP_OBJ_GROUP_TYPE); + if(flag) { // 需配置更新 + serviceGroupIds += ","+groupId; + }else { + groupIds += ","+groupId; + } + }else { // 需配置更新 + groupIds += ","+groupId; + } + } + + // 配置取消 + if(StringUtils.isNotBlank(serviceGroupIds)) { + serviceGroupIds = serviceGroupIds.substring(1); + ObjectGroupController groupController = SpringContextHolder.getBean(ObjectGroupController.class); + Page auditPage = new Page(request,response,"r"); + Properties props = groupController.getMsgProp(); + + // 组下无域配置common_group_ids -> "",ud_flag -> 0 + CfgIndexInfo entity = new CfgIndexInfo(); + entity.setUserRegion5(serviceGroupIds); + entity.setFunctionId(888); + entity.setCommonGroupIds(""); + commonPolicyDao.updateCfgIndexCommonGroupIdsBatch(entity); + List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(serviceGroupIds); + groupManageService.updateGroupStatus(policyGroupInfos, Constants.IP_OBJ_GROUP_TYPE); + + entity.setServiceId(0); + entity.setIsValid(Constants.VALID_NO); + entity.setIsAudit(Constants.AUDIT_NOT_YES); + entity.setBatchAuditValue("1"); + entity.setBatchValidValue("1,0"); + groupController.auditAll(auditPage, Constants.AUDIT_NOT_YES, entity, props); + } + // 配置更新 + if(StringUtils.isNotBlank(groupIds)) { + groupIds = groupIds.substring(1); + List policyGroupInfos = policyGroupInfoDao.findPolicyByServiceGroupInfoList(groupIds); + groupManageService.updateGroupStatus(policyGroupInfos, Constants.IP_OBJ_GROUP_TYPE); + transObjGroupToMaat(policyGroupInfos); + } + }else { + hasData = false; + } } - + + /* // 配置取消 if(StringUtils.isNotBlank(serviceGroupIds)) { serviceGroupIds = serviceGroupIds.substring(1); @@ -187,7 +240,7 @@ public class IpCommGroupCfgService extends BaseService { Properties props = groupController.getMsgProp(); // 配置未生效 - /*String updateStatusGroupIds = ""; + String updateStatusGroupIds = ""; for (String groupId : serviceGroupIds.split(",")) { List list = commonPolicyDao.getObjGroupListByGroupIds(groupId, 888, Constants.VALID_NO); if(list.size() > 0) { @@ -205,7 +258,7 @@ public class IpCommGroupCfgService extends BaseService { List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(updateStatusGroupIds); groupManageService.updateGroupStatus(policyGroupInfos, Constants.IP_OBJ_GROUP_TYPE); - }*/ + } // 配置已生效× // 组下无域配置common_group_ids -> "",ud_flag -> 0 @@ -224,12 +277,10 @@ public class IpCommGroupCfgService extends BaseService { entity.setBatchValidValue("1,0"); groupController.auditAll(auditPage, Constants.AUDIT_NOT_YES, entity, props); } - // 配置更新 - if(StringUtils.isNotBlank(groupIds)) { - groupIds = groupIds.substring(1); - List policyGroupInfos = policyGroupInfoDao.findPolicyByServiceGroupInfoList(groupIds); - transObjGroupToMaat(policyGroupInfos); - } + */ + + long end = System.currentTimeMillis(); + logger.warn("IP组域配置批量删除耗时:"+(end-start)); }else { List policyGroupInfos = policyGroupInfoDao.findPolicyByServiceGroupInfoList(groupIds); @@ -241,7 +292,7 @@ public class IpCommGroupCfgService extends BaseService { } } - @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) public void saveAndSend(FunctionRegionDict regionDict, FunctionServiceDict serviceDict, List cfgs, Map groupIdMap) { logger.warn("Start to save IP,size:"+cfgs.size()); long start=System.currentTimeMillis(); @@ -344,5 +395,10 @@ public class IpCommGroupCfgService extends BaseService { return resultList; } + + private void checkCancelCfg() { + // TODO Auto-generated method stub + + } } \ No newline at end of file diff --git a/src/main/java/com/nis/web/service/basics/ScriberIdCommGroupService.java b/src/main/java/com/nis/web/service/basics/ScriberIdCommGroupService.java index 5de22d802..843938c1d 100644 --- a/src/main/java/com/nis/web/service/basics/ScriberIdCommGroupService.java +++ b/src/main/java/com/nis/web/service/basics/ScriberIdCommGroupService.java @@ -29,6 +29,7 @@ import com.nis.domain.configuration.CfgIndexInfo; import com.nis.exceptions.MaatConvertException; import com.nis.util.ConfigServiceUtil; import com.nis.util.Constants; +import com.nis.util.StringUtil; import com.nis.util.StringUtils; import com.nis.web.controller.configuration.ObjectGroupController; import com.nis.web.dao.CrudDao; @@ -154,90 +155,95 @@ public class ScriberIdCommGroupService extends CrudService 配置分别操作更新或取消 - List set = scriberIdCommGroupDao.getGroupIds(cfg); - if(set.size() == 0) { // 无可删除配置 - return; - }else { - for (ScriberIdCommCfg scriberIdCommCfg : set) { - Integer groupId = scriberIdCommCfg.getGroupId(); - cfgIds += ","+scriberIdCommCfg.getCfgId(); - if(!serviceGroupIds.contains(groupId+"")) { - serviceGroupIds += ","+groupId; - } - } - cfgIds = cfgIds.substring(1); - serviceGroupIds = serviceGroupIds.substring(1); - } - scriberIdCommGroupDao.delete(cfgIds); - - String[] strings = serviceGroupIds.split(","); - serviceGroupIds = ""; - for (String groupId : strings) { - Integer size = scriberIdCommGroupDao.getCfgInfoByGroupIds(groupId); - if(size == 0) { // 需配置取消 - serviceGroupIds += ","+groupId; - }else { // 需配置更新 - groupIds += ","+groupId; - } - } - - // 配置取消 - if(StringUtils.isNotBlank(serviceGroupIds)) { - serviceGroupIds = serviceGroupIds.substring(1); - ObjectGroupController groupController = SpringContextHolder.getBean(ObjectGroupController.class); - Page auditPage = new Page(request,response,"r"); - Properties props = groupController.getMsgProp(); - - // 配置未生效 - /*String updateStatusGroupIds = ""; - for (String groupId : serviceGroupIds.split(",")) { - List list = commonPolicyDao.getObjGroupListByGroupIds(groupId, 888, Constants.VALID_NO); - if(list.size() > 0) { - updateStatusGroupIds += ","+groupId; - } + Page page = new Page(request, response, "r"); + page.setOrderBy(""); + page.setPageSize(Constants.MAAT_JSON_SEND_SIZE); + page.setPageNo(1); + page.setLastPage(false); + + boolean hasData = true; + while(hasData){ + page.setPageNo(1); + page.setLastPage(false); + cfg.setIsValid(null); + + List list = this.findPage(page, cfg).getList(); + if(!StringUtil.isEmpty(list)) { + groupIds = ""; + String cfgIds = ""; + String serviceGroupIds = ""; + + for (ScriberIdCommCfg scriberIdCommCfg : list) { + Integer groupId = scriberIdCommCfg.getGroupId(); + cfgIds += ","+scriberIdCommCfg.getCfgId(); + if(!serviceGroupIds.contains(groupId+"")) { + serviceGroupIds += ","+groupId; + } + } + cfgIds = cfgIds.substring(1); + serviceGroupIds = serviceGroupIds.substring(1); + scriberIdCommGroupDao.delete(cfgIds); + + // 删除操作后获取 ①需配置更新的分组(存在域配置)②需配置取消的分组(无域配置) -> 配置分别操作更新或取消 + String[] strings = serviceGroupIds.split(","); + serviceGroupIds = ""; + for (String groupId : strings) { + Integer size = scriberIdCommGroupDao.getCfgInfoByGroupIds(groupId); + if(size == 0) { // 需配置取消 + boolean flag = groupManageService.checkCancelCfg(groupId, Constants.SUBID_OBJ_GROUP_TYPE); + if(flag) { // 需配置更新 + serviceGroupIds += ","+groupId; + }else { + groupIds += ","+groupId; + } + }else { // 需配置更新 + groupIds += ","+groupId; + } + } + + // 配置取消 + if(StringUtils.isNotBlank(serviceGroupIds)) { + serviceGroupIds = serviceGroupIds.substring(1); + ObjectGroupController groupController = SpringContextHolder.getBean(ObjectGroupController.class); + Page auditPage = new Page(request,response,"r"); + Properties props = groupController.getMsgProp(); + + // 组下无域配置common_group_ids -> "",ud_flag -> 0 + CfgIndexInfo entity = new CfgIndexInfo(); + entity.setUserRegion5(serviceGroupIds); + entity.setFunctionId(888); + entity.setCommonGroupIds(""); + commonPolicyDao.updateCfgIndexCommonGroupIdsBatch(entity); + List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(serviceGroupIds); + groupManageService.updateGroupStatus(policyGroupInfos, Constants.SUBID_OBJ_GROUP_TYPE); + + entity.setServiceId(0); + entity.setIsValid(Constants.VALID_NO); + entity.setIsAudit(Constants.AUDIT_NOT_YES); + entity.setBatchAuditValue("1"); + entity.setBatchValidValue("1,0"); + groupController.auditAll(auditPage, Constants.AUDIT_NOT_YES, entity, props); + } + // 配置更新 + if(StringUtils.isNotBlank(groupIds)) { + groupIds = groupIds.substring(1); + List policyGroupInfos = policyGroupInfoDao.findPolicyByServiceGroupInfoList(groupIds); + groupManageService.updateGroupStatus(policyGroupInfos, Constants.SUBID_OBJ_GROUP_TYPE); + transObjGroupToMaat(policyGroupInfos); + } + + }else { + hasData = false; + } - if(StringUtils.isNotBlank(updateStatusGroupIds)) { - updateStatusGroupIds = updateStatusGroupIds.substring(1); - CfgIndexInfo entity = new CfgIndexInfo(); - entity.setUserRegion5(updateStatusGroupIds); - entity.setFunctionId(888); - entity.setCommonGroupIds(""); - entity.setIsValid(Constants.VALID_NO); - commonPolicyDao.updateCfgIndexCommonGroupIdsBatch(entity); - - List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(updateStatusGroupIds); - groupManageService.updateGroupStatus(policyGroupInfos, Constants.SUBID_OBJ_GROUP_TYPE); - }*/ - - // 配置已生效× - // 组下无域配置common_group_ids -> "",ud_flag -> 0 - CfgIndexInfo entity = new CfgIndexInfo(); - entity.setUserRegion5(serviceGroupIds); - entity.setFunctionId(888); - entity.setCommonGroupIds(""); - commonPolicyDao.updateCfgIndexCommonGroupIdsBatch(entity); - List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(serviceGroupIds); - groupManageService.updateGroupStatus(policyGroupInfos, Constants.SUBID_OBJ_GROUP_TYPE); - - entity.setServiceId(0); - entity.setIsValid(Constants.VALID_NO); - entity.setIsAudit(Constants.AUDIT_NOT_YES); - entity.setBatchAuditValue("1"); - entity.setBatchValidValue("1,0"); - groupController.auditAll(auditPage, Constants.AUDIT_NOT_YES, entity, props); - } - // 配置更新 - if(StringUtils.isNotBlank(groupIds)) { - groupIds = groupIds.substring(1); - List policyGroupInfos = policyGroupInfoDao.findPolicyByServiceGroupInfoList(groupIds); - transObjGroupToMaat(policyGroupInfos); - } - + + } + + long end = System.currentTimeMillis(); + logger.warn("账号组域配置,批量删除耗时:"+(end-start)); + }else { List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(groupIds); scriberIdCommGroupDao.delete(ids); diff --git a/src/main/java/com/nis/web/service/basics/UrlCommGroupService.java b/src/main/java/com/nis/web/service/basics/UrlCommGroupService.java index ee87c3430..d3cddea19 100644 --- a/src/main/java/com/nis/web/service/basics/UrlCommGroupService.java +++ b/src/main/java/com/nis/web/service/basics/UrlCommGroupService.java @@ -29,6 +29,7 @@ import com.nis.domain.configuration.CfgIndexInfo; import com.nis.exceptions.MaatConvertException; import com.nis.util.ConfigServiceUtil; import com.nis.util.Constants; +import com.nis.util.StringUtil; import com.nis.util.StringUtils; import com.nis.web.controller.configuration.ObjectGroupController; import com.nis.web.dao.CrudDao; @@ -154,89 +155,92 @@ public class UrlCommGroupService extends CrudService, UrlCom @Transactional(readOnly=false,rollbackFor=RuntimeException.class) public void delete(String ids, String groupIds, UrlCommCfg cfg, HttpServletRequest request, HttpServletResponse response) throws Exception { if(ids == null) { - groupIds = ""; - String cfgIds = ""; - String serviceGroupIds = ""; - - // 删除操作后获取 ①需配置更新的分组(存在域配置)②需配置取消的分组(无域配置) -> 配置分别操作更新或取消 - List set = urlCommGroupDao.getGroupIds(cfg); - if(set.size() == 0) { // 无可删除配置 - return; - }else { - for (UrlCommCfg urlCommCfg : set) { - Integer groupId = urlCommCfg.getGroupId(); - cfgIds += ","+urlCommCfg.getCfgId(); - if(!serviceGroupIds.contains(groupId+"")) { - serviceGroupIds += ","+groupId; - } - } - cfgIds = cfgIds.substring(1); - serviceGroupIds = serviceGroupIds.substring(1); - } - urlCommGroupDao.delete(cfgIds); + long start = System.currentTimeMillis(); - String[] strings = serviceGroupIds.split(","); - serviceGroupIds = ""; - for (String groupId : strings) { - Integer size = urlCommGroupDao.getCfgInfoByGroupIds(groupId); - if(size == 0) { // 需配置取消 - serviceGroupIds += ","+groupId; - }else { // 需配置更新 - groupIds += ","+groupId; - } - } + Page page = new Page(request, response, "r"); + page.setOrderBy(""); + page.setPageSize(Constants.MAAT_JSON_SEND_SIZE); + page.setPageNo(1); + page.setLastPage(false); - // 配置取消 - if(StringUtils.isNotBlank(serviceGroupIds)) { - serviceGroupIds = serviceGroupIds.substring(1); - ObjectGroupController groupController = SpringContextHolder.getBean(ObjectGroupController.class); - Page auditPage = new Page(request,response,"r"); - Properties props = groupController.getMsgProp(); - - // 配置未生效 - /*String updateStatusGroupIds = ""; - for (String groupId : serviceGroupIds.split(",")) { - List list = commonPolicyDao.getObjGroupListByGroupIds(groupId, 888, Constants.VALID_NO); - if(list.size() > 0) { - updateStatusGroupIds += ","+groupId; - } + boolean hasData = true; + while(hasData){ + page.setPageNo(1); + page.setLastPage(false); + cfg.setIsValid(null); + + List list = this.findPage(page, cfg).getList(); + if(!StringUtil.isEmpty(list)) { + groupIds = ""; + String cfgIds = ""; + String serviceGroupIds = ""; + + for (UrlCommCfg urlCommCfg : list) { + Integer groupId = urlCommCfg.getGroupId(); + cfgIds += ","+urlCommCfg.getCfgId(); + if(!serviceGroupIds.contains(groupId+"")) { + serviceGroupIds += ","+groupId; + } + } + cfgIds = cfgIds.substring(1); + serviceGroupIds = serviceGroupIds.substring(1); + urlCommGroupDao.delete(cfgIds); + + // 删除操作后获取 ①需配置更新的分组(存在域配置)②需配置取消的分组(无域配置) -> 配置分别操作更新或取消 + String[] strings = serviceGroupIds.split(","); + serviceGroupIds = ""; + for (String groupId : strings) { + Integer size = urlCommGroupDao.getCfgInfoByGroupIds(groupId); + if(size == 0) { // 需配置取消 + boolean flag = groupManageService.checkCancelCfg(groupId, Constants.URL_OBJ_GROUP_TYPE); + if(flag) { // 需配置更新 + serviceGroupIds += ","+groupId; + }else { + groupIds += ","+groupId; + } + }else { // 需配置更新 + groupIds += ","+groupId; + } + } + + // 配置取消 + if(StringUtils.isNotBlank(serviceGroupIds)) { + serviceGroupIds = serviceGroupIds.substring(1); + ObjectGroupController groupController = SpringContextHolder.getBean(ObjectGroupController.class); + Page auditPage = new Page(request,response,"r"); + Properties props = groupController.getMsgProp(); + + // 组下无域配置common_group_ids -> "",ud_flag -> 0 + CfgIndexInfo entity = new CfgIndexInfo(); + entity.setUserRegion5(serviceGroupIds); + entity.setFunctionId(888); + entity.setCommonGroupIds(""); + commonPolicyDao.updateCfgIndexCommonGroupIdsBatch(entity); + List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(serviceGroupIds); + groupManageService.updateGroupStatus(policyGroupInfos, Constants.URL_OBJ_GROUP_TYPE); + + entity.setServiceId(0); + entity.setIsValid(Constants.VALID_NO); + entity.setIsAudit(Constants.AUDIT_NOT_YES); + entity.setBatchAuditValue("1"); + entity.setBatchValidValue("1,0"); + groupController.auditAll(auditPage, Constants.AUDIT_NOT_YES, entity, props); + } + // 配置更新 + if(StringUtils.isNotBlank(groupIds)) { + groupIds = groupIds.substring(1); + List policyGroupInfos = policyGroupInfoDao.findPolicyByServiceGroupInfoList(groupIds); + groupManageService.updateGroupStatus(policyGroupInfos, Constants.URL_OBJ_GROUP_TYPE); + transObjGroupToMaat(policyGroupInfos); + } + + }else { + hasData = false; } - if(StringUtils.isNotBlank(updateStatusGroupIds)) { - updateStatusGroupIds = updateStatusGroupIds.substring(1); - CfgIndexInfo entity = new CfgIndexInfo(); - entity.setUserRegion5(updateStatusGroupIds); - entity.setFunctionId(888); - entity.setCommonGroupIds(""); - entity.setIsValid(Constants.VALID_NO); - commonPolicyDao.updateCfgIndexCommonGroupIdsBatch(entity); - - List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(updateStatusGroupIds); - groupManageService.updateGroupStatus(policyGroupInfos, Constants.URL_OBJ_GROUP_TYPE); - }*/ - - // 配置已生效× - // 组下无域配置common_group_ids -> "",ud_flag -> 0 - CfgIndexInfo entity = new CfgIndexInfo(); - entity.setUserRegion5(serviceGroupIds); - entity.setFunctionId(888); - entity.setCommonGroupIds(""); - commonPolicyDao.updateCfgIndexCommonGroupIdsBatch(entity); - List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(serviceGroupIds); - groupManageService.updateGroupStatus(policyGroupInfos, Constants.URL_OBJ_GROUP_TYPE); - - entity.setServiceId(0); - entity.setIsValid(Constants.VALID_NO); - entity.setIsAudit(Constants.AUDIT_NOT_YES); - entity.setBatchAuditValue("1"); - entity.setBatchValidValue("1,0"); - groupController.auditAll(auditPage, Constants.AUDIT_NOT_YES, entity, props); - } - // 配置更新 - if(StringUtils.isNotBlank(groupIds)) { - groupIds = groupIds.substring(1); - List policyGroupInfos = policyGroupInfoDao.findPolicyByServiceGroupInfoList(groupIds); - transObjGroupToMaat(policyGroupInfos); - } + } + + long end = System.currentTimeMillis(); + logger.warn("URL组域配置,批量删除耗时:"+(end-start)); }else { List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(groupIds); diff --git a/src/main/webapp/WEB-INF/views/dashboard/newActionList.jsp b/src/main/webapp/WEB-INF/views/dashboard/newActionList.jsp index 591e188da..e1954d50a 100644 --- a/src/main/webapp/WEB-INF/views/dashboard/newActionList.jsp +++ b/src/main/webapp/WEB-INF/views/dashboard/newActionList.jsp @@ -1,9 +1,11 @@ <%@ page contentType="text/html;charset=UTF-8"%> <%@ include file="/WEB-INF/include/taglib.jsp"%> + +
- +
<%-- --%> @@ -201,6 +203,11 @@ function showActionTransChart(chartType,xData,series){ async:true, timeout:50000, success:function (rs) { + if(rs!=null&&rs.length>0&&rs[0].error!=null){ +// top.$.jBox.tip("", ""); + $("#errorTipDiv").show(); + return; + } var xData=new Array(); var series=new Array(); var total=[]; diff --git a/src/main/webapp/WEB-INF/views/dashboard/newActiveClientIPList.jsp b/src/main/webapp/WEB-INF/views/dashboard/newActiveClientIPList.jsp index fb0faffcf..3d88caa5a 100644 --- a/src/main/webapp/WEB-INF/views/dashboard/newActiveClientIPList.jsp +++ b/src/main/webapp/WEB-INF/views/dashboard/newActiveClientIPList.jsp @@ -101,7 +101,8 @@ function ajaxClientIPList(start,end,entranceId){ traditional:true, success:function (data){ if(data!=null&&data.length>0&&data[0].error!=null){ - top.$.jBox.tip("", ""); +// top.$.jBox.tip("", ""); + $("#errorTipDiv").show(); return; } fileData =data; diff --git a/src/main/webapp/WEB-INF/views/dashboard/newActiveServerIPList.jsp b/src/main/webapp/WEB-INF/views/dashboard/newActiveServerIPList.jsp index 0bae2eafc..d12ba4ed1 100644 --- a/src/main/webapp/WEB-INF/views/dashboard/newActiveServerIPList.jsp +++ b/src/main/webapp/WEB-INF/views/dashboard/newActiveServerIPList.jsp @@ -101,7 +101,8 @@ function ajaxServerIPList(start,end,entranceId){ traditional:true, success:function (data){ if(data!=null&&data.length>0&&data[0].error!=null){ - top.$.jBox.tip("", ""); +// top.$.jBox.tip("", ""); + $("#errorTipDiv").show(); return; } fileData =data; diff --git a/src/main/webapp/WEB-INF/views/dashboard/newAppTypeList.jsp b/src/main/webapp/WEB-INF/views/dashboard/newAppTypeList.jsp index 486fe2e54..d834f9bbb 100644 --- a/src/main/webapp/WEB-INF/views/dashboard/newAppTypeList.jsp +++ b/src/main/webapp/WEB-INF/views/dashboard/newAppTypeList.jsp @@ -103,9 +103,10 @@ function ajaxAppList(start,end,entranceId){ traditional:true, success:function (data){ if(data!=null&&data.length>0&&data[0].error!=null){ - top.$.jBox.tip("", ""); - return; - } +// top.$.jBox.tip("", ""); + $("#errorTipDiv").show(); + return; + } fileData =data; getPageData(1,20);//初始化第一页的数据 pageJuan(20);//初始化分页 diff --git a/src/main/webapp/WEB-INF/views/dashboard/newBandWidthList.jsp b/src/main/webapp/WEB-INF/views/dashboard/newBandWidthList.jsp index aa546f520..5f8935821 100644 --- a/src/main/webapp/WEB-INF/views/dashboard/newBandWidthList.jsp +++ b/src/main/webapp/WEB-INF/views/dashboard/newBandWidthList.jsp @@ -1,6 +1,6 @@ <%@ page contentType="text/html;charset=UTF-8"%> <%@ include file="/WEB-INF/include/taglib.jsp"%> - +
@@ -20,7 +20,7 @@
--> - + <%-- --%> @@ -91,6 +91,11 @@ function changeBandwidth(unitType,beginDate,endDate){ async:true, timeout:50000, success:function (data){ + if(data!=null && data.error!=null){ +// top.$.jBox.tip("", ""); + $("#errorTipDiv").show(); + return; + } var xdata=null; var ipv4data=null; var ipv6data=null; @@ -102,14 +107,14 @@ function changeBandwidth(unitType,beginDate,endDate){ var udpdata2=null; var total=[]; var total2=[]; - if(data!=null&&Object.keys(data).length>0){ + if(data!=null&&Object.keys(data).length>0){ ipv4data=data.ipv4Type1.result; ipv6data=data.ipv6Type1.result; tcpdata=data.trans6Type1.result; udpdata=data.trans17Type1.result; total.push(data.ipv4Type1.sum,data.ipv6Type1.sum,data.trans6Type1.sum,data.trans17Type1.sum); - } - var series=new Array(); + } + var series=new Array(); series.push({ // type:'area', name: "IPv4", @@ -165,7 +170,7 @@ function changeBandwidth(unitType,beginDate,endDate){ title="Astana+Almaty"; } - showBandwidthChart("chart1",unitType,xdata,series,title,chartType); + showBandwidthChart("chart1",unitType,xdata,series,title,chartType); $("#errorTipDiv").hide(); /* if(data!=null&&Object.keys(data).length>0){ ipv4data2=data.ipv4Type2.result; diff --git a/src/main/webapp/WEB-INF/views/dashboard/newDomainsList.jsp b/src/main/webapp/WEB-INF/views/dashboard/newDomainsList.jsp index e2aeaec98..0419d95bb 100644 --- a/src/main/webapp/WEB-INF/views/dashboard/newDomainsList.jsp +++ b/src/main/webapp/WEB-INF/views/dashboard/newDomainsList.jsp @@ -114,9 +114,10 @@ traditional:true, success : function(data) { if (data != null && data.length > 0 && data[0].error != null) { - top.$.jBox.tip( - "", - ""); +// top.$.jBox.tip( +// "", +// ""); + $("#errorTipDiv").show(); return; } webTypeChart(data,chartType); diff --git a/src/main/webapp/WEB-INF/views/dashboard/newProtocolTypeList.jsp b/src/main/webapp/WEB-INF/views/dashboard/newProtocolTypeList.jsp index ab2954da7..54202bfeb 100644 --- a/src/main/webapp/WEB-INF/views/dashboard/newProtocolTypeList.jsp +++ b/src/main/webapp/WEB-INF/views/dashboard/newProtocolTypeList.jsp @@ -104,9 +104,10 @@ function ajaxProtocolList(start,end,entranceId){ }, success:function (data){ if(data!=null&&data.length>0&&data[0].error!=null){ - top.$.jBox.tip("", ""); - return; - } +// top.$.jBox.tip("", ""); + $("#errorTipDiv").show(); + return; + } fileData =data; getPageData(1,20);//初始化第一页的数据 pageJuan(20);//初始化分页 diff --git a/src/main/webapp/WEB-INF/views/dashboard/newSubscriberIDList.jsp b/src/main/webapp/WEB-INF/views/dashboard/newSubscriberIDList.jsp index c76b8cec6..9c15cb47e 100644 --- a/src/main/webapp/WEB-INF/views/dashboard/newSubscriberIDList.jsp +++ b/src/main/webapp/WEB-INF/views/dashboard/newSubscriberIDList.jsp @@ -101,7 +101,8 @@ function ajaxSubscriberIDList(start,end,entranceId){ traditional:true, success:function (data){ if(data!=null&&data.length>0&&data[0].error!=null){ - top.$.jBox.tip("", ""); +// top.$.jBox.tip("", ""); + $("#errorTipDiv").show(); return; } fileData =data;