package com.mmc.iuav.user.service.xzsz;

import com.mmc.iuav.page.PageResult;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.dto.wallet.CashAmountDTO;
import com.mmc.iuav.user.model.qo.wallet.WalletFlowQO;
import com.mmc.iuav.user.model.qo.wallet.WithdrawalApplyQO;
import com.mmc.iuav.user.model.vo.wallet.ApplyWithdrawalVO;

/**
 * @author: zj
 * @Date: 2023/8/23 16:09
 */
public interface WithdrawalService {
    ResultBody apply(ApplyWithdrawalVO applyWithdrawalVO, Integer userAccountId);

    ResultBody withdrawalList(Integer userAccountId, WalletFlowQO walletFlowQO);

    PageResult listPageWithdrawalApply(WithdrawalApplyQO param);

    ResultBody approveWithdrawalApply(Integer id, Integer applyStatus, Integer userAccountId, String remark);

    CashAmountDTO getCashAmountAndWithdrawAmount(LoginSuccessDTO loginSuccessDTO);
}
