package com.yx.face.service;

import com.yx.face.model.dto.FacePassDTO;

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

public interface FaceTBService {

    /**
     * @return java.util.List<java.lang.Long> <br>
     * @description: 批量下发人脸 <br>
     * @date: 2021/6/3 9:32 <br>
     * @author: PWB <br>
     */
    List<FacePassDTO> batchDownFace(List<FacePassDTO> dtoList);


    /**
     * @return java.lang.Boolean <br>
     * @description: 下发人脸 <br>
     * @date: 2021/6/3 14:44 <br>
     * @author: PWB <br>
     */
    Boolean downFace(Long userId, Date startTime, Date endTime, Integer adminId);



    /**
     * @return java.util.List<java.lang.Long> <br>
     * @description: 删除人员人脸信息 <br>
     * @date: 2021/6/3 14:19 <br>
     * @author: PWB <br>
     */
    Boolean delFace(List<Long> userIds, Integer adminId);

    Boolean delFaceBySn(String sn, List<Long> userIds, Integer adminId);
    /*=============================================【】====================================================*/


    /**
     * @param dto <br>
     * @return java.util.Map<java.lang.String, java.lang.Object> <br>
     * @description: 设备连接推送 <br>
     * @date: 2021/6/3 10:45 <br>
     * @author: PWB <br>
     */
    Map<String, Object> connect(Map<String, Object> dto);


    /**
     * @param dto <br>
     * @return java.util.Map<java.lang.String, java.lang.Object> <br>
     * @description: 设备断开推送 <br>
     * @date: 2021/6/3 10:45 <br>
     * @author: PWB <br>
     */
    Map<String, Object> disconnect(Map<String, Object> dto);


    /**
     * @param dto <br>
     * @return java.util.Map<java.lang.String, java.lang.Object> <br>
     * @description: 设备信息上报 <br>
     * @date: 2021/6/3 10:45 <br>
     * @author: PWB <br>
     */
    Map<String, Object> report(Map<String, Object> dto);


    /**
     * @param dto <br>
     * @return java.util.Map<java.lang.String, java.lang.Object> <br>
     * @description: 推送刷脸刷卡记录 <br>
     * @date: 2021/6/3 10:45 <br>
     * @author: PWB <br>
     */
    Map<String, Object> eventRecords(Map<String, Object> dto) throws InterruptedException;


    /**
     * @param dto <br>
     * @return java.util.Map<java.lang.String, java.lang.Object> <br>
     * @description: 推送设备录入人员 <br>
     * @date: 2021/6/3 10:45 <br>
     * @author: PWB <br>
     */
    Map<String, Object> pushUsers(Map<String, Object> dto);

    /**
     * @param dto <br>
     * @return java.util.Map<java.lang.String, java.lang.Object> <br>
     * @description: 推送设备人员删除信息 <br>
     * @date: 2021/6/3 10:46 <br>
     * @author: PWB <br>
     */
    Map<String, Object> delUser(Map<String, Object> dto);


    /**
     * @param dto <br>
     * @return java.util.Map<java.lang.String, java.lang.Object> <br>
     * @description: 上报任务结果处理 <br>
     * @date: 2021/6/3 10:45 <br>
     * @author: PWB <br>
     */
    Map<String, Object> pushTaskResult(Map<String, Object> dto);

    /**
     * @param dto <br>
     * @return java.util.Map<java.lang.String, java.lang.Object> <br>
     * @description: 获取任务ID <br>
     * @date: 2021/6/3 10:46 <br>
     * @author: PWB <br>
     */
    Map<String, Object> getTaskId(Map<String, Object> dto);

    void pushUsersOnline(List<Map<String, String>> list);

    Map<String, Object> syncUsers(Map<String, Object> param);
}
