diff --git a/src/main/java/com/nis/web/service/BaseService.java b/src/main/java/com/nis/web/service/BaseService.java index 8a4662d17..879311c96 100644 --- a/src/main/java/com/nis/web/service/BaseService.java +++ b/src/main/java/com/nis/web/service/BaseService.java @@ -3387,43 +3387,10 @@ public abstract class BaseService { cfgIndexInfo.setUserRegion(userRgionMap); String oldCommonGroupIds=cfgIndexInfo.getCommonGroupIds(); //将所有要从配置中删除的组从配置中删除 - IpCommCfg ipCommCfg=(IpCommCfg)this.processUserRegionMap(userRgionMap,"ipGroup",ipDeletedGroups,cfgIndexInfo,ipCommGroupCfgDao,IpCommCfg.class); - UrlCommCfg urlCommCfg=(UrlCommCfg)this.processUserRegionMap(userRgionMap,"urlGroup",urlDeletedGroups,cfgIndexInfo,urlCommGroupCfgDao,UrlCommCfg.class); - ScriberIdCommCfg scriberIdCommCfg=(ScriberIdCommCfg)this.processUserRegionMap(userRgionMap,"subscribeIdGroup",subIdDeletedGroups,cfgIndexInfo,scriberIdCommGroupDao,ScriberIdCommCfg.class); - DomainCommCfg domainCommCfg=(DomainCommCfg)this.processUserRegionMap(userRgionMap,"domainGroup",domainDeletedGroups,cfgIndexInfo,domainCommGroupDao,DomainCommCfg.class); - ExecutorService executorService= Executors.newFixedThreadPool(4); - Future> ipCommCfgF= executorService.submit(new ProcessUserRegionMapThread(ipCommCfg,ipCommGroupCfgDao)); - Future> urlCommCfgF=executorService.submit(new ProcessUserRegionMapThread(urlCommCfg,urlCommGroupCfgDao)); - Future> scriberIdCommCfgF=executorService.submit(new ProcessUserRegionMapThread(scriberIdCommCfg,scriberIdCommGroupDao)); - Future> domainCommCfgF=executorService.submit(new ProcessUserRegionMapThread(domainCommCfg,domainCommGroupDao)); - executorService.shutdown(); - while(!executorService.isTerminated()){ - try { - TimeUnit.SECONDS.sleep(1); - } catch (InterruptedException e) { - logger.error("error occured while sleeping",e); - } - } - try { - List ipCommCfgList=ipCommCfgF.get(); - if(CollectionUtils.isNotEmpty(ipCommCfgList)){ - cfgIndexInfo.setIpCommGroupCfgList(ipCommCfgList); - } - List urlCommCfgList=urlCommCfgF.get(); - if(CollectionUtils.isNotEmpty(urlCommCfgList)){ - cfgIndexInfo.setUrlCommGroupList(urlCommCfgList); - } - List scriberIdCommCfgList=scriberIdCommCfgF.get(); - if(CollectionUtils.isNotEmpty(scriberIdCommCfgList)){ - cfgIndexInfo.setScriberIdCommGroupList(scriberIdCommCfgList); - } - List domainCommCfgList=domainCommCfgF.get(); - if(CollectionUtils.isNotEmpty(domainCommCfgList)){ - cfgIndexInfo.setDomainCommGroupList(domainCommCfgList); - } - } catch (InterruptedException |ExecutionException e) { - logger.error("error occured while future get",e); - } + this.processUserRegionMap(userRgionMap,"ipGroup",ipDeletedGroups,cfgIndexInfo,ipCommGroupCfgDao,IpCommCfg.class); + this.processUserRegionMap(userRgionMap,"urlGroup",urlDeletedGroups,cfgIndexInfo,urlCommGroupCfgDao,UrlCommCfg.class); + this.processUserRegionMap(userRgionMap,"subscribeIdGroup",subIdDeletedGroups,cfgIndexInfo,scriberIdCommGroupDao,ScriberIdCommCfg.class); + this.processUserRegionMap(userRgionMap,"domainGroup",domainDeletedGroups,cfgIndexInfo,domainCommGroupDao,DomainCommCfg.class); //需要更新的组,组可能增加了,可能减少了,也有可能清空了(所有的域全删了) cfgIndexInfo.setCommonGroupIds(gsonToJson(userRgionMap)); @@ -3672,7 +3639,7 @@ public abstract class BaseService { //commonPolicyDao.auditCfgBatch(CfgIndexInfo.getTablename(),auditCfg,compileIds,null); return true; } - private BaseCfg processUserRegionMap(Map userRgionMap, String key, Set deletedGroups, CfgIndexInfo cfgIndexInfo, CrudDao dao,Class clazz) { + private void processUserRegionMap(Map userRgionMap, String key, Set deletedGroups, CfgIndexInfo cfgIndexInfo, CrudDao dao,Class clazz) { if(userRgionMap.containsKey(key)){ //排除删除的组,添加新的组 for(String urlGroup:((String)userRgionMap.get(key)).split(",")){ @@ -3687,59 +3654,40 @@ public abstract class BaseService { contains=false; } if(contains&&cfgIndexInfo.getIsValid()==Constants.VALID_YES){ - if("IpCommCfg".equals(clazz.getSimpleName())){ - IpCommCfg searchCfg=new IpCommCfg(); - searchCfg.setCommonGroupIds(userRgionMap.get(key).toString().substring(1,userRgionMap.get(key).toString().length()-1)); - //searchCfg.getSqlMap().put("dsf", configScopeFilter(UserUtils.getUser(),"r")); - return searchCfg; -// List commCfgs=dao.findAllList(searchCfg); -// if(CollectionUtils.isNotEmpty(commCfgs)){ -// cfgIndexInfo.setIpCommGroupCfgList(commCfgs); -// } - }else if("ScriberIdCommCfg".equals(clazz.getSimpleName()) ){ - ScriberIdCommCfg searchCfg=new ScriberIdCommCfg(); - searchCfg.setCommonGroupIds(userRgionMap.get(key).toString().substring(1,userRgionMap.get(key).toString().length()-1)); - //searchCfg.getSqlMap().put("dsf", configScopeFilter(UserUtils.getUser(),"r")); - return searchCfg; -// List commCfgs=dao.findAllList(searchCfg); -// if(CollectionUtils.isNotEmpty(commCfgs)){ -// cfgIndexInfo.setScriberIdCommGroupList(commCfgs); -// } - }else if("UrlCommCfg".equals(clazz.getSimpleName())){ - UrlCommCfg searchCfg=new UrlCommCfg(); - searchCfg.setCommonGroupIds(userRgionMap.get(key).toString().substring(1,userRgionMap.get(key).toString().length()-1)); - //searchCfg.getSqlMap().put("dsf", configScopeFilter(UserUtils.getUser(),"r")); - return searchCfg; -// List commCfgs=dao.findAllList(searchCfg); -// if(CollectionUtils.isNotEmpty(commCfgs)){ -// cfgIndexInfo.setUrlCommGroupList(commCfgs); -// } - }else if("DomainCommCfg".equals(clazz.getSimpleName())){ - DomainCommCfg searchCfg=new DomainCommCfg(); - searchCfg.setCommonGroupIds(userRgionMap.get(key).toString().substring(1,userRgionMap.get(key).toString().length()-1)); - //searchCfg.getSqlMap().put("dsf", configScopeFilter(UserUtils.getUser(),"r")); - return searchCfg; -// List commCfgs=dao.findAllList(searchCfg); -// if(CollectionUtils.isNotEmpty(commCfgs)){ -// cfgIndexInfo.setDomainCommGroupList(commCfgs); -// } + String commonGroupIds=userRgionMap.get(key).toString().substring(1,userRgionMap.get(key).toString().length()-1); + if(StringUtils.isNotBlank(commonGroupIds)){ + if("IpCommCfg".equals(clazz.getSimpleName())){ + IpCommCfg searchCfg=new IpCommCfg(); + searchCfg.setCommonGroupIds(commonGroupIds); + List commCfgs=dao.findAllList(searchCfg); + if(CollectionUtils.isNotEmpty(commCfgs)){ + cfgIndexInfo.setIpCommGroupCfgList(commCfgs); + } + }else if("ScriberIdCommCfg".equals(clazz.getSimpleName()) ){ + ScriberIdCommCfg searchCfg=new ScriberIdCommCfg(); + searchCfg.setCommonGroupIds(commonGroupIds); + List commCfgs=dao.findAllList(searchCfg); + if(CollectionUtils.isNotEmpty(commCfgs)){ + cfgIndexInfo.setScriberIdCommGroupList(commCfgs); + } + }else if("UrlCommCfg".equals(clazz.getSimpleName())){ + UrlCommCfg searchCfg=new UrlCommCfg(); + searchCfg.setCommonGroupIds(commonGroupIds); + List commCfgs=dao.findAllList(searchCfg); + if(CollectionUtils.isNotEmpty(commCfgs)){ + cfgIndexInfo.setUrlCommGroupList(commCfgs); + } + }else if("DomainCommCfg".equals(clazz.getSimpleName())){ + DomainCommCfg searchCfg=new DomainCommCfg(); + searchCfg.setCommonGroupIds(commonGroupIds); + List commCfgs=dao.findAllList(searchCfg); + if(CollectionUtils.isNotEmpty(commCfgs)){ + cfgIndexInfo.setDomainCommGroupList(commCfgs); + } + } } - } } - return null; - } -} -class ProcessUserRegionMapThread implements Callable> { - private T searchCfg; - private CrudDao dao; - public ProcessUserRegionMapThread(T searchCfg, CrudDao dao){ - this.searchCfg=searchCfg; - this.dao=dao; - } - @Override - public List call() throws Exception { - List commCfgs=dao.findAllList(searchCfg); - return commCfgs; } } + diff --git a/src/main/java/com/nis/web/service/configuration/ObjectGroupService.java b/src/main/java/com/nis/web/service/configuration/ObjectGroupService.java index b4bf27a32..98ea53c03 100644 --- a/src/main/java/com/nis/web/service/configuration/ObjectGroupService.java +++ b/src/main/java/com/nis/web/service/configuration/ObjectGroupService.java @@ -391,9 +391,9 @@ public class ObjectGroupService extends BaseService { List areaIpRegionList = new ArrayList(); //查询子配置 -// entity = this.getObjGroupPolicy(entity.getCfgId()); + entity = this.getObjGroupPolicy(entity.getCfgId()); //多线程查询 - entity = this.getObjGroupPolicyMultyThread(entity.getCfgId()); +// entity = this.getObjGroupPolicyMultyThread(entity.getCfgId()); end=System.currentTimeMillis(); logger.info("查询子配置完成,耗时"+(end-start)+"ms"); // if(StringUtils.isBlank(entity.getCommonGroupIds())){