package com.xiaopeng.account.service; import com.baomidou.mybatisplus.extension.service.IService; import com.xiaopeng.account.model.dto.SysRoleAddDTO; import com.xiaopeng.account.model.dto.SysRoleEditDTO; import com.xiaopeng.account.model.query.SysRolePageQuery; import com.xiaopeng.account.model.vo.SysRoleDetailVO; import com.xiaopeng.account.model.vo.SysRolePageVO; import com.xiaopeng.api.model.account.SysRole; import com.xiaopeng.common.core.web.page.PageInfo; import java.util.Collection; import java.util.Set; /** *

* 角色信息表 服务类 *

* * @author mitao * @since 2026-02-03 */ public interface ISysRoleService extends IService { /** * 根据角色ID查询权限组ID * * @param roleId 角色ID * @return 权限组ID */ Long selectGroupIdByRoleId(Long roleId); /** * 根据用户ID查询角色权限 * * @param userId 用户ID * @return 角色权限集合 */ Set selectRolePermissionByUserId(Long userId); /** * 新增角色 * * @param dto 新增角色请求 */ void addRole(SysRoleAddDTO dto); /** * 编辑角色 * * @param dto 编辑角色请求 */ void editRole(SysRoleEditDTO dto); /** * 获取角色详情(含菜单树) * * @param id 角色ID * @return 角色详情 */ SysRoleDetailVO getRoleDetail(Long id); /** * 角色分页列表 * * @param query 分页查询参数 * @return 分页结果 */ PageInfo pageList(SysRolePageQuery query); /** * 删除角色(逻辑删除) * * @param id 角色ID */ void deleteRole(Long id); /** * 校验角色名称唯一性 * * @param roleName 角色名称 * @param excludeId 排除的角色ID(编辑时使用) * @return true=唯一,false=不唯一 */ boolean checkRoleNameUnique(String roleName, Long excludeId); /** * 检查菜单是否关联角色 * @param menuId * @return */ Boolean checkMenuExistRole(Long menuId); /** * 根据操作用户ID查询权限 * @param id * @return */ Set selectRolePermissionByOperationUserId(Long id); }