package com.pdaaphm.system.service.impl;

import java.util.List;
import com.pdaaphm.common.utils.DateUtils;
import com.pdaaphm.common.utils.StringUtils;
import com.pdaaphm.common.utils.file.FileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.pdaaphm.system.mapper.DataMapper;
import com.pdaaphm.system.domain.Data;
import com.pdaaphm.system.service.IDataService;

/**
 * 数据管理Service业务层处理
 * 
 * @author Allen
 * @date 2024-08-19
 */
@Service
public class DataServiceImpl implements IDataService 
{
    @Autowired
    private DataMapper dataMapper;

    /**
     * 查询数据管理
     * 
     * @param id 数据管理主键
     * @return 数据管理
     */
    @Override
    public Data selectDataById(Long id)
    {
        return dataMapper.selectDataById(id);
    }


    /**
     * 查询数据管理列表
     * 
     * @param data 数据管理
     * @return 数据管理
     */
    @Override
    public List<Data> selectDataList(Data data)
    {
        return dataMapper.selectDataList(data);
    }

    @Override
    public List<Data> selectPreprocessDataList(Data data) {
        return dataMapper.selectPreprocessDataList(data);
    }

    /**
     * 新增数据管理
     * 
     * @param data 数据管理
     * @return 结果
     */
    @Override
    public int insertData(Data data)
    {
        String dataName = data.getDataName();
        if(StringUtils.isEmpty(dataName)){
            String dataPath = data.getDataPath();
            if(StringUtils.isEmpty(dataPath)){
                dataPath = data.getImagePath();
            }
            String nameNotSuffix = FileUtils.getNameNotSuffix(dataPath);
            String originalFileName = nameNotSuffix.split("_")[0];
            data.setDataName(originalFileName);
        }
        data.setCreateTime(DateUtils.getNowDate());
        return dataMapper.insertData(data);
    }

    /**
     * 修改数据管理
     * 
     * @param data 数据管理
     * @return 结果
     */
    @Override
    public int updateData(Data data)
    {
        data.setUpdateTime(DateUtils.getNowDate());
        return dataMapper.updateData(data);
    }

    /**
     * 批量删除数据管理
     * 
     * @param ids 需要删除的数据管理主键
     * @return 结果
     */
    @Override
    public int deleteDataByIds(Long[] ids)
    {
        return dataMapper.deleteDataByIds(ids);
    }

    /**
     * 删除数据管理信息
     * 
     * @param id 数据管理主键
     * @return 结果
     */
    @Override
    public int deleteDataById(Long id)
    {
        return dataMapper.deleteDataById(id);
    }

    @Override
    public List<Data> getDataByType(String type) {
        Data data = new Data();
        data.setDataType(type);
        return this.selectDataList(data);
    }


}
