package com.demo.service.impl; import com.demo.dao.RoleMapper; import com.demo.dao.UserRoleMapper; import com.demo.pojo.*; import com.demo.service.RoleService; import com.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; @Service public class RoleServiceImpl implements RoleService { @Autowired RoleMapper roleMapper; @Autowired UserRoleMapper userRoleMapper; @Autowired UserService userService; @Override //name的所有角色 public Set listRoleNames(String userName) { Set result = new HashSet<>(); //查出管理员相应的角色 List roles = listRoles(userName); //把每个角色名放到set集合中 for (Role role : roles) { result.add(role.getName()); } return result; } @Override //查出管理员相应的角色 public List listRoles(String userName) { List roles = new ArrayList<>(); //通过name获得user实体 User user = userService.getByName(userName); if(null==user) return roles; roles = listRoles(user);//调用下面的方法 return roles; } @Override //查出管理员相应的角色 public List listRoles(User user) { List roles = new ArrayList<>(); //通过管理员id获取管理员的角色 UserRoleExample example = new UserRoleExample(); example.createCriteria().andUidEqualTo(user.getId()); List userRoles = userRoleMapper.selectByExample(example);//关联查询 查出用户id对应的角色id的记录 //通过关联查询 ,查出表Role的给出指定主键id的记录 for (UserRole userRole : userRoles){ Role role = roleMapper.selectByPrimaryKey(userRole.getRid()); roles.add(role); } return roles; } @Override public List list() { RoleExample example =new RoleExample(); example.setOrderByClause("id desc"); return roleMapper.selectByExample(example); } @Override public void add(Role role) { roleMapper.insert(role); } @Override public void delete(Long id) { roleMapper.deleteByPrimaryKey(id); } @Override public Role get(Long id) { return roleMapper.selectByPrimaryKey(id); } @Override public void update(Role role) { roleMapper.updateByPrimaryKeySelective(role); } }