package com.jjt.calc.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jjt.calc.domain.TwinRecordAlarms;
import com.jjt.calc.mapper.TwinRecordAlarmsMapper;
import com.jjt.calc.service.ITwinRecordAlarmsService;
import org.springframework.stereotype.Service;

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

/**
 * 告警数据记录Service业务层处理
 *
 * @author wukai
 * @date 2025-01-18
 */
@Service
public class TwinRecordAlarmsServiceImpl implements ITwinRecordAlarmsService {
    @Resource
    private TwinRecordAlarmsMapper twinRecordAlarmsMapper;

    /**
     * 查询告警数据记录
     *
     * @param id 告警数据记录主键
     * @return 告警数据记录
     */
    @Override
    public TwinRecordAlarms selectTwinRecordAlarmsById(Long id) {
        return twinRecordAlarmsMapper.selectTwinRecordAlarmsById(id);
    }

    /**
     * 查询告警数据记录列表
     *
     * @param twinRecordAlarms 告警数据记录
     * @return 告警数据记录
     */
    @Override
    public List<TwinRecordAlarms> selectTwinRecordAlarmsList(TwinRecordAlarms twinRecordAlarms) {
        return twinRecordAlarmsMapper.selectTwinRecordAlarmsList(twinRecordAlarms);
    }

    /**
     * 新增告警数据记录
     *
     * @param twinRecordAlarms 告警数据记录
     * @return 结果
     */
    @Override
    public int insertTwinRecordAlarms(TwinRecordAlarms twinRecordAlarms) {
        return twinRecordAlarmsMapper.insertTwinRecordAlarms(twinRecordAlarms);
    }

    /**
     * 修改告警数据记录
     *
     * @param twinRecordAlarms 告警数据记录
     * @return 结果
     */
    @Override
    public int updateTwinRecordAlarms(TwinRecordAlarms twinRecordAlarms) {
        return twinRecordAlarmsMapper.updateTwinRecordAlarms(twinRecordAlarms);
    }

    /**
     * 批量删除告警数据记录
     *
     * @param ids 需要删除的告警数据记录主键
     * @return 结果
     */
    @Override
    public int deleteTwinRecordAlarmsByIds(Long[] ids) {
        return twinRecordAlarmsMapper.deleteTwinRecordAlarmsByIds(ids);
    }

    /**
     * 删除告警数据记录信息
     *
     * @param id 告警数据记录主键
     * @return 结果
     */
    @Override
    public int deleteTwinRecordAlarmsById(Long id) {
        return twinRecordAlarmsMapper.deleteTwinRecordAlarmsById(id);
    }

    /**
     * 按时间删除记录
     *
     * @param date 日期
     * @param hour 小时
     */
    @Override
    public void deleteTwinRecordAlarms(Date date, int hour) {
        QueryWrapper<TwinRecordAlarms> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("DATA_DATE", date);
        queryWrapper.eq("hour", hour);
        twinRecordAlarmsMapper.delete(queryWrapper);
    }
}
