package com.lutao.cloud.collect.service;

import com.lutao.cloud.collect.dto.DataAddDTO;
import com.lutao.cloud.common.core.util.MessageInfo;

import javax.servlet.http.HttpServletRequest;

import java.io.UnsupportedEncodingException;

/**
 * 处理接收到的数据
 * 3秒内相同requestId不处理
 * ts时间校验，ts时间和服务器时间相差3分钟以上的，数据丢弃不处理。
 */
public interface CollectDataService {

    /**
     * （1）批量同步业务数据接口(根据指令进行数据的增删改操作)
     * 数据量限制，新增和更新限制data数组最大50条记录；删除限制data数组最大200条记录。
     * 原始数据样例
     * 同步：ip:port/sync
     * @param dataAdd
     * @return
     */
    MessageInfo collectStaticDataSync(DataAddDTO dataAdd,HttpServletRequest request);

    /**
     * （2）实时业务数据同接口，批量数据条数暂定200条。
     * 批量增加：ip:port/batch
     * 因实时数据量庞大且频繁，为降低传输成本，提高传输效率；接口中data内容去掉key，按照本文档第七部分第8小节中“xxxx”表格中的字段顺序进行数据排列。
     * @param dataAdd
     * @return
     */
    MessageInfo collectDynamicBatch(DataAddDTO dataAdd,HttpServletRequest request);

    /**
     *  （4）文件上传，采用base64上传，并附带上传文件的作用和对应关系信息。资质证书、附件
     *  新增：ip:port/upload
     * @param dataAdd
     * @return
     */
    MessageInfo collectBase64Upload(DataAddDTO dataAdd,HttpServletRequest request);

    /**
     * （3）数据查询，用于验证推送结果。
     * 查询：ip:port/list
     * @param dataAdd
     * @return
     */
    MessageInfo collectDataFindList(DataAddDTO dataAdd,HttpServletRequest request);

}
