removeall重写equal
list<A> a list如果要调用remove(bo),或者removeAll(a) 需要重写A 的equals方法,因为remove,removeAll方法时两个从左边移除与右边相等的对象,
那么在未重写equals方法的情况下,用默认的,默认的equals方法时比较两个对象的存储位置是否一致,以确定相等,这显然不符合业务需要,我们需要重写,让其
根据id等少数几个字段判断(有些方法会自动调用equals,然后根据equals返回的结果再执行相应的操作,比如list的removeAll,为了符合业务需要需要重写)
A Bean:类中
public class OpmUser implements Serializable {
public boolean equals(Object destination)
{
boolean retVal = false;
if ((destination != null) && (destination.getClass().equals(getClass())))
{
OpmUser bean = (OpmUser)destination;
if ((bean.getId() == null) && (getId() == null)) {
retVal = true;
} else if ((bean.getId() != null) && (bean.getId().equals(getId()))) {
retVal = true;
}
}
return retVal;
}
}
@RequestMapping(value="/system/opmRole/userRole")
public String userRole(OpmRole opmRole,HttpServletRequest request,Model modle) {
//OpmUser u= new OpmUser();
//u.setId(opmRole.ge);
//opmUserService.getOpmUser(u);
//modle.addAttribute("vo", opmUserService.getOpmUser(u));
String id ="";//当前分配用户的角色Id
String organid ="";
String roleId="";
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
OpmUser user =(OpmUser) session.getAttribute("currentUser");
OpmUserRole u = new OpmUserRole();
u.setUserid(user.getId());
id=opmRole.getId();
List<OpmUserRole> ur=opmUserRoleService.getOpmUserRole(u);//本系统中是一个用户一个角色
if((opmRole.getId()==null||"".equals(opmRole.getId()))&&(ur!=null&&ur.size()>0&&ur.get(0)!=null)){
id= ur.get(0).getRoleid();
}
if(ur!=null&&ur.size()>0&&ur.get(0)!=null){
roleId=ur.get(0).getRoleid();//登录用户角色Id
}
Map<String,Object> param1 = new HashMap<String,Object>();
param1.put("roleId", id);
TbCusMarkVo org= opmRoleService.getOrganByRoleId(param1);
Map<String,Object> param = new HashMap<String,Object>();
param.put("organid", org.getMarketKey()+"");
List<OpmUser> usersAll= opmUserService.getUserByOrgId(param);
Map<String,Object> param2 = new HashMap<String,Object>();
param2.put("rId", id);
List<OpmUser> usersL= opmUserService.getUserByRoleId(param2);
usersAll.removeAll(usersL);
modle.addAttribute("id", opmRole.getId());
modle.addAttribute("organid", opmRole.getOrganid());
modle.addAttribute("usersL", usersL);
modle.addAttribute("usersR", usersAll);
if(opmRole.getOrganid()!=null&&!"".equals(opmRole.getOrganid())){
TbCusMark tbCusMark = new TbCusMark();
tbCusMark.setMarketKey(BigDecimal.valueOf(Long.valueOf(opmRole.getOrganid())));
tbCusMark = tbCusMarkService.getMark(tbCusMark);
modle.addAttribute("organName", tbCusMark.getMarketName());
}
if(!"".equals(opmRole.getId())&&opmRole.getId()!=null){
OpmRole ro1 = new OpmRole();
ro1.setId(opmRole.getId());
OpmRole ro = opmRoleService.getOpmRole(ro1);
if(ro!=null){
modle.addAttribute("vo", ro);
}
}
return "/system/opmRole/userRole";
}