package cn.besteam.modules.system.service.impl; import cn.besteam.modules.system.entity.SysPermission; import cn.besteam.modules.system.entity.SysRolePermission; import cn.besteam.modules.system.entity.SysUserRole; import cn.besteam.modules.system.mapper.SysUserRoleMapper; import cn.besteam.modules.system.service.ISysPermissionService; import cn.besteam.modules.system.service.ISysRolePermissionService; import cn.besteam.modules.system.service.ISysUserRoleService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * @Description: 用户-角色 * @author: besteam * @date: 2020-04-17 * @version: V1.0 */ @Service public class SysUserRoleServiceImpl extends ServiceImpl implements ISysUserRoleService { @Autowired private ISysPermissionService sysPermissionService; @Autowired private ISysRolePermissionService sysRolePermissionService; @Override public List getRoleTypeList(Integer userId) { List roleTypeList = new ArrayList<>(); SysUserRole sysUserRole = getOne(new QueryWrapper().lambda().eq(SysUserRole::getUserId, userId)); if (sysUserRole == null) { return roleTypeList; } SysPermission managePermission = sysPermissionService.getOne(new QueryWrapper().lambda().eq(SysPermission::getPerms, "role:operate:list")); SysPermission userPermission = sysPermissionService.getOne(new QueryWrapper().lambda().eq(SysPermission::getPerms, "role:user:list")); SysRolePermission manageRolePermission = sysRolePermissionService.getOne(new QueryWrapper().lambda().eq(SysRolePermission::getRoleId, sysUserRole.getRoleId()).eq(SysRolePermission::getPermissionId, managePermission.getId())); if (manageRolePermission != null) { roleTypeList.add(1); } SysRolePermission userRolePermission = sysRolePermissionService.getOne(new QueryWrapper().lambda().eq(SysRolePermission::getRoleId, sysUserRole.getRoleId()).eq(SysRolePermission::getPermissionId, userPermission.getId())); if (userRolePermission != null) { roleTypeList.add(2); } return roleTypeList; } @Override public boolean hasPermission(Integer userId, String perms) { SysUserRole sysUserRole = getOne(new QueryWrapper().lambda().eq(SysUserRole::getUserId, userId)); if (sysUserRole == null) { return false; } SysPermission permission = sysPermissionService.getOne(new QueryWrapper().lambda().eq(SysPermission::getPerms, perms)); if (permission == null) { return false; } SysRolePermission rolePermission = sysRolePermissionService.getOne(new QueryWrapper().lambda().eq(SysRolePermission::getRoleId, sysUserRole.getRoleId()).eq(SysRolePermission::getPermissionId, permission.getId())); if (rolePermission == null) { return false; } return true; } @Override public List getSysRoleListByUserId(Integer userId) { return baseMapper.getSysRoleListByUserId(userId); } @Override public String getUserIdList(String roleId,Integer hospitalId) { return baseMapper.getUserIdList(roleId,hospitalId); } @Override public String getUserPhoneList(String roleId,Integer hospitalId) { return baseMapper.getUserPhoneList(roleId,hospitalId); } }