package com.sunxung.factoring.service.cashflowmanage;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sunxung.factoring.entity.GridPage;
import com.sunxung.factoring.entity.cashflowmanage.BankCardInfo;
import com.sunxung.factoring.entity.cashflowmanage.vo.CompanyBelongResultVo;
import com.sunxung.factoring.entity.cashflowmanage.vo.SearchBankCardInfoSetVo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @Description : 银行卡信息设置service
 * @Author : JiaYf
 * @Date: 2021-10-30 14:11
 */
public interface BankCardInfoSetService extends IService<BankCardInfo> {

    /**
     * 分页查询 银行卡信息设置
     *
     * @param searchBankCardInfoSetVo
     * @return
     */
    GridPage<BankCardInfo> queryPage(SearchBankCardInfoSetVo searchBankCardInfoSetVo);

    /**
     * 新增 银行卡信息设置
     *
     * @param bankCardInfo
     * @return
     */
    void add(BankCardInfo bankCardInfo, HttpServletRequest request);

    /**
     * 通过id查询 银行卡信息设置
     *
     * @param id
     * @return BankCardInfoSet
     */
    BankCardInfo get(Long id);

    /**
     * 通过id删除 银行卡信息设置  置为删除状态，并没有做物理删除操作
     *
     * @param id
     * @return
     */
    void deleteById(Long id);

    /**
     * 通过id 更新：启用、禁用
     *
     * @param id
     * @param flag
     * @return
     */
    void enable(Long id, Integer flag);

    /**
     * 查询归属公司列表
     *
     * @return
     */
    List<CompanyBelongResultVo> getCompanyBelong();

    /**
     * 根据所属公司查询银行名称列表
     *
     * @return
     */
    List<String> getBankName(Long companyBelong);

    /**
     * 根据银行名称获取银行账号
     *
     * @param bankName 银行名称
     * @return
     */
    List<String> getBankAccount(Long companyBelong, String bankName);
}
