/*
 * ShouGouZiGeDao.java
 * 版权所有 © 2011-2017 北京神舟良实信息技术有限公司
 * Copyright © 2011-2017 All Rights Reserved    京ICP备13013562号
 *  created by lipenghe with LAPTOP-DPSC399A
 */
package com.unis.base.server.dao;

import com.github.pagehelper.Page;
import com.unis.base.common.vo.ShouGouZiGeVO;
import com.unis.base.server.entity.ShouGouZiGeDO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

/**
 * TY_SHOUGOUZIGE-真收购资格表
 * @author lipenghe at 
 */
@Repository
public interface ShouGouZiGeDao extends Mapper<ShouGouZiGeDO> {
    /**
     * <TY_SHOUGOUZIGE-真收购资格表>批量插入全部字段,会覆盖数据库默认值
     * @param list    <真收购资格表>对象List
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int insertBatchEntityList(@Param("list") List<ShouGouZiGeDO> list);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>更改状态
     * @param entity    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int updateStatusByEntity(ShouGouZiGeDO entity);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>根据实体批量更新全部字段
     * @param list    <真收购资格表>对象List
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int updateBatchByEntityList(@Param("list") List<ShouGouZiGeDO> list);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>根据实体某些属性更新全部字段,会覆盖数据库默认值)
     * @param entity    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int updateByEntity(ShouGouZiGeDO entity);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>根据实体不为空的属性,选择性更新字段,只更新非空的属性对应的字段
     * @param entity    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int updateByEntitySelective(ShouGouZiGeDO entity);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>[真删除]根据实体的某些属性进行单条或者批量删除
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int deleteByEntity(ShouGouZiGeVO ziGeVO);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>[真删除]根据实体的某些属性进行单条或者批量删除
     * @param entity    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int deleteByEntity(ShouGouZiGeDO entity);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>[假删除]根据实体的某些属性进行单条或者批量删除,根据实体属性单条
     *      或批量删除只是改变了状态不在页面显示,数据仍存在
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int deleteShamByEntity(ShouGouZiGeVO ziGeVO);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>根据实体的某些属性查询数量
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int selectCountByEntity(ShouGouZiGeVO ziGeVO);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>根据实体的唯一属性查询数量
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int selectCountById(ShouGouZiGeVO ziGeVO);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>根据实体的业务唯一属性(且非指定主键数据)判断是否存在
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int selectExistsByEntity(ShouGouZiGeVO ziGeVO);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>根据实体(唯一标示)查询一条数据
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    ShouGouZiGeVO selectById(ShouGouZiGeVO ziGeVO);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>根据实体(唯一标示)查询一条数据
     * @param entity    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    ShouGouZiGeVO selectById(ShouGouZiGeDO entity);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>根据实体的某些属性查询分页数据
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    Page<ShouGouZiGeVO> selectPageByEntity(ShouGouZiGeVO ziGeVO);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>根据实体的某些属性查询列表
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    List<ShouGouZiGeVO> selectByEntity(ShouGouZiGeVO ziGeVO);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>根据实体的某些属性查询列表
     * @param entity     <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    List<ShouGouZiGeVO> selectByEntity(ShouGouZiGeDO entity);
}