package com.sundot.airport.system.mapper;

import java.util.List;

import com.sundot.airport.system.domain.SysAppRole;
import org.apache.ibatis.annotations.Param;

/**
 * 应用和角色关联Mapper接口
 *
 * @author ruoyi
 * @date 2025-11-20
 */
public interface SysAppRoleMapper {
    /**
     * 查询应用和角色关联
     *
     * @param appId 应用和角色关联主键
     * @return 应用和角色关联
     */
    public List<SysAppRole> selectSysAppRoleByAppId(Long appId);

    /**
     * 查询应用和角色关联
     *
     * @param roleId 应用和角色关联主键
     * @return 应用和角色关联
     */
    public List<SysAppRole> selectSysAppRoleByRoleId(Long roleId);

    /**
     * 查询应用和角色关联列表
     *
     * @param sysAppRole 应用和角色关联
     * @return 应用和角色关联集合
     */
    public List<SysAppRole> selectSysAppRoleList(SysAppRole sysAppRole);

    /**
     * 新增应用和角色关联
     *
     * @param sysAppRole 应用和角色关联
     * @return 结果
     */
    public int insertSysAppRole(SysAppRole sysAppRole);

    /**
     * 删除应用和角色关联
     *
     * @param appId 应用和角色关联主键
     * @return 结果
     */
    public int deleteSysAppRoleByAppId(Long appId);

    /**
     * 删除应用和角色关联
     *
     * @param roleId 应用和角色关联主键
     * @return 结果
     */
    public int deleteSysAppRoleByRoleId(Long roleId);

    /**
     * 批量删除应用和角色关联
     *
     * @param appIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSysAppRoleByAppIds(Long[] appIds);

    /**
     * 批量删除应用和角色关联
     *
     * @param roleIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSysAppRoleByRoleIds(Long[] roleIds);

    /**
     * 批量新增应用和角色关联
     *
     * @param list 应用和角色关联列表
     * @return 结果
     */
    public int batchAppRole(List<SysAppRole> list);

    /**
     * 查询应用和角色关联
     *
     * @param list 角色ID列表
     * @return 应用和角色关联
     */
    public List<SysAppRole> selectSysAppRoleByRoleIds(@Param("list") List<Long> list);
}
