package com.tofly.gpsboot.service.es;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tofly.es.PdaDeviceUpload;
import com.tofly.es.dto.EsQueryDto;
import com.tofly.gpsboot.strategy.ExcelStrategy;

import java.util.Date;
import java.util.List;

/**
 * 设备处理 服务类
 * @author BZ-DJJ
 */
public interface IPdaDeviceService extends ExcelStrategy {


    /**
     * 新增设备上传信息
     * @param pdaDeviceUpload
     * @return
     */
    Boolean savePdaDeviceInfo(PdaDeviceUpload pdaDeviceUpload);

    /**
     * 更新设备上传信息
     * @param pdaDeviceUpload
     * @return
     */
    Boolean updatePdaDeviceInfo(PdaDeviceUpload pdaDeviceUpload);

    /**
     * 根据ID获取设备上传信息
     * @param id
     * @return
     */
    PdaDeviceUpload getByIdPdaDeviceInfo(String id);

    /**
     * 通过id删除设备上传信息
     * @param id
     * @return
     */
    Boolean removeByIdPdaDeviceInfo(String id);

    /**
     * 获取设备上传分页信息
     * @param page
     * @param dto
     * @return
     */
    Page<List<PdaDeviceUpload>> getPageGpsInfo(Page page, EsQueryDto dto);

    /**
     * 获取index所有设备上传信息
     * @param page
     * @param dto
     * @return
     */
    Page<List<PdaDeviceUpload>> getAllPage(Page page, EsQueryDto dto);

    /**
     * 获取index所有设备上传信息 非分页
     * @param dto
     * @return
     */
    List<PdaDeviceUpload> getAll(EsQueryDto dto);

    /**
     * 根据时间范围获取当前用户最新信息列表
     * @param userIdList
     * @param startTime
     * @param endTime
     * @return
     */
    List<PdaDeviceUpload> getNowUserInfoList(List<Long> userIdList, Date startTime, Date endTime);

}
