private Map> getCategoryApiId(Set oldAuthSet , SetnewAuthSet){
Map> categoryApiId = newHashMap();if (oldAuthSet!=null&&newAuthSet!=null){//首先判断两个集合是否一致
if (oldAuthSet.size()==newAuthSet.size()){
Set tempSet = new HashSet();
tempSet.addAll(oldAuthSet);
tempSet.addAll(newAuthSet);if (tempSet.size()==oldAuthSet.size()){
categoryApiId=null;//未增加api个数
logger.info("未新增和删除api");
}else{//1:交集;2:a-b的差集;3:并集
Set apiSet1 = getApiSet(oldAuthSet, newAuthSet, 1);
Set deleteAuthSet = getApiSet(oldAuthSet, apiSet1, 2);
Set insertAuthSet = getApiSet(newAuthSet,oldAuthSet , 2);//获取新增的apiId
logger.info("删除的api:"+deleteAuthSet);
logger.info("新增的api:"+insertAuthSet);
categoryApiId.put("insertApi",insertAuthSet);
categoryApiId.put("datele",deleteAuthSet);
}
}else{//1:交集;2:a-b的差集;3:b-a的差集;4:并集
Set apiSet1 = getApiSet(oldAuthSet, newAuthSet, 1);
Set deleteAuthSet = getApiSet(oldAuthSet, apiSet1, 2);//获取删除的apiId
Set insertAuthSet = getApiSet(newAuthSet, oldAuthSet, 2);//获取新增的apiId
logger.info("删除的api:"+deleteAuthSet);
logger.info("新增的api:"+insertAuthSet);
categoryApiId.put("insertApi",insertAuthSet);
categoryApiId.put("datele",deleteAuthSet);
}
}else{if (oldAuthSet==null&&newAuthSet!=null){ //全是新增api
logger.info("首次新增授权api");
categoryApiId.put("insertApi",newAuthSet);
}else if (oldAuthSet!=null&&newAuthSet==null){ //未修改用户授权api的数据
logger.info("未增加新授权的api");
categoryApiId.put("datele",oldAuthSet);
}else if (oldAuthSet==null&&newAuthSet==null){
logger.info("已授权api和新增授权api都为空");
categoryApiId=null;
}
}returncategoryApiId;
}private Set getApiSet(Set oldAuthSet, Set newAuthSet,intflag) {
Set result = new HashSet();if(flag==1){ //求交集
result.clear();
result.addAll(oldAuthSet);
result.retainAll(newAuthSet);
}else if(flag==2){ //求差集
result.clear();
result.addAll(oldAuthSet);
result.removeAll(newAuthSet);
}else if (flag==3){ //求并集
result.clear();
result.addAll(oldAuthSet);
result.addAll(newAuthSet);
}returnresult;
}