package io.gisbi.application.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import io.gisbi.application.system.domain.Role;

import java.util.List;

/**
 * <p>
 * 角色 服务类
 * </p>
 *
 * @author lilin
 * @since 2025-05-08
 */
public interface IRoleService extends IService<Role> {

    /**********************************
     * 用途说明: 根据用户id获取角色id
     * 参数说明 userid 用户id
     * 返回值说明: void
     ***********************************/
    List<String> getRoleUsers(String userid,String appId);

    /***********************************
     * 用途说明：新增角色
     * 参数说明
     * sysRole         新增角色信息
     * 返回值说明:  是否新增成功
     ***********************************/
    boolean addRole(Role role);

    /***********************************
     * 用途说明：查询所有角色
     * 参数说明
     * rolename     角色名称
     * 返回值说明:  查询都有角色
     ***********************************/
    List<Role> listRole(String appId, String rolename);

    /***********************************
     * 用途说明：根据id删除角色
     * 参数说明
     * id        角色id
     * 返回值说明:  是否删除成功
     ***********************************/
    Boolean deleteById(String id);

    /***********************************
     * 用途说明：删除角色用户
     * 参数说明
     * roleid      角色id
     * 返回值说明:  是否新增成功
     ***********************************/
    boolean deleteRoleUsers(String roleid, String userids);

    /***********************************
     * 用途说明：根据ID批量删除角色
     * 参数说明
     *ids        用户id集合
     * 返回值说明: 判断是否删除成功
     ************************************/
    boolean deleteRoleByIds(String ids);

    /***********************************
     * 用途说明：角色菜单权限
     * 参数说明
     * id          角色id
     * menuIds    权限id字符串
     * 返回值说明:  是否分配成功
     ***********************************/
    boolean setMenuByRoleId(String id, String menuIds);
}
