package cn.iocoder.yudao.module.system.service.equipment;

import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.system.dal.dataobject.equipment.DistributeRecordDO;
import cn.iocoder.yudao.module.system.dal.mysql.equipment.DistributeRecordMapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;

import javax.annotation.Resource;
import java.util.Collection;
import java.util.List;

/**
 * 考勤机下发记录 Service 实现类
 *
 * @author 符溶馨
 */
@Service
@Validated
public class DistributeRecordServiceImpl implements DistributeRecordService {

    @Resource
    private DistributeRecordMapper distributeRecordMapper;

    @Override
    public void createDistributeRecord(List<DistributeRecordDO> createReqVO) {

        // 插入
        distributeRecordMapper.insertBatch(createReqVO);
    }

    @Override
    public void updateDistributeRecord(List<DistributeRecordDO> updateReqVO) {

        for (DistributeRecordDO updateDO : updateReqVO) {

            DistributeRecordDO updateVO = BeanUtils.toBean(updateDO, DistributeRecordDO.class);
            updateVO.setRequestId(null);
            updateVO.setUserId(null);
            distributeRecordMapper.update(updateVO,
                    new LambdaUpdateWrapper<DistributeRecordDO>()
                            .eq(DistributeRecordDO::getUserId, updateDO.getUserId())
                            .eq(DistributeRecordDO::getRequestId, updateDO.getRequestId()));
        }
    }

    @Override
    public List<DistributeRecordDO> getDistributeRecord(List<Long> userId, Collection<Integer> type) {

        return distributeRecordMapper.selectListByUserIdAndType(userId, type);
    }
}