diff --git a/src/main/java/top/suyiiyii/sims/mapper/MpRoleMapper.java b/src/main/java/top/suyiiyii/sims/mapper/MpRoleMapper.java new file mode 100644 index 0000000..70d3bd4 --- /dev/null +++ b/src/main/java/top/suyiiyii/sims/mapper/MpRoleMapper.java @@ -0,0 +1,7 @@ +package top.suyiiyii.sims.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import top.suyiiyii.sims.entity.Role; + +public interface MpRoleMapper extends BaseMapper { +} diff --git a/src/main/java/top/suyiiyii/sims/mapper/MpUserRoleMapper.java b/src/main/java/top/suyiiyii/sims/mapper/MpUserRoleMapper.java new file mode 100644 index 0000000..759242d --- /dev/null +++ b/src/main/java/top/suyiiyii/sims/mapper/MpUserRoleMapper.java @@ -0,0 +1,7 @@ +package top.suyiiyii.sims.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import top.suyiiyii.sims.entity.UserRole; + +public interface MpUserRoleMapper extends BaseMapper { +} diff --git a/src/main/java/top/suyiiyii/sims/service/RbacService.java b/src/main/java/top/suyiiyii/sims/service/RbacService.java new file mode 100644 index 0000000..8d56220 --- /dev/null +++ b/src/main/java/top/suyiiyii/sims/service/RbacService.java @@ -0,0 +1,41 @@ +package top.suyiiyii.sims.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import top.suyiiyii.sims.entity.Role; +import top.suyiiyii.sims.entity.UserRole; +import top.suyiiyii.sims.mapper.MpRoleMapper; +import top.suyiiyii.sims.mapper.MpUserMapper; +import top.suyiiyii.sims.mapper.MpUserRoleMapper; + +import java.util.List; + +@Slf4j +@Service +public class RbacService { + + @Autowired + MpUserMapper userMapper; + + @Autowired + MpUserRoleMapper userRoleMapper; + + @Autowired + MpRoleMapper roleMapper; + + /** + * 根据用户id获取用户的角色 + * + * @param userId 用户id + * @return 用户的角色列表 + */ + public List getRolesByUserId(int userId) { + // 根据用户id获取用户的角色id,使用mp的条件构造器 + List userRoles = userRoleMapper.selectList(new QueryWrapper().eq("user_id", userId)); + // 根据角色id获取角色 + return roleMapper.selectBatchIds(userRoles.stream().map(UserRole::getRoleId).toList()); + } + +}