package com.sqx.modules.material.dao;

import java.util.List;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sqx.modules.material.entity.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface MaterialMapper extends BaseMapper<Material> {

	/**
     * 查询所有记录
     *
     * @return 返回集合，没有返回空List
     */
	List<Material> listAll();


	/**
     * 根据主键查询
     *
     * @param id 主键
     * @return 返回记录，没有返回null
     */
	Material getById(Integer id);
	
	/**
     * 新增，插入所有字段
     *
     * @param material 新增的记录
     * @return 返回影响行数
     */
	int insert(Material material);
	
	/**
     * 新增，忽略null字段
     *
     * @param material 新增的记录
     * @return 返回影响行数
     */
	int insertIgnoreNull(Material material);
	
	/**
     * 修改，修改所有字段
     *
     * @param material 修改的记录
     * @return 返回影响行数
     */
	int update(Material material);
	
	/**
     * 修改，忽略null字段
     *
     * @param material 修改的记录
     * @return 返回影响行数
     */
	int updateIgnoreNull(Material material);
	
	/**
     * 删除记录
     *
     * @param material 待删除的记录
     * @return 返回影响行数
     */
	int delete(Material material);

    IPage<MaterialArtificerResult> selectMaterialArtificer(IPage<MaterialArtificerResult> page1, @Param("materialArtificer")MaterialArtificer materialArtificer);
	List<MaterialArtificerResult> selectMaterialArtificerList( @Param("materialArtificer")MaterialArtificer materialArtificer);

	IPage<MaterialMassageResult> selectMaterialMassage(IPage<MaterialMassageResult> page1,  @Param("materialMassage") MaterialMassage materialMassage);

    IPage<Material> selectPages(IPage<Material> page1,  @Param("material")Material material);
}