package com.zd.laboratory.service;

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

import com.zd.common.core.domain.R;
import com.zd.laboratory.domain.LabNegativeListRecords;
import com.zd.laboratory.domain.LabNegativelistHistory;
import com.zd.laboratory.domain.vo.LabBlackdetailVO;
import com.zd.laboratory.domain.vo.LabNegativeListRecordsVO;

/**
 * 负面清单列表Service接口
 *
 * @author zd
 * @date 2021-12-15
 */
public interface ILabNegativeListRecordsService
{
    /**
     * 查询负面清单列表
     *
     * @param id 负面清单列表主键
     * @return 负面清单列表
     */
    public LabNegativeListRecords selectLabNegativeListRecordsById(Long id);

    /**
     * 查询负面清单列表列表
     *
     * @param labNegativeListRecords 负面清单列表
     * @return 负面清单列表集合
     */
    public List<LabNegativeListRecords> selectLabNegativeListRecordsList(LabNegativeListRecordsVO vo);

    /**
     * 新增负面清单列表
     *
     * @param labNegativeListRecords 负面清单列表
     * @return 结果
     */
    public R insertLabNegativeListRecords(LabNegativelistHistory history);

    /**
     * 修改负面清单列表
     *
     * @param labNegativeListRecords 负面清单列表
     * @return 结果
     */
    public int updateLabNegativeListRecords(LabNegativeListRecords labNegativeListRecords);

    /**
     * 批量删除负面清单列表
     *
     * @param ids 需要删除的负面清单列表主键集合
     * @return 结果
     */
    public int deleteLabNegativeListRecordsByIds(Long[] ids);

    /**
     * 删除负面清单列表信息
     *
     * @param id 负面清单列表主键
     * @return 结果
     */
    public int deleteLabNegativeListRecordsById(Long id);

    int updateStatus(Long userId);

    int updateIsNegative(Long joinUserId, Long i);


    R negativelistCompletionLearningRules(Map map);

    /**
     * 获取过期时间的数据
     * @return
     */
    R getExpireTimeData();

    R delNegivelist(LabNegativeListRecordsVO vo);

    R delexam(LabNegativeListRecordsVO vo);

    public R updateByUserId(Long userId,Long deducPoints);


    /**
     * 负面清单完成学习规则
     * @return
     */
    int negivelistLearningRules(LabBlackdetailVO blackdetailVO);

    /**
     * 负面清单获取时间区间
     * @return
     */
    LabNegativelistHistory getNegiveTimeArea(LabBlackdetailVO blackdetailVO);


}
