package com.kgraph.graph.service.impl;

import java.util.List;
import com.kgraph.common.utils.DateUtils;
import com.kgraph.common.utils.file.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.kgraph.graph.mapper.ProcessedFileMapper;
import com.kgraph.graph.domain.ProcessedFile;
import com.kgraph.graph.service.IProcessedFileService;

/**
 * 处理文件管理Service业务层处理
 * 
 * @author Allen
 * @date 2023-10-16
 */
@Service
public class ProcessedFileServiceImpl implements IProcessedFileService 
{
    @Autowired
    private ProcessedFileMapper processedFileMapper;

    /**
     * 查询处理文件管理
     * 
     * @param id 处理文件管理主键
     * @return 处理文件管理
     */
    @Override
    public ProcessedFile selectProcessedFileById(Long id)
    {
        return processedFileMapper.selectProcessedFileById(id);
    }

    /**
     * 查询处理文件管理列表
     * 
     * @param processedFile 处理文件管理
     * @return 处理文件管理
     */
    @Override
    public List<ProcessedFile> selectProcessedFileList(ProcessedFile processedFile)
    {
        return processedFileMapper.selectProcessedFileList(processedFile);
    }

    /**
     * 新增处理文件管理
     * 
     * @param processedFile 处理文件管理
     * @return 结果
     */
    @Override
    public int insertProcessedFile(ProcessedFile processedFile)
    {
        processedFile.setCreateTime(DateUtils.getNowDate());
        if(StringUtils.isEmpty(processedFile.getProcessedFileName()) && StringUtils.isNotEmpty(processedFile.getProcessedFilePath())){
            processedFile.setProcessedFileName(FileUtils.getRealName(processedFile.getProcessedFilePath()));
        }
        processedFile.setProcessedFileType(FileUtils.getSuffix(processedFile.getProcessedFilePath()));
        return processedFileMapper.insertProcessedFile(processedFile);
    }

    /**
     * 修改处理文件管理
     * 
     * @param processedFile 处理文件管理
     * @return 结果
     */
    @Override
    public int updateProcessedFile(ProcessedFile processedFile)
    {
        processedFile.setUpdateTime(DateUtils.getNowDate());
        processedFile.setProcessedFileType(FileUtils.getSuffix(processedFile.getProcessedFilePath()));
        return processedFileMapper.updateProcessedFile(processedFile);
    }

    /**
     * 批量删除处理文件管理
     * 
     * @param ids 需要删除的处理文件管理主键
     * @return 结果
     */
    @Override
    public int deleteProcessedFileByIds(Long[] ids)
    {
        return processedFileMapper.deleteProcessedFileByIds(ids);
    }

    /**
     * 删除处理文件管理信息
     * 
     * @param id 处理文件管理主键
     * @return 结果
     */
    @Override
    public int deleteProcessedFileById(Long id)
    {
        return processedFileMapper.deleteProcessedFileById(id);
    }

    @Override
    public List getOptionsBySourceFileId(Long id) {
        return processedFileMapper.getOptionsBySourceFileId(id);
    }
}
