package com.ruoyi.sim.service.impl;

import java.util.List;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.sim.domain.Fault;
import com.ruoyi.sim.domain.Sim;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.sim.mapper.DebugFaultMapper;
import com.ruoyi.sim.domain.DebugFault;

/**
 * 调试故障Service业务层处理
 *
 * @author tom
 * @date 2025-02-10
 */
@Service
public class DebugFaultService {
    @Autowired
    private DebugFaultMapper debugFaultMapper;

    /**
     * 查询调试故障
     *
     * @param refId 调试故障主键
     * @return 调试故障
     */
    public DebugFault selectDebugFaultByRefId(Long refId) {
        return debugFaultMapper.selectDebugFaultByRefId(refId);
    }

    /**
     * 查询调试故障列表
     *
     * @param debugFault 调试故障
     * @return 调试故障
     */
    public List<DebugFault> selectDebugFaultList(DebugFault debugFault) {
        return debugFaultMapper.selectDebugFaultList(debugFault);
    }

    /**
     * 新增调试故障
     *
     * @param debugFault 调试故障
     * @return 结果
     */
    public int insertDebugFault(DebugFault debugFault) {
        debugFault.setCreateTime(DateUtils.getNowDate());
        return debugFaultMapper.insertDebugFault(debugFault);
    }

    /**
     * 修改调试故障
     *
     * @param debugFault 调试故障
     * @return 结果
     */
    public int updateDebugFault(DebugFault debugFault) {
        debugFault.setUpdateTime(DateUtils.getNowDate());
        return debugFaultMapper.updateDebugFault(debugFault);
    }

    /**
     * 批量删除调试故障
     *
     * @param refIds 需要删除的调试故障主键
     * @return 结果
     */
    public int deleteDebugFaultByRefIds(Long[] refIds) {
        return debugFaultMapper.deleteDebugFaultByRefIds(refIds);
    }

    /**
     * 删除调试故障信息
     *
     * @param refId 调试故障主键
     * @return 结果
     */
    public int deleteDebugFaultByRefId(Long refId) {
        return debugFaultMapper.deleteDebugFaultByRefId(refId);
    }

    // -------------------------------- tom add  --------------------------------
    public DebugFault exist(Long simId, String faultId) {
        if (simId == null || simId == 0L) {
            return null;
        }
        if (StringUtils.isEmpty(faultId)) {
            return null;
        }
        DebugFault q = new DebugFault();
        q.setSimId(simId);
        q.setFaultId(faultId);
        List<DebugFault> list = selectDebugFaultList(q);
        if (!list.isEmpty()) {
            return list.get(0);
        }
        return null;
    }
}
