package cn.qg.qaplatform.dao;


import cn.qg.qaplatform.domain.GenLoanUser;
import cn.qg.qaplatform.domain.QueryLoanUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface QueryBasicLoanStatusDataMapper {

    /**
     * 根据uuidList获取用户数据信息
     * @param uuidList
     * @return
     */
    List<QueryLoanUser> getUserDataListByUuidList(List<String> uuidList);

    /**
     * 获取未申请用户数据uuidList
     */
    List<String> getUnApplyLoanUserUuidList(@Param("channel") Integer channel);

    /**
     * 判断手机号是否存在库里
     */
    Object queryIfPhoneExist(String phone);


    /**
     * 根据userIdList获取用户信息列表
     * @param userIdList
     * @return
     */
    List<QueryLoanUser> getUserDataListByUserIdList(List<String> userIdList);

    /**
     * 根据审核状态获取用户Id列表
     * @param status 0-审核中，1-审核拒绝，2-审核通过
     * @return
     */
    List<String> getAuditStatusUserIdList(Integer status, @Param("channel") Integer channel);

    /**
     * 根据资方和渠道id查询审核通过未提现的用户
     * @param channel
     * @param fundId
     * @return
     */
    List<String> queryAuthAndUnWithdraw(@Param("channel") Integer channel, @Param("fundId") Integer fundId);

    /**
     * 根据借款状态获取用户列表
     * @param progress 20-放款中，15-放款成功，23-放款失败
     * @return
     */
    List<String> getLoanStatusUserIdList(Integer progress, @Param("channel") Integer channel, @Param("fundId") Integer fundId);

    /**
     * 获取多订单用例id列表
     * @return
     */
    List<String> getMultiOrderuuidList();

    /**
     * 根据userId获取资方id
     * @param userId
     * @return
     */
    Integer getAssignFundIdByUserId(String userId);

    GenLoanUser getUserInfoByPhoneNo(String phoneNo);

    Integer getLoanProgressByUserId(String userId);
}
