/*
 * XzqhDao.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.XzqhVO;
import com.unis.base.server.entity.XzqhDO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

/**
 * TY_XZQHB-无表注释
 * @author lipenghe at 
 */
@Repository
public interface XzqhDao extends Mapper<XzqhDO> {
    /**
     * <TY_XZQHB-无表注释>批量插入全部字段,会覆盖数据库默认值
     * @param list    <无表注释>对象List
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int insertBatchEntityList(@Param("list") List<XzqhDO> list);

    /**
     * <TY_XZQHB-无表注释>更改状态
     * @param entity    <无表注释>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int updateStatusByEntity(XzqhDO entity);

    /**
     * <TY_XZQHB-无表注释>根据实体批量更新全部字段
     * @param list    <无表注释>对象List
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int updateBatchByEntityList(@Param("list") List<XzqhDO> list);

    /**
     * <TY_XZQHB-无表注释>根据实体某些属性更新全部字段,会覆盖数据库默认值)
     * @param entity    <无表注释>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int updateByEntity(XzqhDO entity);

    /**
     * <TY_XZQHB-无表注释>根据实体不为空的属性,选择性更新字段,只更新非空的属性对应的字段
     * @param entity    <无表注释>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int updateByEntitySelective(XzqhDO entity);

    /**
     * <TY_XZQHB-无表注释>[真删除]根据实体的某些属性进行单条或者批量删除
     * @param xzqhVO    <无表注释>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int deleteByEntity(XzqhVO xzqhVO);

    /**
     * <TY_XZQHB-无表注释>[真删除]根据实体的某些属性进行单条或者批量删除
     * @param entity    <无表注释>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int deleteByEntity(XzqhDO entity);

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

    /**
     * <TY_XZQHB-无表注释>根据实体的某些属性查询数量
     * @param xzqhVO    <无表注释>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int selectCountByEntity(XzqhVO xzqhVO);

    /**
     * <TY_XZQHB-无表注释>根据实体的唯一属性查询数量
     * @param xzqhVO    <无表注释>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int selectCountById(XzqhVO xzqhVO);

    /**
     * <TY_XZQHB-无表注释>根据实体的业务唯一属性(且非指定主键数据)判断是否存在
     * @param xzqhVO    <无表注释>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    int selectExistsByEntity(XzqhVO xzqhVO);

    /**
     * <TY_XZQHB-无表注释>根据实体(唯一标示)查询一条数据
     * @param xzqhVO    <无表注释>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    XzqhVO selectById(XzqhVO xzqhVO);

    /**
     * <TY_XZQHB-无表注释>根据实体(唯一标示)查询一条数据
     * @param entity    <无表注释>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    XzqhVO selectById(XzqhDO entity);

    /**
     * <TY_XZQHB-无表注释>根据实体的某些属性查询分页数据
     * @param xzqhVO    <无表注释>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    Page<XzqhVO> selectPageByEntity(XzqhVO xzqhVO);

    /**
     * <TY_XZQHB-无表注释>根据实体的某些属性查询列表
     * @param xzqhVO    <无表注释>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    List<XzqhVO> selectByEntity(XzqhVO xzqhVO);

    /**
     * <TY_XZQHB-无表注释>根据实体的某些属性查询列表
     * @param entity     <无表注释>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    List<XzqhVO> selectByEntity(XzqhDO entity);
}