package com.metalloop.modules.auth.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.metalloop.common.core.lock.LockCondition; import com.metalloop.common.service.ISuperService; import com.metalloop.modules.auth.model.po.SysRolePermission; import com.metalloop.modules.auth.model.query.SysRolePermissionQuery; import java.util.List; import java.util.Map; /** * 角色-权限关联 Service * * @author yy * @since 2026-09-10 */ @SuppressWarnings("unchecked") public interface SysRolePermissionService extends ISuperService { // region 自动生成代码区,后续手动添加的代码要放在这个区域之外 /** * 创建角色-权限关联 * * @param sysRolePermission 角色-权限关联 * @return 创建后的角色-权限关联 */ SysRolePermission create(SysRolePermission sysRolePermission); /** * 批量创建角色-权限关联 * * @param sysRolePermissions 角色-权限关联列表 * @return 是否创建成功 */ Boolean batchCreate(List sysRolePermissions); /** * 获取全部角色-权限关联列表 * * @return 全部角色-权限关联列表 */ List listAll(); /** * 批量更新角色-权限关联 * * @param sysRolePermissions 角色-权限关联列表 * @return 是否更新成功 */ Boolean batchUpdateById(List sysRolePermissions); /** * 通过ID删除角色-权限关联 * * @param id 角色-权限关联ID * @return 是否删除成功 */ Boolean deleteById(Long id); /** * 批量删除角色-权限关联 * * @param ids 角色-权限关联ID列表 * @return 是否删除成功 */ Boolean batchDelete(List ids); /** * 幂等性创建角色-权限关联 * * @param entity 角色-权限关联 * @param conditions 幂等性条件 * @return 是否创建成功 */ Boolean createIdempotency(SysRolePermission entity, LockCondition... conditions); /** * 通过ID幂等性更新角色-权限关联 * * @param entity 角色-权限关联 * @param conditions 幂等性条件 * @return 是否更新成功 */ Boolean updateByIdIdempotency(SysRolePermission entity, LockCondition... conditions); /** * 创建或更新角色-权限关联(幂等性) * * @param entity 角色-权限关联 * @param conditions 幂等性条件 * @return 是否创建或更新成功 */ Boolean saveOrUpdateIdempotency(SysRolePermission entity, LockCondition... conditions); /** * 通过查询条件进行分页获取角色-权限关联 * * @param current 当前页数 * @param size 每页记录数量 * @param query 查询条件 * @return 角色-权限关联分页 */ Page pageByQuery(long current, long size, SysRolePermissionQuery query); /** * 分页获取全部角色-权限关联 * * @param current 当前页数 * @param size 每页记录数量 * @return 全部角色-权限关联分页 */ Page pageAll(long current, long size); /** * 获取ID和角色-权限关联的映射 * * @return ID和角色-权限关联的映射 */ Map getIdMap(); /** * 获取指定ID集合的ID和角色-权限关联的映射 * * @param ids 角色-权限关联ID列表 * @return ID和角色-权限关联的映射 */ Map getIdMapByIds(List ids); /** * 获取ID和角色-权限关联 列表的分组 * * @return ID和角色-权限关联 列表的分组 */ Map> getIdGroup(); /** * 获取指定ID集合的ID和角色-权限关联 列表的分组 * * @param ids 角色-权限关联ID列表 * @return ID和角色-权限关联 列表的分组 */ Map> getIdGroupByIds(List ids); /** * 获取全部角色-权限关联数量 * * @return 全部角色-权限关联数量 */ Long countAll(); // region 此区域的方法主要用作示例,禁止滥用,因为Query对象大而全,调用者会很迷惑,必须封装为更具体的参数及签名的方法,如getByCodeAndType(String code, Integer type)。 // 除非:确实需要3个及以上参数,方可合并为Query,如SysRolePermissionQuery /** * 通过查询条件修改角色-权限关联 * * @param entity 角色-权限关联 * @param query 查询条件 * @return 是否修改成功 */ Boolean updateByQuery(SysRolePermission entity, SysRolePermissionQuery query); /** * 通过查询条件删除角色-权限关联 * * @param query 查询条件 * @return 是否删除成功 */ Boolean removeByQuery(SysRolePermissionQuery query); /** * 通过查询条件获取角色-权限关联 * * @param query 查询条件 * @return 角色-权限关联 */ SysRolePermission getByQuery(SysRolePermissionQuery query); /** * 通过查询条件获取角色-权限关联列表 * * @param query 查询条件 * @return 角色-权限关联列表 */ List listByQuery(SysRolePermissionQuery query); /** * 通过查询条件获取ID和角色-权限关联的映射 * * @param query 查询条件 * @return ID和角色-权限关联的映射 */ Map getIdMapByQuery(SysRolePermissionQuery query); /** * 通过查询条件获取分组的角色-权限关联 * * @param query 查询条件 * @return 角色-权限关联分组 */ Map> getIdGroupByQuery(SysRolePermissionQuery query); /** * 通过查询条件获取角色-权限关联数量 * * @param query 查询条件 * @return 角色-权限关联数量 */ Long countByQuery(SysRolePermissionQuery query); /** * 检查是否存在符合查询条件的角色-权限关联 * * @param query 查询条件 * @return 是否存在 */ Boolean existsByQuery(SysRolePermissionQuery query); // endregion // endregion 自动生成代码区,后续手动添加的代码要放在这个区域之外 }