package jnpf.attendance.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import jnpf.entity.attendance.AttendanceBalanceUseRecord;
import jnpf.model.doclibrary.vo.UseDetailVo;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

public interface AttendanceBalanceUseRecordMapper extends BaseMapper<AttendanceBalanceUseRecord> {

    /**
     * 获取用户劵的使用劵详情
     * @param id 劵的Id
     */
    List<UseDetailVo> getUserBalanceDetail(String id);

    /**
     * 新增劵使用记录
     * @param id 主键id
     * @param balanceId 余额劵id
     * @param quota 使用额度
     * @param unit 单位 :  1 :小时 2: 天
     * @param userType 使用方式 0: 审批 ,1:排班
     * @param objectId 关联id和useType联合使用
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param lock 锁定: 1锁定  2已消费
     * @author hlp
     */
    void addOne(@Param("id") String id, @Param("balanceId") String balanceId, @Param("quota") BigDecimal quota, @Param("unit") Integer unit, @Param("userType") Integer userType, @Param("objectId") String objectId, @Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("lock") Integer lock);

    /**
     * 查出本次排班相关的所有消费记录
     * @param id 关联id和useType联合使用
     * @param userType 使用方式 0: 审批 ,1:排班
     * @return java.util.List<jnpf.model.doclibrary.vo.UseDetailVo>
     * @author hlp
     */
    List<UseDetailVo> getUserBalanceListByObjectId(@Param("id") String id, @Param("userType") Integer userType);

    /**
     * 根据劵的使用记录id删除记录
     * @param userBalanceList 劵的使用记录id
     * @author hlp
     */
    void deleteByIds(@Param("userBalanceList") List<UseDetailVo> userBalanceList);

    /**
     * 批量新增劵使用记录
     * @param useRecordList 劵使用记录
     * @author hlp
     */
    void addBatch(@Param("useRecordList") List<AttendanceBalanceUseRecord> useRecordList);
}