package com.hdkj.lt.core.sys.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hdkj.lt.core.sys.model.po.SysRoles;


import java.util.Collection;
import java.util.Map;
import java.util.Set;

/**
 * @author : liuaini
 * @version : 1.0
 * @description :
 * @createTime : 2024/5/27 10:00
 */
public interface ISysRolesService extends IService<SysRoles> {

    /**
     * 将角色信息全部放入缓存中
     */
    void putAllToCache();

    /**
     * 根据角色ID从缓存中获取角色信息，缓存中没有则查询数据库，再更新缓存中的角色信息
     *
     * @param roleId 角色ID
     * @return 角色信息（SYS_ROLES表）
     */
    SysRoles getCacheById(Long roleId);

    /**
     * 根据角色ID集合批量从缓存中获取角色信息，缓存中没有的部分则查询数据库，再更新缓存中的角色信息
     *
     * @param roleIds 角色ID集合
     * @return 角色信息Map（key为角色ID，value为角色信息）
     */
    Map<Long, SysRoles> getCacheMapByIds(Collection<Long> roleIds);

    /**
     * 根据角色ID集合批量从缓存中获取角色信息，缓存中没有的部分则查询数据库，再更新缓存中的角色信息
     *
     * @param roleIds 角色ID集合
     * @return 角色信息Set
     */
    Set<SysRoles> getCacheSetByIds(Collection<Long> roleIds);

}
