角色用户关系开发
角色关系涉及到通过roleid查找用户,和修改用户
SysRoleUserService
public interface SysRoleUserService {
List<SysUser> getListByRoleId(int roleId);
void changeRoleUsers(int roleId, List<Integer> userIdList);
}
SysRoleUserServiceImpl
@Service
public class SysRoleUserServiceImpl implements SysRoleUserService {
@Resource
private SysRoleUserMapper sysRoleUserMapper;
@Resource
private SysUserMapper sysUserMapper;
@Override
public List<SysUser> getListByRoleId(int roleId) {
List<Integer> userIdList = sysRoleUserMapper.getUserIdListByRoleId(roleId);
if (CollectionUtils.isEmpty(userIdList)) {
return Lists.newArrayList();
}
return sysUserMapper.getByIdList(userIdList);
}
@Override
public void changeRoleUsers(int roleId, List<Integer> userIdList) {
List<Integer> originUserIdList = sysRoleUserMapper.getUserIdListByRoleId(roleId);
if (originUserIdList.size() == userIdList.size()) {
Set<Integer> originUserIdSet = Sets.newHashSet(originUserIdList);
Set<Integer> userIdSet = Sets.newHashSet(userIdList);
originUserIdSet.removeAll(userIdSet);
if (CollectionUtils.isEmpty(originUserIdSet)) {
return;
}
}
updateRoleUsers(roleId, userIdList);
}
@Transactional
void updateRoleUsers(int roleId, List<Integer> userIdList) {
sysRoleUserMapper.deleteByRoleId(roleId);
if (CollectionUtils.isEmpty(userIdList)) {
return;
}
List<SysRoleUser> roleUserList = Lists.newArrayList();
for (Integer userId : userIdList) {
SysRoleUser roleUser = SysRoleUser.builder().roleId(roleId).userId(userId).operator(RequestHolder.getCurrentUser().getUsername())
.operateIp(IPUtil.getIpAddress(RequestHolder.getCurrentRequest())).operateTime(new Date()).build();
roleUserList.add(roleUser);
}
sysRoleUserMapper.batchInsert(roleUserList);
}
}