All Downloads are FREE. Search and download functionalities are using the official Maven repository.

xyz.migoo.framework.infra.service.sys.permission.RoleService Maven / Gradle / Ivy

The newest version!
package xyz.migoo.framework.infra.service.sys.permission;

import xyz.migoo.framework.infra.controller.sys.permission.role.vo.RoleQueryReqVO;
import xyz.migoo.framework.infra.dal.dataobject.sys.Role;
import org.springframework.lang.Nullable;
import xyz.migoo.framework.common.pojo.PageResult;

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

public interface RoleService {

    /**
     * 初始化角色的本地缓存
     */
    void initLocalCache();

    /**
     * 删除角色
     *
     * @param id 角色编号
     */
    void remove(Long id);

    /**
     * 设置角色的数据权限
     *
     * @param id               角色编号
     * @param dataScope        数据范围
     * @param dataScopeDeptIds 部门编号数组
     */
    void updateRoleDataScope(Long id, Integer dataScope, Set dataScopeDeptIds);

    /**
     * 获得角色,从缓存中
     *
     * @param id 角色编号
     * @return 角色
     */
    Role getRoleFromCache(Long id);

    /**
     * 获得角色列表
     *
     * @param statuses 筛选的状态。允许空,空时不筛选
     * @return 角色列表
     */
    List getRoles(@Nullable Collection statuses);

    /**
     * 获得角色数组,从缓存中
     *
     * @param ids 角色编号数组
     * @return 角色数组
     */
    List getRolesFromCache(Collection ids);

    /**
     * 判断角色数组中,是否有管理员
     *
     * @param roleList 角色数组
     * @return 是否有管理员
     */
    boolean hasAnyAdmin(Collection roleList);

    /**
     * 判断角色编号数组中,是否有管理员
     *
     * @param ids 角色编号数组
     * @return 是否有管理员
     */
    default boolean hasAnyAdmin(Set ids) {
        return hasAnyAdmin(getRolesFromCache(ids));
    }

    /**
     * 获得角色
     *
     * @param id 角色编号
     * @return 角色
     */
    Role get(Long id);

    List getList(Integer status);

    PageResult getPage(RoleQueryReqVO req);

    void verify(String code, String name, Long id);

    void add(Role role);

    void update(Role role);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy