package com.ruoyi.sales.service.impl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.sales.mapper.CommonFileMapper;
|
import com.ruoyi.sales.pojo.CommonFile;
|
import com.ruoyi.sales.service.ICommonFileService;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Service;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import java.io.IOException;
|
import java.nio.file.Files;
|
import java.nio.file.Path;
|
import java.nio.file.Paths;
|
import java.util.Arrays;
|
import java.util.UUID;
|
|
@Service
|
@RequiredArgsConstructor
|
public class CommonFileServiceImpl extends ServiceImpl<CommonFileMapper, CommonFile> implements ICommonFileService {
|
|
private final CommonFileMapper commonFileMapper;
|
|
@Value("${file.upload-dir}")
|
private String uploadDir;
|
|
|
@Override
|
public int deleteSalesLedgerByIds(Long[] ids) {
|
return commonFileMapper.deleteBatchIds(Arrays.asList(ids));
|
}
|
|
@Override
|
public CommonFile uploadFile(MultipartFile file, Long id, String type) throws IOException {
|
// 1. 生成正式文件ID和路径
|
String tempId = UUID.randomUUID().toString();
|
Path tempFilePath = Paths.get(uploadDir, tempId + "_" + file.getOriginalFilename());
|
|
// 2. 确保目录存在
|
Path parentDir = tempFilePath.getParent();
|
if (parentDir != null) {
|
Files.createDirectories(parentDir); // 递归创建目录
|
}
|
|
// 3. 保存文件到目录
|
file.transferTo(tempFilePath.toFile());
|
|
// 4. 保存文件记录
|
CommonFile commonFile = new CommonFile();
|
commonFile.setCommonId(id);
|
commonFile.setName(file.getOriginalFilename());
|
commonFile.setUrl(tempFilePath.toString());
|
commonFile.setType(type);
|
commonFileMapper.insert(commonFile);
|
return commonFile;
|
}
|
|
@Override
|
public int delCommonFileByIds(Long[] ids) {
|
return commonFileMapper.deleteBatchIds(Arrays.asList(ids));
|
}
|
}
|