package com.bonus.material.ma.mapper;

import java.util.List;
import com.bonus.material.ma.domain.TypeKeeper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 库管员配置Mapper接口
 */
@Mapper
public interface TypeKeeperMapper {
    /**
     * 查询库管员配置
     * 
     * @param ID 库管员配置主键
     * @return 库管员配置
     */
     TypeKeeper selectTypeKeeperByID(Long ID);

     /**
     * 根据用户ID和物资类型ID查询库管员配置
     */
     TypeKeeper selectTypeKeeperByUserIdAndTypeId(TypeKeeper typeKeeper);

    /**
     * 查询库管员配置列表
     * 
     * @param typeKeeper 库管员配置
     * @return 库管员配置集合
     */
     List<TypeKeeper> selectTypeKeeperList(TypeKeeper typeKeeper);

    /**
     * 查询库管员配置列表-并关联查询用户名称
     */
     List<TypeKeeper> selectTypeKeeperListAndUserName(TypeKeeper typeKeeper);

    /**
     * 新增库管员配置
     * 
     * @param typeKeepers 库管员配置
     * @return 结果
     */
     int insertTypeKeeper(@Param("list") List<TypeKeeper> typeKeepers);

    /**
     * 修改库管员配置
     * 
     * @param typeKeeper 库管员配置
     * @return 结果
     */
     int updateTypeKeeper(TypeKeeper typeKeeper);

    /**
     * 删除库管员配置
     * 
     * @param ID 库管员配置主键
     * @return 结果
     */
     int deleteTypeKeeperByID(Long ID);

    /**
     * 批量删除库管员配置
     * 
     * @param IDs 需要删除的数据主键集合
     * @return 结果
     */
     int deleteTypeKeeperByIDs(Long[] IDs);

    /**
     * 根据用户ID和物资类型ID删除库管员配置
     */
    int deleteTypeKeeperByUserIdAndTypeId(@Param("list") List<TypeKeeper> typeKeepers);
}
