package com.qmth.teachcloud.common.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.qmth.teachcloud.common.bean.dto.DataPermissionInfo;
import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
import com.qmth.teachcloud.common.entity.BasicRoleDataPermission;
import com.qmth.teachcloud.common.entity.SysUser;

import java.util.List;

/**
 * @Description: 角色数据权限服务接口
 * @Author: CaoZixuan
 * @Date: 2022-12-06
 */
public interface BasicRoleDataPermissionService extends IService<BasicRoleDataPermission> {

    /**
     * 新增角色数据权限设置
     *
     * @param roleId                 角色id
     * @param dataPermissionInfoList 角色数据权限集合
     */
    void saveRoleDataPermission(Long roleId, List<DataPermissionInfo> dataPermissionInfoList);

    /**
     * 查询角色数据权限
     *
     * @param roleId 角色id
     * @return 该角色数据权限信息集合
     */
    List<DataPermissionInfo> findRoleDataPermissionInfo(Long roleId);

    /**
     * 查询数据权限
     *
     * @param schoolId      学校id
     * @param requestUserId 请求的用户id
     * @param url           请求的url
     * @return 数据权限查询集合
     */
    DataPermissionRule findDataPermission(Long schoolId, Long requestUserId, String url);

    /**
     * 查询数据权限
     *
     * @return 数据权限查询集合
     */
    DataPermissionRule findDataPermission();

    /**
     * 根据菜单ID,查询数据最大数据权限集合
     *
     * @param privilegeId
     * @return
     */
    DataPermissionRule findDataPermission(Long privilegeId);
    DataPermissionRule findDataPermission(Long privilegeId, SysUser sysUser);
}
