package com.engine.salary.mapper.sischeme;

import com.engine.salary.entity.sischeme.param.InsuranceSchemeParam;
import com.engine.salary.entity.sischeme.po.InsuranceSchemePO;
import org.apache.ibatis.annotations.Param;

import java.util.Collection;
import java.util.List;

/**
 * @Author weaver_cl
 * 
 * @Date 2022/3/7
 * @Version V1.0
 **/
public interface InsuranceSchemeMapper {

    /**
     * 根据主键查询
     *
     * @param id 主键
     * @return 返回记录，没有返回null
     */
    InsuranceSchemePO getById(Long id);

    /**
     * 新增，插入所有字段
     * @param insuranceSchemePO 新增的记录
     * @return 返回影响行数
     */
    int insert(InsuranceSchemePO insuranceSchemePO);

    /**
     * 更新，更新修改的字段
     * @param insuranceSchemePO
     * @return
     */
    int update(InsuranceSchemePO insuranceSchemePO);

    /**
     * 根据名称查询
     * @param schemeName
     * @return
     */
    List<InsuranceSchemePO> listByName(String schemeName);


    /**
     * 查询所有
     * @return
     */
    List<InsuranceSchemePO> listAll();

    List<InsuranceSchemePO> listBySchemeIds(@Param("schemeIds")Collection<Long> schemeIds);


    /**
     * 获取名称
     * @param schemeId
     * @return
     */
    String querySchemeName(@Param("schemeId") Long schemeId);



    List<InsuranceSchemePO> listByWelfareType(@Param("welfareType")Integer welfareType);
    List<InsuranceSchemePO> list(InsuranceSchemeParam param);


    void deleteByIds(@Param("ids")Collection<Long> ids);
}
