package com.crm.pay.service;


import com.crm.pay.dto.finance.withdraw.automatic.FinanceWithdrawHelpDto;
import com.crm.pay.entity.callback.HelpCallbackEntity;
import com.crm.pay.entity.callback.HelpPayoutCallbackEntity;
import com.crm.pay.entity.finance.withdraw.automatic.FinanceWithdrawHelpEntity;
import com.crm.pay.entity.finance.withdraw.automatic.FinanceWithdrawInfoEntity;
import com.crm.rely.backend.model.entity.custom.info.CustomInfoEntity;
import com.crm.rely.backend.model.entity.finance.deposit.FinanceDepositAddEntity;

/**
 * @program: cwg-my-base
 * @description:
 * @author: houn
 * @create: 2020-11-06 12:44
 */
public interface HelpService {

    /**
     * 支付
     *
     * @param balanceSaveEntity 支付实体
     * @return
     * @throws Exception
     */
    String pay(FinanceDepositAddEntity balanceSaveEntity, CustomInfoEntity infoEntity) throws Exception;

    /**
     * 回调
     *
     * @param callbackEntity 回调实体
     * @throws Exception
     */
    void callback(HelpCallbackEntity callbackEntity) throws Exception;


    FinanceWithdrawHelpDto withdrawInfo(FinanceWithdrawInfoEntity entity) throws Exception;

    void withdraw(FinanceWithdrawHelpEntity entity) throws Exception;

    String withdrawCallback(Integer withdrawType, HelpPayoutCallbackEntity callbackEntity) throws Exception;
}
