package org.hepx.ticket.service; import org.hepx.ticket.mapper.RoleMapper; import org.hepx.ticket.entity.Role; import org.hepx.ticket.mapper.RoleMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.HashSet; import java.util.List; import java.util.Set; @Service @Transactional public class RoleServiceImpl implements RoleService { @Autowired private RoleMapper roleMapper; @Autowired private ResourceService resourceService; public Role createRole(Role role) { roleMapper.createRole(role); return role; } public Role updateRole(Role role) { roleMapper.updateRole(role); return role; } public void deleteRole(Long roleId) { roleMapper.deleteRole(roleId); } @Override public Role findOne(Long roleId) { return roleMapper.findOne(roleId); } @Override public List<Role> findAll() { return roleMapper.findAll(); } @Override public Set<String> findRoles(Long... roleIds) { Set<String> roles = new HashSet<String>(); for (Long roleId : roleIds) { Role role = findOne(roleId); if (role != null) { roles.add(role.getRole()); } } return roles; } @Override public Set<String> findPermissions(Long[] roleIds) { Set<Long> resourceIds = new HashSet<Long>(); for (Long roleId : roleIds) { Role role = findOne(roleId); if (role != null) { resourceIds.addAll(role.getResourceIds()); } } return resourceService.findPermissions(resourceIds); } }