package org.nl.system.service.role;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery;
import org.nl.system.service.role.dao.SysRole;

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

/**
 * <p>
 * 角色表 服务类
 * </p>
 *
 * @author generator
 * @since 2022-12-15
 */
public interface ISysRoleService extends IService<SysRole> {

    IPage<SysRole> query(Map param, PageQuery page);

    /**
     * 创建角色
     * @param param
     */
    void create(JSONObject param);

    /**
     * 更新角色
     * @param param
     */
    void update(JSONObject param);

    /**
     * 删除角色
     * @param ids
     */
    void deleteBatchByIds(Set<String> ids);

    /**
     * 更新角色菜单
     * @param form
     */
    void updateMenu(JSONObject form);

    /**
     * 通过id获取用户的权限
     * @param userDto
     * @return
     */
    List<String> getPermissionList(JSONObject userDto);


    /**
     * 保存用户角色关系
     * @param UserId
     * @param deptIds
     */
    void saveUserRoleRelation(String UserId, List<String> deptIds);
    void delUserRoleRelation(String UserId);
}
