package com.sptg.device.biz.service;

import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.sptg.common.core.beans.PageBean;
import com.sptg.common.core.beans.ResultBean;
import com.sptg.device.api.entity.InstructPublishLog;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 *
 *
 * description:
 */
public interface InstructPublishLogService extends IService<InstructPublishLog> {



    /**
     * 分页查询指令推送记录
     * @param pageBean 分页信息
     * @return ResultBean<Page>
     */
    Page<InstructPublishLog> pagingQuery(PageBean<InstructPublishLog,InstructPublishLog> pageBean);

    /**
     * 分页查询某用户人脸指令推送记录（人脸日志）
     * @param pageBean（publishData附带userId信息，用于匹配过滤）
     * @return
     */
    Page<InstructPublishLog> pageFace(PageBean<InstructPublishLog, InstructPublishLog> pageBean);

    /**
     * 分页查询某用户人脸指令推送记录（门禁卡日志）
     * @param pageBean（publishData附带cardNo信息，用于匹配过滤）
     * @return
     */
    Page<InstructPublishLog> pageCard(PageBean<InstructPublishLog, InstructPublishLog> pageBean);

    /**
     * 分页查询某个版本升级指令推送记录（门禁设备升级日志）
     * @param pageBean（publishData附带version信息，用于匹配过滤）
     * @return
     */
    Page<InstructPublishLog> pageAppPackage(PageBean<InstructPublishLog, InstructPublishLog> pageBean);

    /**
     * 查询符合条件放进日志垃圾箱的list
     * @param instructPublishLog
     * @return
     */
    List<InstructPublishLog> getListPutBin(InstructPublishLog instructPublishLog);

    /**
     * 批量删除放进了日志垃圾箱的数据
     * @param logList
     * @return
     */
    ResultBean<Boolean> deletePutBinList(List<InstructPublishLog> logList);

    List<InstructPublishLog> findInstructPublishLogByCondition(InstructPublishLog instructPublishLog);
//    /**
//     * 指令重发
//     * @param instructPublishLog
//     * @return
//     */
//    ResultBean<Boolean> resendInstruct(InstructPublishLog instructPublishLog);
//
//    /**
//     * 大豪指令重发
//     * @param instructPublishLog
//     * @return
//     */
//    ResultBean<Boolean> resendInstructDH(InstructPublishLog instructPublishLog);
}
