package com.xhpc.activity.service;


import com.xhpc.activity.domain.XhpcTradebillInternetCheckRecordDomain;
import com.xhpc.activity.domain.XhpcTradebillUploadRecordDomain;

import javax.servlet.http.HttpServletRequest;
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(XhpcTradebillUploadRecordDomain recordDomain, 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, String startTime, String endTime, String tenantId) throws Exception;


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


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



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


    /**
     * 获取新电途对账数据
     * @param fileUrl 文件访问地址
     * @return  对账数据
     * @throws Exception 异常
     */
    void getXDTInternetDataList(HttpServletRequest request, HttpServletResponse response, String fileUrl, String startTime, String endTime, String tenantId) throws Exception;


    /**
     * 获取新电途对账数据
     * @param dataFile 文件
     * @return  对账数据
     * @throws Exception 异常
     */
    void getXDTInternetDataList(HttpServletRequest request, HttpServletResponse response,File dataFile, String startTime, String endTime, String tenantId) throws Exception;



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


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


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


    List<Map<String,Object>> getListPage(List<String> totalOrderNos,Integer type);


    List<XhpcTradebillUploadRecordDomain> getXhpcTradebillUploadRecordcheckPage(Map<String, Object> params);
}
