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);