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

posted on 2016-07-07 20:44  撿忔  阅读(128)  评论(0编辑  收藏  举报