package com.yunfeiyun.agmp.common.web.system.mapper;

import com.yunfeiyun.agmp.common.web.system.domain.SysRes;
import org.apache.ibatis.annotations.Param;

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

/**
 * 资源Mapper接口
 * 
 * @author 杨晓辉
 * @date 2023-05-08
 */
public interface SysResMapper
{
    /**
     * 查询资源
     * 
     * @param resId 资源主键
     * @return 资源
     */
    public SysRes selectSysResByResId(String resId);

    /**
     * 查询过期资源列表
     *
     * @return 资源集合
     */
    public List<SysRes> selectSysResExpire();

    /**
     * 查询资源列表
     *
     * @param sysRes 资源
     * @return 资源集合
     */
    public List<SysRes> selectSysResList(SysRes sysRes);
    /**
     * 查询资源的数量
     *
     * @param sysRes 资源
     * @return 结果
     */
    public int selectCountResByBusId(SysRes sysRes);
    /**
     * 查询资源列表
     *
     * @param resIds 资源
     * @return 资源集合
     */
    public List<SysRes> selectResByResIds(List resIds);
    /**
     * 查询资源列表
     *
     * @param resBusid 资源
     * @param resBiztype 资源
     * @return 资源集合
     */
    public List<SysRes> selectResByBusId(@Param("resBusId") String resBusid, @Param("resBiztype") String resBiztype, @Param("resMediatype") String resMediatype);

    /**
     * 查询资源列表
     *
     * @param resBusids 资源
     * @param resBiztype 资源
     * @return 资源集合
     */
    public List<SysRes> selectResByBusIdes(@Param("resBusids") String[] resBusids,@Param("resBiztype") String resBiztype);
    /**
     * 查询资源列表
     *
     * @param resBusids 资源
     * @param resBiztype 资源
     * @return 资源集合
     */
    public List<SysRes> selectResByBusIds(@Param("resBusids") List<String> resBusids, @Param("resBiztype") String resBiztype);
    /**
     * 查询资源列表
     *
     * @param resIds 资源
     * @return 资源集合
     */
    public List<SysRes> selectResByResIdes(String[] resIds);

    /**
     * 新增资源
     * 
     * @param sysres 资源
     * @return 结果
     */
    public int insertSysRes(SysRes sysres);

    /**
     * 批量新增资源
     *
     * @param sysRes 资源
     * @return 结果
     */
    public List<SysRes> insertSysReses(@Param("sysRes") List<SysRes> sysRes);


    /**
     * 修改资源
     * 
     * @param sysRes 资源
     * @return 结果
     */
    public int updateSysRes(SysRes sysRes);

    /**
     * 删除资源
     * 
     * @param resId 资源主键
     * @return 结果
     */
    public int deleteSysResByResId(String resId);

    /**
     * 批量删除资源
     * 
     * @param resIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSysResByResIds(String[] resIds);

    /**
     * 保存或更新资源
     * @param sysRes 资源
     * @return 结果
     */
    public int updateResByBusId(SysRes sysRes);

    /**
     * 保存或更新资源
     * @param params 资源
     * @return 结果
     */
    public int updateResBusIdByResIds(Map<String, Object> params);
    /**
     * 保存或更新资源
     * @param resId 资源
     * @return 结果
     */
    public int updateResBusIdByResId(@Param("resId") String resId, @Param("resBusId") String resBusId);

    /**
     * 根据资源id列表 查询资源列表
     *
     * @param residList 资源id列表
     * @return 资源集合
     */
    public List<SysRes> selectSysResListByResId(List<String> residList);
    /**
     * 保存或更新资源
     * @param resIds 资源
     * @return 结果
     */
    public int updateSysResByResIds(List<SysRes> resIds);
    /**
     * 保存或更新资源
     * @param resIds 资源
     * @param resBusId 资源
     * @return 结果
     */
    public int updateSysResByResIdes (@Param("resIds") String[] resIds , @Param("resBusId") String resBusId);
    /**
     * 保存或更新资源
     * @param resIds 资源
     * @param resBusId 资源
     * @return 结果
     */
    public int updateSysResByResIdls (@Param("resIds") List<String> resIds , @Param("resBusId")  String resBusId);



    /**
     * 删除资源
     * @param resBusIds 资源
     * @return 结果
     */
    public int deleteSysResbes(@Param("resBusIds")  String[] resBusIds);

    /**
     * 删除资源
     * @param resBusIds 资源
     * @return 结果
     */
    public int deleteSysResbls(@Param("resBusIds")  List<String> resBusIds);


    /**
     * 删除资源
     * @param resIds 资源
     * @return 结果
     */
    public int deleteSysResls (@Param("resIds") List<String> resIds);

    /**
     * 删除资源
     * @param sysResls 资源
     * @return 结果
     */
    public int deleteSysReslss (@Param("sysResls") List<SysRes> sysResls);

    /**
     * 清理资源信息
     *
     * @param list 资源主键
     * @return 结果
     */
    public int cleanSysRes(List<SysRes> list);

    /**
     * 删除资源
     * @param sysResls 资源
     * @return 结果
     */
    public int deleteSysResess (@Param("sysReses") SysRes[] sysResls);


}
