package com.yd.dal.mapper.agms;

import com.yd.api.agms.vo.fortune.CommissionPayoutAddRemarkRequestVO;
import com.yd.dal.entity.agms.fortune.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author xxy
 */
public interface AgmsFortuneMapper {
    /**
     * 通过customerid查询财富基本信息(历史累积财富  已退保财富  已提现财富 等)
     * @param customerIdList customerIds
     * @return 财富基本信息(历史累积财富  已退保财富  已提现财富 等)
     */
    List<CustomerFortuneStatisticalInfo> findFortuneStatisticalByCustomers(List<Long> customerIdList);

    /**
     * 发佣检核列表
     * @param requestVO 过滤条件
     * @return 返回结果
     */
    List<CommissionPayoutStatus> commissionPayoutStatusQuery(@Param("item") CommissionPayoutStatusQueryInfo requestVO);

    /**
     * 通过customerId 和 payId 查询 fortune 信息
     * @param payIds payIds
     * @return FortunePayToOrderInfo
     */
    List<FortunePayToOrderInfo> fortunePayToOrder(Long[] payIds);

    /**
     * 经纪人支付列表
     * @param info 过滤条件
     * @return 返回结果
     */
    List<WithdrawLabelInfo> transformForWithdrawLabel(@Param("item")WithdrawQueryInfo info);

    /**
     * 薪资单保单明细
     * @param info 过滤条件
     * @return 返回结果
     */
    List<WithdrawLabelInfo> salaryPolicyNoDetails(@Param("item")WithdrawQueryInfo info);

    List<Map<String, Object>> querySheet2Data(@Param("list1") List<Long> fortuneIdList, @Param("list2") List<Long> fortuneIdList2);

    List<Long> querySalePractitionerFortune(List<Long> fortuneIdList);

    List<Long> querySalePractitionerFortune1(List<Long> fortuneIdList);

    void commissionPayoutAddRemark(CommissionPayoutAddRemarkRequestVO requestVO);

    /**
     * 对公渠道清算报表
     * @param fortuneIdList
     * @return
     */
    List<Map<String, Object>> querySheet3Data(List<Long> fortuneIdList);
}
