package com.ruoyi.interfaces.service.impl;

import java.io.IOException;
import java.util.List;

import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.interfaces.domain.MdModelFile;
import com.ruoyi.interfaces.domain.MdModelInfo;
import com.ruoyi.interfaces.mapper.MdModelFileMapper;
import com.ruoyi.interfaces.service.IMdModelFileService;
import com.ruoyi.interfaces.service.IMdModelInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

/**
 * 模型文件信息Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-07-15
 */
@Service
public class MdModelFileServiceImpl implements IMdModelFileService
{
    @Autowired
    private MdModelFileMapper mdModelFileMapper;

    @Autowired
    private IMdModelInfoService mdModelInfoService;

    /**
     * 查询模型文件信息
     * 
     * @param fileid 模型文件信息主键
     * @return 模型文件信息
     */
    @Override
    public MdModelFile selectMdModelFileByFileid(String fileid)
    {
        return mdModelFileMapper.selectMdModelFileByFileid(fileid);
    }

    /**
     * 查询模型文件信息列表
     * 
     * @param mdModelFile 模型文件信息
     * @return 模型文件信息
     */
    @Override
    public List<MdModelFile> selectMdModelFileList(MdModelFile mdModelFile)
    {
        return mdModelFileMapper.selectMdModelFileList(mdModelFile);
    }

    /**
     * 新增模型文件信息
     * 
     * @param mdModelFile 模型文件信息
     * @return 结果
     */
    @Override
    public int insertMdModelFile(MdModelFile mdModelFile)
    {
        mdModelFile.setFileid(IdUtils.fastUUID());
        mdModelFile.setModifyBy(DateUtils.getNowDate());
        mdModelFileMapper.insertMdModelFile(mdModelFile);
        //MdModelInfo mdModelInfo = new MdModelInfo(mdModelFile.getMdid(),mdModelFile.getFileid()); 模型信息表更新，取消fileId
        //mdModelInfoService.updateMdModelInfo(mdModelInfo);
        return 1;
    }

    /**
     * 修改模型文件信息
     * 
     * @param mdModelFile 模型文件信息
     * @return 结果
     */
    @Override
    public int updateMdModelFile(MdModelFile mdModelFile)
    {
        return mdModelFileMapper.updateMdModelFile(mdModelFile);
    }

    /**
     * 批量删除模型文件信息
     * 
     * @param fileids 需要删除的模型文件信息主键
     * @return 结果
     */
    @Override
    public int deleteMdModelFileByFileids(String[] fileids)
    {
        return mdModelFileMapper.deleteMdModelFileByFileids(fileids);
    }

    /**
     * 删除模型文件信息信息
     * 
     * @param fileid 模型文件信息主键
     * @return 结果
     */
    @Override
    public int deleteMdModelFileByFileid(String fileid)
    {
        return mdModelFileMapper.deleteMdModelFileByFileid(fileid);
    }

    @Override
    public int insertMdModelFile(MdModelFile accountMdModelFile, MultipartFile accountFile) {
        String filePath = RuoYiConfig.getUploadPath();
        // 上传并返回新文件名称
        try {
            String fileName = FileUploadUtils.upload(filePath, accountFile);
            System.out.println(fileName);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

        return 0;
    }
}
