package com.fs.company.service;

import com.fs.company.domain.CompanyRole;

import java.util.Collection;
import java.util.List;

/**
 * 角色信息Service接口
 * 
 * @author fs
 * @date 2021-05-25
 */
public interface ICompanyRoleService 
{
    /**
     * 查询角色信息
     * 
     * @param roleId 角色信息ID
     * @return 角色信息
     */
    public CompanyRole selectCompanyRoleById(Long roleId);

    /**
     * 查询角色信息列表
     * 
     * @param companyRole 角色信息
     * @return 角色信息集合
     */
    public List<CompanyRole> selectCompanyRoleList(CompanyRole companyRole);

    /**
     * 新增角色信息
     * 
     * @param companyRole 角色信息
     * @return 结果
     */
    public int insertCompanyRole(CompanyRole companyRole);

    /**
     * 修改角色信息
     * 
     * @param companyRole 角色信息
     * @return 结果
     */
    public int updateCompanyRole(CompanyRole companyRole);

    /**
     * 批量删除角色信息
     * 
     * @param roleIds 需要删除的角色信息ID
     * @return 结果
     */
    public int deleteCompanyRoleByIds(Long[] roleIds);

    /**
     * 删除角色信息信息
     * 
     * @param roleId 角色信息ID
     * @return 结果
     */
    public int deleteCompanyRoleById(Long roleId);

    Collection<? extends String> selectRolePermissionByUserId(Long userId);



    String checkRoleNameUnique(CompanyRole role);

    String checkRoleKeyUnique(CompanyRole role);

    int insertRole(CompanyRole role);



    int updateRole(CompanyRole role);

    int authDataScope(CompanyRole role);

    int updateRoleStatus(CompanyRole role);

    String selectRoleAll();

    int deleteRoleByIds(Long[] roleIds);

    public int countUserRoleByRoleId(Long roleId);

    List<Integer> selectRoleListByUserId(Long userId);
}
