package com.xhpc.tradebill.service;


import com.xhpc.tradebill.domain.XhpcTradebillInternetCheckRecordDomain;

import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.List;
import java.util.Map;

public interface InternetBillService {


    XhpcTradebillInternetCheckRecordDomain getInfoByPk(int pk);


    boolean updateInfoByDomain(XhpcTradebillInternetCheckRecordDomain domain);


    Integer insertInternetCheckList(int uploadId, List<XhpcTradebillInternetCheckRecordDomain> internetCheckRecordDomainList);


    /**
     * 获取对账列表
     * @return 对账数据
     */
    List<XhpcTradebillInternetCheckRecordDomain> getInternetCheckList(Map<String, Object> params);


    Map<String, Object> getStatusTotal(Map<String, Object> params);

    /**
     * 获取恒大对账数据
     * @param fileUrl 文件访问地址
     * @return  对账数据
     * @throws Exception 异常
     */
    List<XhpcTradebillInternetCheckRecordDomain> getHdInternetDataList(String fileUrl) throws Exception;


    /**
     * 获取恒大对账数据
     * @param dataFile 文件
     * @return  对账数据
     * @throws Exception 异常
     */
    List<XhpcTradebillInternetCheckRecordDomain> getHdInternetDataList(File dataFile) throws Exception;


    /**
     * 获取小桔对账数据
     * @param fileUrl 文件访问地址
     * @return  对账数据
     * @throws Exception 异常
     */
    List<XhpcTradebillInternetCheckRecordDomain> getXjInternetDataList(String fileUrl) throws Exception;



    /**
     * 获取小桔对账数据
     * @param dataFile 文件
     * @return  对账数据
     * @throws Exception 异常
     */
    List<XhpcTradebillInternetCheckRecordDomain> getXjInternetDataList(File dataFile) throws Exception;


    /**
     * 获取新电途对账数据
     * @param fileUrl 文件访问地址
     * @return  对账数据
     * @throws Exception 异常
     */
    List<XhpcTradebillInternetCheckRecordDomain> getXDTInternetDataList(String fileUrl) throws Exception;


    /**
     * 获取新电途对账数据
     * @param dataFile 文件
     * @return  对账数据
     * @throws Exception 异常
     */
    List<XhpcTradebillInternetCheckRecordDomain> getXDTInternetDataList(File dataFile) throws Exception;



    /**
     * 获取快电对账数据
     * @param fileUrl 文件访问地址
     * @return  对账数据
     * @throws Exception 异常
     */
    List<XhpcTradebillInternetCheckRecordDomain> getKDInternetDataList(String fileUrl) throws Exception;


    /**
     * 获取快电对账数据
     * @param dataFile 文件
     * @return  对账数据
     * @throws Exception 异常
     */
    List<XhpcTradebillInternetCheckRecordDomain> getKDInternetDataList(File dataFile) throws Exception;


    /**
     * 导出对账单
     * @param response 返回体
     * @param params 查询参数
     * @throws Exception 异常
     */
    void export(HttpServletResponse response, Map<String, Object> params) throws Exception;
}
