package com.hzya.frame.cbs8.service;

import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.cbs8.dto.req.*;
import com.hzya.frame.cbs8.dto.res.*;
import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity;

import java.util.List;

/**
 * @Description cbs8接口
 * @Author xiangerlin
 * @Date 2024/6/6 15:30
 **/
public interface ICbs8Service {

    /**
     * 支付申请
     * @param paymentEntity
     */
    PayResponseDTO payApply(PaymentEntity paymentEntity);

    /**
     * 通过业务参考号查询交易结果 3.2.6
     * @param resultRequestDTO
     * @return
     * @throws Exception
     */
    List<PayResultResDTO> queryPayResult(PayResultRequestDTO resultRequestDTO);

    /**
     * 查询电子回单
     * @param elecRequestDTO
     *  startDate 开始日期 - 必填
     *  endDate 结束日期 -必填
     *  billStatus 回单状态 1-已取回 0-未取回 ，只有已取回的才能下载
     *  settleBusinessReferenceCode 业务参考号
     * @return List<ElecResponseDTO>
     *     bucketFileUrl 回单下载地址
     *     billFileName 回单文件名称
     *     settleBusinessReferenceCode 业务参考号
     */
    List<ElecResponseDTO> queryElecBill(ElecRequestDTO elecRequestDTO);

    /**
     * 查询交易明细
     * @param transactionDetailReqDTO
     * @return
     */
    CbsResDataDTO  queryTransactionDetail(TransactionDetailReqDTO transactionDetailReqDTO);

    /**
     * 代发代扣 支付申请
     * @param paymentApplySubmitReqDTO
     * @param paymentApplyAgentList
     */
    PayResponseDTO agentPayApply(PaymentApplySubmitReqDTO paymentApplySubmitReqDTO, List<PaymentApplyAgentDTO> paymentApplyAgentList);

    /**
     * 代发代扣 详情查询
     * @param agentPayResultRequestDTO
     * @return
     */
    AgentPayResultResDTO agentPayResult(AgentPayResultRequestDTO agentPayResultRequestDTO);

}
