feat(rbac): stash

This commit is contained in:
suyiiyii 2024-08-24 20:02:30 +08:00
parent 106ee2be90
commit bed21a1db0
3 changed files with 55 additions and 0 deletions

View File

@ -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<Role> {
}

View File

@ -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<UserRole> {
}

View File

@ -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<Role> getRolesByUserId(int userId) {
// 根据用户id获取用户的角色id使用mp的条件构造器
List<UserRole> userRoles = userRoleMapper.selectList(new QueryWrapper<UserRole>().eq("user_id", userId));
// 根据角色id获取角色
return roleMapper.selectBatchIds(userRoles.stream().map(UserRole::getRoleId).toList());
}
}