List<String> delRoleId = new ArrayList<String>();//存放删除的角色id
List<String> addRoleId = new ArrayList<String>();//存放新增的角色id
//筛选新增角色
if(newRoleId != null ){
for(String s:newRoleId){
boolean flag = false;
if(roleList.size()>0){
for(TRole r:roleList){
if(s.equals(r.getRoleId())){//如果false,表示要增加列表里有,已拥有列表里没有,则需要新增, 如果true,表要增加列表里有,已拥有列表里有,则不需改变 (删除和新增)
flag = true;
break;
}
}
}
if(!flag){
addRoleId.add(s);
}
}
}
//筛选删除角色
if(roleList.size()>0){
for(TRole r:roleList){
boolean flag = false;
if(newRoleId != null ){
for(String s:newRoleId){
if(r.getRoleId().equals(s)){//如果false,表示已拥有列表里有,要增加列表里没有,则需要删除,如果true,表已拥有列表里有,要增加列表里有,则不需改变 (删除和新增)
flag = true;
break;
}
}
}
if(!flag){
delRoleId.add(r.getRoleId());
}
}
}
二.筛选操作
//环信操作
if(newRoleId != null){//判断环信服务群是否需有这个用户
boolean flag = false;
for(String a:newRoleId){
pd.put("roleId", a);
PageData roleCode = userService.findRoleById(pd);
if(roleCode.getString("ROLE_CODE").matches(Const.NO_ROLE_CODE)){//用户最新角色满足要求,表环信服务群需要这个用户
flag = true;
break;
}
}
if(!flag){//表环信服务群不需这个用户,进入判断环信服务群是否需删除这个用户
if(delRoleId.size()>0){
for(String d:delRoleId){
pd.put("roleId", d);
PageData roleCode = userService.findRoleById(pd);
if(roleCode.getString("ROLE_CODE").matches(Const.NO_ROLE_CODE)){
ObjectNode objectNode = EasemobChatGroups.deleteUserFromGroup(ringId,phone);
ringService.save(objectNode,"环信服务群删除用户",pd);
break;
}
}
}
}else{//表环信服务群需这个用户,进入判断环信服务群当前是否已拥有这个用户
if(roleList.size()>0){//用户已拥有角色
for(TRole r:roleList){
if(r.getRoleCode().matches(Const.NO_ROLE_CODE)){//已用户角色满足,表环信群已拥有用户
break;
}else{//用户已拥有角色不满足,表环信群没有当前用户
ObjectNode objectNode = EasemobChatGroups.addUserToGroup(ringId,phone);
ringService.save(objectNode,"环信服务群添加用户",pd);
}
}
}else{//用户没有角色,表环信群没有这个用户
ObjectNode objectNode = EasemobChatGroups.addUserToGroup(ringId,phone);
ringService.save(objectNode,"环信服务群添加用户",pd);
}
}
}