package com.usoft.fin.grpc.dal.mapper;

import com.usoft.fin.grpc.dal.entity.CreditApply;
import com.usoft.fin.grpc.dal.entity.vo.CreditApplyVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface CreditApplyMapper {
    /**
     * deleteByPrimaryKey
     * 
     * @param id
     * @return int
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * insert
     * 
     * @param record
     * @return int
     */
    int insert(CreditApply record);

    /**
     * insertSelective
     * 
     * @param record
     * @return int
     */
    int insertSelective(CreditApply record);

    /**
     * selectByPrimaryKey
     * 
     * @param id
     * @return CreditApply
     */
    CreditApply selectByPrimaryKey(Integer id);

    /**
     * updateByPrimaryKeySelective
     * 
     * @param record
     * @return int
     */
    int updateByPrimaryKeySelective(CreditApply record);

    /**
     * updateByPrimaryKey
     * 
     * @param record
     * @return int
     */
    int updateByPrimaryKey(CreditApply record);

    /**
     * 获取额度申请信息
     *
     * @param code 用户编号
     * @return
     */
    CreditApply findByCode(@Param("code")String code);

    /**
     * 获取额度申请信息
     *
     * @param parentCode 父额度编号
     * @return
     */
    List<CreditApply> findByParentCode(@Param("parentCode")String parentCode);

    /**
     * 获取额度申请信息
     *
     * @param productCode 产品编号
     * @param enuu 企业uu号
     * @return
     */
    List<CreditApply> findByProductCodeAndEnuu(@Param("productCode")String productCode, @Param("enuu")Integer enuu);


    /**
     * 分页获取额度申请信息
     *
     * @param enuu 企业uu号
     * @param start 开始下标，从0开始
     * @param pageSize 获取个数
     * @return
     */
    List<CreditApplyVO> findCreditApplyVOByEnuuAndPage(@Param("enuu")Integer enuu, @Param("start")Integer start, @Param("pageSize")Integer pageSize);


    /**
     * 根据企业uu统计额度申请信息总数
     * @param enuu 企业uu号
     *
     * @return
     */
    Integer countByEnuu(@Param("enuu")Integer enuu);

}