package org.nl.system.service.permission;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.common.domain.query.PageQuery;
import org.nl.system.service.dict.dao.Dict;
import org.nl.system.service.permission.dao.SysDataPermission;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.system.service.permission.dao.SysDataScope;
import org.nl.system.service.permission.dto.SysDataPermissionQuery;
import org.nl.system.service.user.dto.UserDataPermissionDto;

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

/**
 * <p>
 * 数据数据权限表 服务类
 * </p>
 *
 * @author generator
 * @since 2022-12-20
 */
public interface ISysDataPermissionService extends IService<SysDataPermission> {

    /**
     * 分页查询
     * @param dataPermissionQuery
     * @param page
     * @return
     */
    IPage<SysDataPermission> queryAll(SysDataPermissionQuery dataPermissionQuery, PageQuery page);

    /**
     * 新增数据权限
     * @param dto
     */
    void create(SysDataPermission permission);

    /**
     * 修改
     * @param permission
     */
    void update(SysDataPermission permission);

    /**
     * 批量删除
     * @param ids
     */
    void deleteAll(Set<String> ids);

    /**
     *
     * @return
     */
    List<Dict> getDataScopeType();

    /**
     * 获取数据权限下拉框
     * @return
     */
    List<SysDataPermission> getDataPermissionOption();

    List<UserDataPermissionDto> getDataShow(String id);

    /**
     * 保存数据权限
     * @param datas
     */
    void savePermission(JSONObject datas);

    /**
     * 数据展示
     * @param data
     * @return
     */
    List<SysDataScope> getDataDetail(JSONObject data);
}
