/*
新增或者修改角色
并且进行权限修改
@param role
@return
/
@Override
public Integer addOrUpdate(Role role) {
if (role.getId() == null) {
//如果id为空,执行自定方法新增,并返回自增id
_mapper.add(role);
} else {
//否则执行修改,并返回id
_mapper.updateById(role);
}
return role.getId();
}
/*
//修改角色权限
@param map
@return
*/
@Override
public Boolean updatePids(Map
Integer rid = (Integer) map.get(“rid”);
List
//如果前端传过来的pids是[],删除该角色全部权限
_if (pids.size() == 0) {
mapper.removeByRid(rid);
return true;
}
//查询角色拥有的权限,
_List
_//如果查到的数据为[],直接作新增<br /> _if (pids1.size() == 0) {<br /> mapper.savePidsByRid(rid, pids);<br /> return true;<br /> }
_//备份查到的权限id集合,后面用<br /> _ArrayList<Integer> pids2 = new ArrayList<>(pids1);
_//原来pids1对前端pids取差集<br /> _pids1.removeAll(pids);<br /> _//如果有差集,则执行删除<br /> _if (pids1.size() > 0) {<br /> mapper.removeByRidAndPids(rid, pids1);<br /> }
_//前端pids对原来pids1取差集<br /> _pids.removeAll(pids2);<br /> _//如果存在差集,作新增<br /> _if (pids.size() > 0) {<br /> mapper.savePidsByRid(rid, pids);<br /> }<br /> return true;<br />}