package cn.pluss.platform.settle;

import lombok.val;

import java.io.File;
import java.util.List;
import java.util.Map;

/**
 * 通道账单相关功能的服务类
 * @author djh
 */
public interface ChannelMakeMoneyService {

    /**
     * 主要功能
     * @param params    参数，非统一参数，用map接收
     */
    default void mainProcess(Map<String, Object> params) {
        val file = getFile(params);
        val dataList = readData(file);
        insertData(dataList);
    }

    /**
     * 获取对账文件
     * @param params    参数，非统一参数，用map接收
     * @return  对账文件
     */
    File getFile(Map<String, Object> params);

    /**
     * 从对账文件中获取数据
     * @param file    文件
     * @return  数据
     */
    List<Map<String, Object>> readData(File file);

    /**
     * 插入数据
     * @param readData  数据
     */
    void insertData(List<Map<String, Object>> readData);
}
