c52d3e84 by 荆蔚杰

文件上传逻辑优化

1 parent 6ce8d530
......@@ -65,5 +65,5 @@ public interface DgFileService extends IService<DgFileDO> {
* @param fileRequest
* @return
*/
List<DgCatalogWithFileVO> upload(MultipartFile file, AddDgFileRequest fileRequest) throws IOException;
List<DgCatalogWithFileVO> upload(MultipartFile file, AddDgFileRequest fileRequest) throws Exception;
}
......
package com.pashanhoo.file.service.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.pashanhoo.common.util.fileupload.MinioConfig;
......@@ -10,6 +11,7 @@ import com.pashanhoo.file.entity.DgFileDO;
import com.pashanhoo.file.entity.vo.*;
import com.pashanhoo.file.mapper.DgFileMapper;
import com.pashanhoo.file.service.DgFileService;
import freemarker.template.utility.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -130,20 +132,22 @@ public class DgFileServiceImpl extends ServiceImpl<DgFileMapper, DgFileDO> imple
*/
@Override
@Transactional(rollbackFor = Exception.class)
public List<DgCatalogWithFileVO> upload(MultipartFile uploadFile, AddDgFileRequest fileRequest) throws IOException {
public List<DgCatalogWithFileVO> upload(MultipartFile uploadFile, AddDgFileRequest fileRequest) throws Exception {
//文件上传
FileAttribute fileAttribute = minioUtil.upload(uploadFile);
//如果序号不为空
Integer firstXh = fileRequest.getXh();
String firstBsmCatalog = fileRequest.getBsmCatalog();
QueryWrapper<DgFileDO> fileWrapper = new QueryWrapper<>();
//重新排序
fileWrapper.lambda().eq(DgFileDO::getBsmCatalog, firstBsmCatalog).ge(DgFileDO::getXh, firstXh + 1);
List<DgFileDO> list = this.list(fileWrapper);
list.forEach(item -> item.setXh(item.getXh() + 1));
this.updateBatchById(list);
if (!StrUtil.isEmptyIfStr(firstXh)) {
String firstBsmCatalog = fileRequest.getBsmCatalog();
QueryWrapper<DgFileDO> fileWrapper = new QueryWrapper<>();
//重新排序
fileWrapper.lambda().eq(DgFileDO::getBsmCatalog, firstBsmCatalog).ge(DgFileDO::getXh, firstXh + 1);
List<DgFileDO> list = this.list(fileWrapper);
list.forEach(item -> item.setXh(item.getXh() + 1));
this.updateBatchById(list);
}
//文件信息入库
DgFileDO fileDO = new DgFileDO();
......@@ -153,12 +157,18 @@ public class DgFileServiceImpl extends ServiceImpl<DgFileMapper, DgFileDO> imple
fileDO.setKzm(fileAttribute.getExpandName());
fileDO.setScrq(DateTime.now());
fileDO.setScr(null);
fileDO.setXh(firstXh + 1);
if (StrUtil.isEmptyIfStr(firstXh)) {
fileDO.setXh(1);
}else {
fileDO.setXh(firstXh + 1);
}
this.save(fileDO);
List<DgCatalogWithFileVO> fileList = dgfileMapper.getFileList(fileRequest.getBsmArchive());
fileList.forEach(item->item.getFileLists().forEach(file->file.setSaveUrl(file.getFjurl())));
fileList.forEach(catalogWithFiles->catalogWithFiles.getFileLists().forEach(file->file.setFjurl(minioUtil.getPreviewUrl(file.getFjurl()))));
if (fileList.size() > 0) {
fileList.forEach(item->item.getFileLists().forEach(file->file.setSaveUrl(file.getFjurl())));
fileList.forEach(catalogWithFiles->catalogWithFiles.getFileLists().forEach(file->file.setFjurl(minioUtil.getPreviewUrl(file.getFjurl()))));
}
return fileList;
}
......